@font-face {
    font-family: "Noto Sans";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/noto-sans-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Noto Sans";
    font-style: normal;
    font-weight: 500;
    font-stretch: 87.5%;
    font-display: swap;
    src: url("../fonts/noto-sans-semicondensed-medium-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Noto Sans";
    font-style: normal;
    font-weight: 400;
    font-stretch: 87.5%;
    font-display: swap;
    src: url("../fonts/noto-sans-semicondensed-regular-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Noto Sans";
    font-style: normal;
    font-weight: 600;
    font-stretch: 87.5%;
    font-display: swap;
    src: url("../fonts/noto-sans-semicondensed-semibold-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Noto Sans";
    font-style: normal;
    font-weight: 800;
    font-stretch: 87.5%;
    font-display: swap;
    src: url("../fonts/noto-sans-semicondensed-extrabold-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Noto Sans";
    font-style: normal;
    font-weight: 700;
    font-stretch: 87.5%;
    font-display: swap;
    src: url("../fonts/noto-sans-semicondensed-bold-latin.woff2") format("woff2");
}

@font-face {
    font-family: "Noto Sans";
    font-style: italic;
    font-weight: 500;
    font-stretch: 87.5%;
    font-display: swap;
    src: url("../fonts/noto-sans-semicondensed-medium-italic-latin.woff2") format("woff2");
}

:root {
    --brand-blue: #263f91;
    --brand-cyan: #69c7e5;
    --stone-grey: #7a7a7a;
    --page-edge-grey: #363636;
    --site-max-width: 1200px;
    --header-height: 190px;
}

html {
    min-width: 320px;
    scroll-behavior: smooth;
}

body {
    min-width: 320px;
    margin: 0;
    overflow-x: hidden;
    color: #202020;
    background: var(--page-edge-grey);
    font-family: "Noto Sans", Arial, Helvetica, sans-serif;
}

.rich-text-content > :first-child {
    margin-top: 0;
}

.rich-text-content > :last-child {
    margin-bottom: 0;
}

.rich-text-content p {
    margin: 0 0 .8em;
}

.rich-text-content ul,
.rich-text-content ol {
    margin: .55em 0 .8em;
    padding-left: 1.45em;
}

.rich-text-content li + li {
    margin-top: .2em;
}

.rich-text-content a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: .12em;
}

body::before,
body::after {
    position: fixed;
    z-index: 1000;
    top: 0;
    bottom: 0;
    width: 1px;
    content: "";
    pointer-events: none;
}

body::before {
    left: calc(50% - 600px);
    box-shadow: -12px 0 22px -4px rgba(0, 0, 0, 0.72);
}

body::after {
    right: calc(50% - 600px);
    box-shadow: 12px 0 22px -4px rgba(0, 0, 0, 0.72);
}

@keyframes submenu-fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .motion-ready [data-reveal] {
        opacity: 0;
        transition: opacity 520ms ease;
    }

    .motion-ready [data-reveal].is-revealed {
        opacity: 1;
    }

    .desktop-submenu:not([hidden]),
    .mobile-submenu:not([hidden]) {
        animation: submenu-fade-in 200ms ease-out both;
    }
}

@media (hover: hover) and (pointer: fine) {
    .submenu-card:hover {
        transform: scale(1.012);
    }
}

a {
    text-decoration: none;
}

.site-header {
    position: relative;
    z-index: 100;
    min-height: var(--header-height);
    overflow: visible;
    background: var(--page-edge-grey);
    isolation: isolate;
}

.header-inner::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    pointer-events: none;
    background-image: url("../images/sassi.jpg");
    background-repeat: no-repeat;
    background-position: top left;
    background-size: 100% auto;
    opacity: 1;
}

.header-inner {
    position: relative;
    width: 100%;
    max-width: var(--site-max-width);
    min-height: var(--header-height);
    margin: 0 auto;
    overflow: visible;
    background-color: var(--stone-grey);
    isolation: isolate;
}

.brand-panel {
    position: absolute;
    z-index: 4;
    top: 49px;
    left: 0;
    display: block;
    width: 292px;
    height: 141px;
    background: rgba(255, 255, 255, 0.97);
    clip-path: polygon(0 0, 100% 29%, 90% 100%, 0 100%);
}

.brand-mark {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: auto;
}

.desktop-navigation {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    display: flex;
    width: min(68.34vw, 820px);
    min-width: 720px;
    height: var(--header-height);
    align-items: flex-start;
    justify-content: flex-start;
    padding-right: 0;
    clip-path: polygon(4.5% 0, 100% 0, 100% 100%, 0 40%);
    --menu-hover-start: 0%;
    --menu-hover-end: 0%;
    --menu-hover-opacity: 0;
}

.desktop-navigation::before {
    position: absolute;
    z-index: -2;
    inset: 0;
    content: "";
    background: linear-gradient(
        100deg,
        rgba(255, 255, 255, 0.28) 0%,
        rgba(255, 255, 255, 0.28) 18.8%,
        rgba(255, 255, 255, 0.38) 18.8%,
        rgba(255, 255, 255, 0.38) 42.8%,
        rgba(255, 255, 255, 0.49) 42.8%,
        rgba(255, 255, 255, 0.49) 62.6%,
        rgba(255, 255, 255, 0.62) 62.6%,
        rgba(255, 255, 255, 0.62) 85.9%,
        rgba(255, 255, 255, 0.77) 85.9%,
        rgba(255, 255, 255, 0.77) 100%
    );
}

.desktop-navigation::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(
        100deg,
        transparent 0%,
        transparent var(--menu-hover-start),
        #fff var(--menu-hover-start),
        #fff var(--menu-hover-end),
        transparent var(--menu-hover-end),
        transparent 100%
    );
    opacity: var(--menu-hover-opacity);
    transition: opacity 180ms ease;
}

.desktop-navigation.menu-active-1 {
    --menu-hover-start: 0%;
    --menu-hover-end: 18.8%;
    --menu-hover-opacity: 0.28;
}

.desktop-navigation.menu-active-2 {
    --menu-hover-start: 18.8%;
    --menu-hover-end: 42.8%;
    --menu-hover-opacity: 0.26;
}

.desktop-navigation.menu-active-3 {
    --menu-hover-start: 42.8%;
    --menu-hover-end: 62.6%;
    --menu-hover-opacity: 0.24;
}

.desktop-navigation.menu-active-4 {
    --menu-hover-start: 62.6%;
    --menu-hover-end: 85.9%;
    --menu-hover-opacity: 0.24;
}

.desktop-navigation:has(.primary-menu li:nth-child(1) .menu-link:is(:hover, :focus-visible)) {
    --menu-hover-start: 0%;
    --menu-hover-end: 18.8%;
    --menu-hover-opacity: 0.85;
}

.desktop-navigation:has(.primary-menu li:nth-child(2) .menu-link:is(:hover, :focus-visible)) {
    --menu-hover-start: 18.8%;
    --menu-hover-end: 42.8%;
    --menu-hover-opacity: 0.81;
}

.desktop-navigation:has(.primary-menu li:nth-child(3) .menu-link:is(:hover, :focus-visible)) {
    --menu-hover-start: 42.8%;
    --menu-hover-end: 62.6%;
    --menu-hover-opacity: 0.74;
}

.desktop-navigation:has(.primary-menu li:nth-child(4) .menu-link:is(:hover, :focus-visible)) {
    --menu-hover-start: 62.6%;
    --menu-hover-end: 85.9%;
    --menu-hover-opacity: 0.74;
}

.primary-menu {
    display: flex;
    width: calc(100% - 116px);
    height: 100%;
    flex: 1 1 auto;
    margin: 0;
    padding: 0;
    align-items: flex-start;
    list-style: none;
}

.primary-menu li {
    position: relative;
    height: 100%;
    min-width: 0;
    flex: 1 1 0;
}

.primary-menu li:nth-child(1) {
    flex-grow: 0.95;
}

.primary-menu li:nth-child(2) {
    flex-grow: 1.22;
}

.primary-menu li:nth-child(3) {
    flex-grow: 1;
}

.primary-menu li:nth-child(4) {
    flex-grow: 1.18;
}

.menu-link {
    position: relative;
    z-index: 0;
    display: flex;
    width: 100%;
    min-width: 0;
    height: 100%;
    padding: 47px 14px 0;
    border: 0;
    align-items: flex-start;
    justify-content: center;
    color: #242424;
    background: transparent;
    cursor: pointer;
    font-family: inherit;
    font-size: 19.167px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.1;
    text-align: center;
    text-transform: uppercase;
    transition: color 160ms ease;
}

.menu-link:hover,
.menu-link:focus-visible,
.menu-link.is-active {
    color: var(--brand-blue);
}

.mobile-submenu-toggle::after {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin: 3px 0 0 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: "";
    transform: rotate(45deg);
    transition: transform 160ms ease;
}

.mobile-submenu-toggle[aria-expanded="true"]::after {
    margin-top: 7px;
    transform: rotate(225deg);
}

.desktop-submenu-layer {
    position: absolute;
    z-index: 8;
    top: var(--header-height);
    right: 0;
    left: 0;
    width: 100%;
    height: 0;
    pointer-events: none;
}

.desktop-submenu {
    --mega-menu-side-padding: clamp(158px, 15.833vw, 190px);
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(14px, 1.333vw, 16px);
    width: 100%;
    margin: 0;
    padding:
        92px
        var(--mega-menu-side-padding)
        54px;
    list-style: none;
    pointer-events: auto;
}

.desktop-submenu-project {
    background: #9ac688;
}

.desktop-submenu-activities {
    background: #83a6d4;
}

.desktop-submenu-heading {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    width: clamp(220px, 21.667vw, 260px);
    height: 100px;
    padding: 0 34px 24px 0;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #3b9b3e;
    clip-path: polygon(0 0, 100% 0, 94% 66%, 0 100%);
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.1;
}

.desktop-submenu-activities .desktop-submenu-heading {
    background: #176fb4;
}

.submenu-card-item {
    min-width: 0;
}

.submenu-card {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
    border: 5px solid;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    transition:
        filter 160ms ease,
        transform 160ms ease;
}

.submenu-card-project {
    border-color: #3b9b3e;
    background-image: url("../images/menu/territory-map.jpg");
}

.submenu-card-activities {
    border-color: #176fb4;
    background-image: url("../images/menu/activities-background.jpg");
}

.submenu-card-shape {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: block;
    pointer-events: none;
}

.submenu-card-project .submenu-card-shape {
    background: rgba(59, 155, 62, 0.72);
    clip-path: polygon(8% 0, 67% 0, 86% 18%, 49% 100%, 0 62%, 0 14%);
}

.submenu-card-activities .submenu-card-shape {
    background: #176fb4;
    clip-path: polygon(50% 0, 100% 66%, 100% 76%, 28% 100%, 0 75%, 0 47%);
}

.submenu-card-cutout {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.submenu-card-label {
    position: relative;
    z-index: 3;
    display: block;
    width: max-content;
    max-width: 100%;
    min-height: 43px;
    padding: 9px 26px 8px 10px;
    overflow: hidden;
    color: #fff;
    background: #3b9b3e;
    clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
    font-size: clamp(14px, 1.367vw, 16.4px);
    font-weight: 800;
    font-stretch: 87.5%;
    line-height: 1.15;
    text-transform: uppercase;
    white-space: nowrap;
}

.submenu-card-activities .submenu-card-label {
    background: #176fb4;
}

.submenu-card:hover,
.submenu-card:focus-visible {
    filter: brightness(1.07);
}

.submenu-card:focus-visible {
    outline: 4px solid #fff;
    outline-offset: -9px;
}

.menu-link:focus-visible,
.language-link:focus-visible,
.mobile-menu-button:focus-visible,
.mobile-language-switcher a:focus-visible,
.mobile-menu a:focus-visible {
    outline: 3px solid var(--brand-cyan);
    outline-offset: 3px;
}

.language-switcher {
    display: flex;
    flex-direction: column;
}

.language-switcher-desktop {
    position: relative;
    z-index: 0;
    width: 116px;
    flex: 0 0 116px;
    gap: 6px;
    margin-top: 44px;
    margin-left: 0;
    padding-left: 32px;
}

.language-link {
    display: flex;
    min-width: 53px;
    align-items: center;
    gap: 10px;
    color: #2a2a2a;
    font-size: 19.167px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1;
}

.language-link:hover,
.language-link:focus-visible,
.language-link.is-active {
    color: var(--brand-blue);
}

.language-square {
    display: inline-block;
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    background: var(--brand-blue);
}

.mobile-actions {
    display: none;
}

.page-canvas {
    width: 100%;
    max-width: var(--site-max-width);
    min-height: calc(100vh - var(--header-height));
    margin: 0 auto;
    background: #ededed;
}

.page-event_detail .page-canvas {
    min-height: 0;
}

.intro-hero {
    display: flex;
    min-height: 116px;
    padding: 8px 48px 4px 270px;
    align-items: center;
    background-color: var(--stone-grey);
    background-image: url("../images/sassi.jpg");
    background-repeat: no-repeat;
    background-position: center -190px;
    background-size: 100% auto;
}

.intro-title {
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 4.028vw, 48.333px);
    font-weight: 400;
    line-height: 1.08;
    font-kerning: normal;
    transform: translateY(-17px);
}

.intro-title > span {
    display: block;
}

.intro-title .title-medium {
    font-weight: 500;
}

.intro-title .title-bold {
    font-weight: 700;
}

.intro-title .title-black {
    font-weight: 900;
}

.intro-quote {
    min-height: 375px;
    padding: 45px 72px 44px 270px;
    background-color: #d7d7d7;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.66), rgba(255, 255, 255, 0.66)),
        url("../images/sassi.jpg");
    background-repeat: no-repeat;
    background-position: center, center 54%;
    background-size: cover, 100% auto;
}

.intro-quote blockquote {
    max-width: 830px;
    margin: 0;
    color: var(--brand-blue);
    font-size: clamp(28px, 3.056vw, 36.667px);
    font-weight: 500;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.intro-photo {
    position: relative;
    aspect-ratio: 1568 / 704;
    margin: 0;
    overflow: hidden;
    background: #c9c9c9;
}

.intro-photo-track {
    position: absolute;
    inset: 0;
}

.intro-photo-slide {
    position: absolute;
    inset: 0;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition:
        opacity 700ms ease,
        visibility 700ms;
}

.intro-photo-slide.is-active {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.intro-photo-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.intro-photo-controls {
    position: absolute;
    z-index: 3;
    inset: 0;
    display: none;
    pointer-events: none;
}

.motion-ready .intro-photo-controls {
    display: block;
}

.intro-photo-control {
    border: 0;
    cursor: pointer;
}

.intro-photo-control {
    position: absolute;
    top: 50%;
    display: grid;
    width: 38px;
    height: 38px;
    padding: 0;
    border-radius: 50%;
    place-items: center;
    background: rgba(255, 255, 255, 0.62);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
    color: var(--brand-blue);
    font: inherit;
    line-height: 1;
    opacity: 0.72;
    pointer-events: auto;
    transform: translateY(-50%);
    transition:
        background-color 180ms ease,
        opacity 180ms ease,
        transform 180ms ease;
}

.intro-photo-control[data-carousel-previous] {
    left: 16px;
}

.intro-photo-control[data-carousel-next] {
    right: 16px;
}

.intro-photo-control:hover {
    background: rgba(255, 255, 255, 0.9);
    opacity: 1;
    transform: translateY(-50%) scale(1.05);
}

.intro-photo-control:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 2px;
    opacity: 1;
}

.intro-photo-arrow {
    padding-bottom: 3px;
    font-size: 28px;
}

.about-ecomuseum {
    position: relative;
    min-height: 625px;
    overflow: hidden;
    padding: 85px 50px 30px 270px;
    background: #ccc;
}

.about-ecomuseum::before {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: 354.167px;
    height: 116.667px;
    background: var(--brand-blue);
    clip-path: polygon(0 0, 100% 0, 95.3% 55.7%, 0 100%);
    content: "";
}

.about-ecomuseum-title {
    position: absolute;
    z-index: 1;
    top: 16px;
    left: 100px;
    margin: 0;
    color: #fff;
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.about-ecomuseum-title strong {
    font-weight: 800;
}

.about-ecomuseum-copy {
    position: relative;
    z-index: 1;
    max-width: 831px;
    color: #202020;
    font-size: 25px;
    font-weight: 400;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.about-ecomuseum-copy p {
    margin: 0;
}

.about-ecomuseum-copy p + p {
    margin-top: 30px;
}

.about-ecomuseum-copy strong {
    font-weight: 700;
}

.territory-page {
    background: #d6e6c9;
}

.territory-copy {
    position: relative;
    padding: 54px 50px 58px 275px;
    background: #d6e6c9;
}

.territory-copy-intro {
    min-height: 174px;
    padding-top: 38px;
    padding-bottom: 45px;
}

.territory-copy-final {
    padding-bottom: 72px;
}

.territory-title-panel {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: 260px;
    height: 100px;
    background: #3b9b3e;
    clip-path: polygon(0 0, 100% 0, 94% 66%, 0 100%);
}

.territory-title {
    position: absolute;
    z-index: 1;
    top: 17px;
    left: 106px;
    margin: 0;
    color: #fff;
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.territory-copy-inner {
    position: relative;
    z-index: 1;
    max-width: 831px;
    color: #202020;
    font-size: 25px;
    font-weight: 400;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.territory-copy-inner p {
    margin: 0;
}

.territory-copy-inner p + p {
    margin-top: 30px;
}

.territory-image {
    width: 100%;
    margin: 0;
    overflow: hidden;
}

.territory-image img {
    display: block;
    width: 100%;
    height: auto;
}

.territory-source {
    padding-top: 10px;
    font-size: 16px;
    line-height: 1.4;
}

.territory-source strong {
    font-weight: 700;
}

.territory-source cite {
    font-style: normal;
}

.community-map-page {
    min-height: 650px;
    background: #d6e6c9;
}

.community-map-intro {
    position: relative;
    padding: 24px 50px 28px 275px;
}

.community-map-title-panel {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: 260px;
    height: 112px;
    background: #3b9b3e;
    clip-path: polygon(0 0, 100% 0, 93% 67%, 0 100%);
}

.community-map-title {
    position: absolute;
    z-index: 1;
    top: 17px;
    left: 106px;
    max-width: 190px;
    margin: 0;
    color: #fff;
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.community-map-intro-inner {
    position: relative;
    z-index: 1;
    max-width: 831px;
    color: #202020;
    font-size: 25px;
    font-weight: 400;
    font-stretch: 87.5%;
    line-height: 1.35;
}

.community-map-intro-inner p {
    margin: 0;
}

.community-map-figure {
    margin: 0;
}

.community-map-link {
    display: block;
}

.community-map-link:focus-visible {
    outline: 3px solid var(--brand-blue);
    outline-offset: -3px;
}

.community-map-figure img {
    display: block;
    width: 100%;
    height: auto;
}

.events-page {
    min-height: 520px;
    padding-bottom: 70px;
    background: #c7e6f6;
}

.events-intro {
    position: relative;
    min-height: 150px;
}

.events-title-panel {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: 265px;
    height: 115px;
    background: var(--brand-blue);
    clip-path: polygon(0 0, 100% 0, 91% 68%, 0 100%);
}

.events-title {
    position: absolute;
    z-index: 1;
    top: 22px;
    left: 106px;
    width: 140px;
    margin: 0;
    color: #fff;
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
    white-space: normal;
}

.events-status {
    max-width: 831px;
    min-height: 170px;
    margin: 0;
    padding: 0 50px 48px 275px;
    color: #263f91;
    font-size: 25px;
    font-weight: 500;
    font-stretch: 87.5%;
    line-height: 1.35;
}

.events-list {
    padding: 0;
}

.events-list-inner {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.event-card {
    display: grid;
    grid-template-columns: 260px 235px minmax(0, 1fr);
    gap: 15px;
    align-items: start;
}

.event-card-image {
    width: 235px;
    overflow: hidden;
    aspect-ratio: 1.7 / 1;
    background: #83a6d4;
}

.event-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.event-date {
    display: flex;
    width: 260px;
    height: 100px;
    padding: 0 24px 16px 0;
    align-items: center;
    justify-content: center;
    color: var(--brand-blue);
    background: #83a6d4;
    clip-path: polygon(0 0, 100% 0, 94% 66%, 0 100%);
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.1;
    text-align: center;
}

.event-card-copy {
    min-width: 0;
    padding: 0 45px 12px 0;
}

.event-card-copy h2 {
    margin: 0;
    color: var(--brand-blue);
    font-size: 20px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.15;
}

.event-card-copy h2 a {
    color: inherit;
}

.event-card-image:focus-visible,
.event-card-copy h2 a:focus-visible {
    outline: 3px solid var(--brand-blue);
    outline-offset: 3px;
}

.event-meta {
    display: flex;
    margin: 3px 0 0;
    flex-wrap: wrap;
    gap: 4px 14px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.25;
}

.event-summary {
    margin: 4px 0 0;
    font-size: 16.5px;
    font-stretch: 87.5%;
    line-height: 1.27;
}

.event-booking-link {
    display: inline-block;
    margin-top: 8px;
    color: var(--brand-blue);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: opacity 160ms ease;
}

.event-booking-link:hover,
.event-booking-link:focus-visible {
    opacity: 0.68;
}

.event-detail-page {
    min-height: 520px;
    padding-bottom: 70px;
    background: #c7e6f6;
}

.event-detail-hero {
    display: grid;
    grid-template-columns: 260px 360px minmax(0, 1fr);
    gap: 15px;
    align-items: start;
}

.event-detail-date {
    display: flex;
    width: 260px;
    height: 115px;
    padding: 0 24px 18px 0;
    align-items: center;
    justify-content: center;
    color: var(--brand-blue);
    background: #83a6d4;
    clip-path: polygon(0 0, 100% 0, 91% 68%, 0 100%);
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.1;
}

.event-detail-cover {
    width: 360px;
    margin: 0;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #83a6d4;
}

.event-detail-cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.event-detail-heading {
    min-width: 0;
    padding: 18px 45px 24px 0;
}

.event-detail-back-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--brand-blue);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
}

.event-detail-back-link:hover,
.event-detail-back-link:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.event-detail-heading h1 {
    margin: 14px 0 0;
    color: var(--brand-blue);
    font-size: 30px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.15;
}

.event-detail-meta {
    margin: 9px 0 0;
    font-size: 15px;
    line-height: 1.35;
}

.event-detail-meta + .event-detail-meta {
    margin-top: 3px;
}

.event-detail-meta strong {
    margin-right: 5px;
    color: var(--brand-blue);
    font-weight: 700;
}

.event-detail-body {
    max-width: 925px;
    margin-left: 275px;
    padding: 38px 50px 16px 0;
    font-size: 20px;
    font-stretch: 87.5%;
    line-height: 1.45;
}

.event-detail-body p {
    margin: 0;
}

.event-detail-body p + p {
    margin-top: 1.25em;
}

.event-detail-summary {
    color: var(--brand-blue);
    font-size: 25px;
    font-weight: 500;
    line-height: 1.35;
}

.event-detail-booking-link {
    display: inline-flex;
    min-height: 48px;
    margin-top: 30px;
    padding: 12px 26px;
    align-items: center;
    color: #fff;
    background: var(--brand-blue);
    clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    transition: opacity 160ms ease;
}

.event-detail-booking-link:hover,
.event-detail-booking-link:focus-visible {
    color: #fff;
    opacity: 0.82;
}

.event-detail-message {
    min-height: 360px;
    padding: 72px 50px 90px 275px;
}

.event-detail-message h1 {
    max-width: 760px;
    margin: 28px 0 0;
    color: var(--brand-blue);
    font-size: 32px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.25;
}

.guided-tours-page,
.guided-tour-detail-page {
    min-height: 520px;
    background: #c7e6f6;
}

.guided-tours-page {
    padding-bottom: 165px;
}

.guided-tours-intro {
    position: relative;
    min-height: 292px;
    padding: 24px 50px 42px 275px;
}

.guided-tours-title-panel {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: 260px;
    height: 115px;
    background: var(--brand-blue);
    clip-path: polygon(0 0, 100% 0, 91% 68%, 0 100%);
}

.guided-tours-title {
    position: absolute;
    z-index: 1;
    top: 20px;
    left: 106px;
    margin: 0;
    color: #fff;
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.guided-tours-title span {
    display: block;
}

.guided-tours-intro p {
    max-width: 850px;
    margin: 0;
    font-size: 25px;
    font-weight: 400;
    font-stretch: 87.5%;
    line-height: 1.35;
}

.guided-tours-intro p a {
    color: var(--brand-blue);
    font-style: normal;
    font-weight: 700;
    text-decoration: none;
    transition: color 160ms ease;
}

.guided-tours-intro p a:hover,
.guided-tours-intro p a:focus-visible {
    color: #162d78;
    text-decoration: underline;
    text-underline-offset: .12em;
}

.education-workshops-page .guided-tours-intro p em {
    font-style: italic;
}

.guided-tours-status {
    min-height: 260px;
    margin: 0;
    padding: 0 50px 70px 275px;
    color: var(--brand-blue);
    font-size: 25px;
    font-weight: 500;
    font-stretch: 87.5%;
    line-height: 1.35;
}

.guided-tours-list {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.guided-tour-card {
    display: grid;
    grid-template-columns: 193px 400px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.guided-tour-card-label {
    position: relative;
    z-index: 2;
    display: flex;
    width: 260px;
    min-height: 0;
    padding: 12px 26px 55px 110px;
    align-items: center;
    color: var(--brand-blue);
    background: #83a6d4;
    clip-path: polygon(0 0, 100% 0, 94% 74%, 0 100%);
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
    white-space: pre-line;
}

.guided-tour-card-image,
.guided-tour-detail-cover {
    position: relative;
    display: block;
    overflow: hidden;
    background: #83a6d4;
}

.guided-tour-card-image {
    width: 400px;
    aspect-ratio: 1.172 / 1;
}

.guided-tour-card-image img,
.guided-tour-detail-cover img {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

.guided-tour-card-image img.is-rotated-90,
.guided-tour-detail-cover img.is-rotated-90 {
    top: 50%;
    left: 50%;
    width: 85.33%;
    height: 117.2%;
    transform: translate(-50%, -50%) rotate(90deg);
}

.guided-tour-card-image img.is-rotated-180,
.guided-tour-detail-cover img.is-rotated-180 {
    transform: rotate(180deg);
}

.guided-tour-card-image img.is-rotated-270,
.guided-tour-detail-cover img.is-rotated-270 {
    top: 50%;
    left: 50%;
    width: 85.33%;
    height: 117.2%;
    transform: translate(-50%, -50%) rotate(270deg);
}

.guided-tour-card-copy {
    min-width: 0;
    padding: 0 45px 12px 0;
}

.guided-tour-card-copy h2 {
    margin: -4px 0 0;
    color: var(--brand-blue);
    font-size: 20px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.15;
}

.guided-tour-card-copy h2 a {
    color: inherit;
}

.guided-tour-card-copy p {
    margin: 4px 0 0;
    font-size: 16.5px;
    font-stretch: 87.5%;
    line-height: 1.27;
}

.thematic-routes-list {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.thematic-route-card {
    display: grid;
    grid-template-columns: 193px 480px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.thematic-route-card-label {
    position: relative;
    z-index: 2;
    display: flex;
    width: 260px;
    min-height: 0;
    padding: 12px 26px 55px 110px;
    align-items: center;
    color: var(--brand-blue);
    background: #83a6d4;
    clip-path: polygon(0 0, 100% 0, 94% 74%, 0 100%);
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
    white-space: pre-line;
}

.thematic-route-card-image {
    display: block;
    width: 480px;
}

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

.thematic-route-card-copy {
    min-width: 0;
    padding: 0 40px 12px 0;
}

.thematic-route-card-copy h2 {
    margin: -4px 0 0;
    color: var(--brand-blue);
    font-size: 20px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.15;
}

.thematic-route-card-copy h2 a {
    color: inherit;
}

.thematic-route-card-copy p {
    margin: 4px 0 0;
    font-size: 16.5px;
    font-stretch: 87.5%;
    line-height: 1.27;
}

.thematic-route-card-copy .thematic-route-map-link {
    margin-top: 8px;
    text-align: right;
}

.thematic-route-map-link a {
    color: var(--brand-blue);
    text-decoration: underline;
    text-underline-offset: .12em;
}

.thematic-route-map-link a:hover,
.thematic-route-map-link a:focus-visible {
    color: #162d78;
}

.thematic-route-map-link em {
    font-weight: 400;
}

.thematic-route-map-link strong {
    font-weight: 700;
}

.education-workshops-list {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.education-workshops-page {
    padding-bottom: 593px;
}

.education-workshop-card {
    display: grid;
    grid-template-columns: 193px 400px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.education-workshop-card-label {
    position: relative;
    z-index: 2;
    display: flex;
    width: 260px;
    min-height: 0;
    padding: 12px 26px 55px 110px;
    align-items: center;
    color: var(--brand-blue);
    background: #83a6d4;
    clip-path: polygon(0 0, 100% 0, 94% 74%, 0 100%);
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
    white-space: pre-line;
}

.education-workshop-card-image {
    position: relative;
    display: block;
    width: 400px;
    overflow: hidden;
    aspect-ratio: 1.172 / 1;
    background: #83a6d4;
}

.education-workshop-card-image img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.education-workshop-card-copy {
    min-width: 0;
    padding: 0 45px 12px 0;
}

.education-workshop-card-copy h2 {
    margin: -4px 0 0;
    color: var(--brand-blue);
    font-size: 20px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.15;
}

.education-workshop-card-copy h2 a {
    color: inherit;
}

.education-workshop-card-copy p {
    margin: 4px 0 0;
    font-size: 16.5px;
    font-stretch: 87.5%;
    line-height: 1.27;
}

.guided-tour-card-label:focus-visible,
.guided-tour-card-image:focus-visible,
.guided-tour-card-copy a:focus-visible,
.thematic-route-card-label:focus-visible,
.thematic-route-card-image:focus-visible,
.thematic-route-card-copy a:focus-visible,
.education-workshop-card-label:focus-visible,
.education-workshop-card-image:focus-visible,
.education-workshop-card-copy a:focus-visible,
.guided-tour-detail-back-link:focus-visible,
.guided-tour-booking-link:focus-visible {
    outline: 3px solid var(--brand-blue);
    outline-offset: 3px;
}

.guided-tour-detail-page {
    padding-bottom: 90px;
}

.guided-tour-detail-hero {
    display: grid;
    grid-template-columns: 193px 500px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.guided-tour-detail-title-panel {
    position: relative;
    z-index: 2;
    display: flex;
    width: 260px;
    min-height: 135px;
    padding: 16px 26px 30px 110px;
    align-items: center;
    color: var(--brand-blue);
    background: #83a6d4;
    clip-path: polygon(0 0, 100% 0, 94% 72%, 0 100%);
}

.guided-tour-detail-title-panel h1 {
    margin: 0;
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.guided-tour-detail-cover {
    width: 500px;
    margin: 0;
    aspect-ratio: 1.172 / 1;
}

.thematic-route-detail-title-panel h1 {
    white-space: pre-line;
}

.education-workshop-detail-title-panel h1 {
    white-space: pre-line;
}

.thematic-route-detail-cover {
    aspect-ratio: 1.421 / 1;
}

.thematic-route-detail-name {
    margin: 15px 0 0;
    color: var(--brand-blue);
    font-size: 24px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.18;
}

.thematic-route-detail-name + .guided-tour-detail-summary {
    margin-top: 10px;
}

.guided-tour-detail-overview {
    min-width: 0;
    padding: 18px 45px 20px 0;
}

.guided-tour-detail-back-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--brand-blue);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
}

.guided-tour-detail-back-link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.guided-tour-detail-summary {
    margin: 17px 0 0;
    color: var(--brand-blue);
    font-size: 22px;
    font-weight: 500;
    font-stretch: 87.5%;
    line-height: 1.32;
}

.guided-tour-detail-meta {
    margin: 12px 0 0;
    font-size: 15px;
    line-height: 1.35;
}

.guided-tour-detail-meta + .guided-tour-detail-meta {
    margin-top: 4px;
}

.guided-tour-detail-meta strong {
    margin-right: 5px;
    color: var(--brand-blue);
    font-weight: 700;
}

.guided-tour-detail-body {
    max-width: 925px;
    margin-left: 275px;
    padding: 42px 50px 10px 0;
    font-size: 20px;
    font-stretch: 87.5%;
    line-height: 1.45;
}

.guided-tour-detail-body p {
    margin: 0;
}

.guided-tour-detail-body p + p {
    margin-top: 1.25em;
}

.guided-tour-practical-information {
    margin-top: 34px;
    padding-top: 24px;
    border-top: 2px solid rgba(38, 63, 145, 0.24);
}

.guided-tour-practical-information h2 {
    margin: 0 0 12px;
    color: var(--brand-blue);
    font-size: 24px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.guided-tour-booking-link {
    display: inline-flex;
    min-height: 48px;
    margin-top: 30px;
    padding: 12px 26px;
    align-items: center;
    color: #fff;
    background: var(--brand-blue);
    clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    transition: opacity 160ms ease;
}

.guided-tour-booking-link:hover {
    color: #fff;
    opacity: 0.82;
}

.guided-tour-detail-message {
    min-height: 420px;
    padding: 72px 50px 90px 275px;
}

.guided-tour-detail-message h1 {
    max-width: 760px;
    margin: 28px 0 0;
    color: var(--brand-blue);
    font-size: 32px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.25;
}

.about-page {
    min-height: 520px;
    color: #202020;
    background: #d3d1d1;
}

.about-page-intro {
    position: relative;
    min-height: 292px;
    padding: 24px 50px 42px 275px;
}

.about-page-title-panel {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: 260px;
    height: 115px;
    background: #676666;
    clip-path: polygon(0 0, 100% 0, 91% 68%, 0 100%);
}

.about-page-title {
    position: absolute;
    z-index: 1;
    top: 20px;
    left: 106px;
    margin: 0;
    color: #fff;
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.about-page-title span {
    display: block;
}

.about-page-intro-copy p {
    max-width: 850px;
    margin: 0;
    font-size: 25px;
    font-weight: 400;
    font-stretch: 87.5%;
    line-height: 1.35;
}

.about-page-intro-copy p + p {
    margin-top: 10px;
}

.about-members {
    display: flex;
    flex-direction: column;
    gap: 34px;
    padding-bottom: 52px;
}

.about-member {
    display: grid;
    grid-template-columns: 260px 232px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.about-member-label,
.about-section-label {
    position: relative;
    z-index: 1;
    display: flex;
    width: 260px;
    min-height: 104px;
    margin: 0;
    padding: 12px 26px 30px 108px;
    align-items: center;
    color: #272727;
    background: #999898;
    clip-path: polygon(0 0, 100% 0, 94% 74%, 0 100%);
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.18;
}

.about-member-logo {
    width: 232px;
    margin: 0;
    overflow: hidden;
    background: #fff;
}

.about-member-logo img {
    display: block;
    width: 100%;
    height: auto;
}

.about-member-copy {
    min-width: 0;
    padding: 0 45px 0 0;
}

.about-member-copy h3 {
    margin: -3px 0 7px;
    color: var(--brand-blue);
    font-size: 19px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.about-member-copy p {
    margin: 0;
    font-size: 16px;
    font-stretch: 87.5%;
    line-height: 1.42;
}

.about-governance,
.about-documents {
    display: grid;
    grid-template-columns: 260px 232px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.about-governance {
    padding: 20px 0 30px;
    background: rgba(255, 255, 255, 0.42);
}

.about-section-label {
    min-height: 115px;
    color: #fff;
    background: #676666;
}

.about-governance-content {
    grid-column: 3;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(180px, 0.75fr);
    gap: 28px;
    padding: 4px 45px 0 0;
}

.about-governance-content h3 {
    margin: 0 0 10px;
    font-size: 22px;
    font-weight: 500;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.about-governance-content dl {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 3px 18px;
    margin: 0;
    font-size: 16px;
    line-height: 1.25;
}

.about-governance-content dt {
    font-style: italic;
    font-weight: 400;
}

.about-governance-content dd {
    margin: 0;
}

.about-coordinator {
    min-height: 128px;
    padding-left: 18px;
    border-left: 1px solid rgba(32, 32, 32, 0.35);
}

.about-coordinator p {
    margin: 0;
    font-size: 16px;
}

.about-documents {
    min-height: 266px;
    padding: 20px 0 48px;
    background: #b8b7b7;
}

.about-document-list {
    grid-column: 3;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 150px));
    gap: 18px;
    padding: 0 45px 0 0;
}

.about-document-card {
    display: flex;
    min-height: 100px;
    padding: 18px 12px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--brand-blue);
    border-radius: 9px;
    color: #202020;
    background: #fff;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.28);
    font-size: 25px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.25;
    text-align: center;
}

.news-page {
    min-height: 520px;
    color: #202020;
    background: #fff0dc;
}

.news-heading {
    position: relative;
    height: 164px;
}

.news-heading-panel {
    position: absolute;
    inset: 0 auto auto 0;
    width: 355px;
    height: 114px;
    background: #f15a24;
    clip-path: polygon(0 0, 100% 0, 85.5% 80%, 0 100%);
}

.news-heading h1 {
    position: absolute;
    z-index: 1;
    top: 24px;
    left: 100px;
    margin: 0;
    color: #fff;
    font-size: 26.667px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.1;
    text-transform: uppercase;
}

.news-empty {
    max-width: 760px;
    margin: 0 auto;
    padding: 48px 30px 110px;
    color: #f15a24;
    font-size: 22px;
    font-weight: 600;
    font-stretch: 87.5%;
}

.news-list {
    padding: 0 0 110px;
}

.news-card {
    display: grid;
    min-height: 148px;
    grid-template-columns: 225px 240px minmax(0, 1fr);
    align-items: start;
    gap: 16px;
}

.news-card + .news-card {
    margin-top: 16px;
}

.news-card-date {
    display: flex;
    width: 225px;
    min-height: 90px;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 11px 30px 25px 20px;
    color: #f15a24;
    background: #f9aa80;
    clip-path: polygon(0 0, 100% 0, 93% 70%, 0 100%);
    font-size: 23px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.1;
}

.news-card-media {
    width: 240px;
    height: 128px;
    overflow: hidden;
    background: rgba(241, 90, 36, 0.1);
}

.news-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-card-copy {
    padding: 0 34px 20px 0;
    font-size: 17px;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.news-card-copy h2,
.news-card-copy p {
    margin: 0;
}

.news-card-copy h2 {
    color: #f15a24;
    font-size: inherit;
    font-weight: 700;
    line-height: 1.15;
}

.news-card-copy h2 a {
    color: inherit;
}

.news-detail-page {
    min-height: 520px;
    padding: 70px 90px 110px;
    background: #fff0dc;
}

.news-detail-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 440px);
    gap: 44px;
    align-items: start;
}

.news-detail-header img {
    width: 100%;
    max-height: 360px;
    object-fit: cover;
}

.news-detail-back {
    display: inline-block;
    margin-bottom: 24px;
    color: #f15a24;
    font-weight: 700;
}

.news-detail-header time {
    display: block;
    color: #f15a24;
    font-size: 20px;
    font-weight: 700;
}

.news-detail-header h1 {
    margin: 10px 0 18px;
    color: #f15a24;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1.05;
}

.news-detail-header p,
.news-detail-content {
    font-size: 20px;
    line-height: 1.45;
}

.news-detail-content {
    max-width: 900px;
    margin-top: 44px;
}

@media (max-width: 767.98px) {
    .news-detail-page { padding: 45px 20px 70px; }
    .news-detail-header { grid-template-columns: 1fr; gap: 26px; }
    .news-detail-header p, .news-detail-content { font-size: 18px; }
}

.news-card-copy p {
    margin-top: 2px;
}

.site-footer {
    position: relative;
    width: 100%;
    max-width: var(--site-max-width);
    min-height: 455px;
    overflow: hidden;
    margin: 0 auto;
    color: #fff;
    background-color: #2f5e85;
    background-image: url("../images/sassi.jpg");
    background-repeat: repeat-y;
    background-position: center top;
    background-size: cover;
    background-blend-mode: luminosity;
}

.footer-shades,
.footer-shade {
    position: absolute;
    z-index: 1;
    display: block;
}

.footer-shades {
    inset: 0;
    pointer-events: none;
}

.footer-shade {
    top: 0;
    left: 577.5px;
    background: rgba(255, 255, 255, 0.2);
}

.footer-shade-wide {
    width: 647.5px;
    height: 139.167px;
    clip-path: polygon(2.2% 0, 0 35.3%, 99.9% 100%, 100% 0);
}

.footer-shade-medium {
    width: 522.5px;
    height: 116.667px;
    clip-path: polygon(2.7% 0, 0 42.1%, 93.8% 100%, 100% 0);
}

.footer-shade-narrow {
    width: 369.722px;
    height: 96.667px;
    clip-path: polygon(3.8% 0, 0 50.9%, 92.2% 100%, 100% 0);
}

.footer-shade-short {
    width: 200.278px;
    height: 74.167px;
    clip-path: polygon(7.1% 0, 0 66.3%, 90.3% 100%, 100% 0);
}

.footer-navigation {
    --footer-hover-opacity: 0;
    --footer-hover-shape: polygon(0 0, 0 0, 0 0, 0 0);
    position: absolute;
    z-index: 2;
    inset: 0;
}

.footer-news-link {
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    display: block;
    box-sizing: border-box;
    width: 355px;
    height: 94px;
    padding: 14px 24px 20px 100px;
    color: #fff;
    background: #f15a24;
    clip-path: polygon(0 0, 100% 0, 85.5% 80%, 0 100%);
    font-size: 26.667px;
    font-weight: 700;
    font-stretch: 87.5%;
    line-height: 1.1;
    text-transform: uppercase;
    transition: background-color 160ms ease;
}

.footer-news-link:hover,
.footer-news-link:focus-visible {
    color: #fff;
    background: #ff713d;
}

.footer-news-link:focus-visible {
    outline: 3px solid #fff;
    outline-offset: -6px;
}

.footer-navigation::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    background: #fff;
    clip-path: var(--footer-hover-shape);
    content: "";
    opacity: var(--footer-hover-opacity);
    pointer-events: none;
    transition: opacity 160ms ease;
}

.footer-navigation:has(.footer-navigation-documentation:is(:hover, :focus-visible)) {
    --footer-hover-opacity: 0.76;
    --footer-hover-shape: polygon(
        591.667px 0,
        777.778px 0,
        758.333px 74.167px,
        577.5px 49.167px
    );
}

.footer-navigation:has(.footer-navigation-useful_links:is(:hover, :focus-visible)) {
    --footer-hover-opacity: 0.81;
    --footer-hover-shape: polygon(
        777.778px 0,
        947.917px 0,
        919.167px 96.667px,
        758.333px 74.167px
    );
}

.footer-navigation:has(.footer-navigation-contacts:is(:hover, :focus-visible)) {
    --footer-hover-opacity: 0.84;
    --footer-hover-shape: polygon(
        947.917px 0,
        1100px 0,
        1067.5px 116.667px,
        919.167px 96.667px
    );
}

.footer-navigation:has(.footer-navigation-credits:is(:hover, :focus-visible)) {
    --footer-hover-opacity: 0.88;
    --footer-hover-shape: polygon(
        1100px 0,
        1200px 0,
        1200px 135.833px,
        1067.5px 116.667px
    );
}

.footer-navigation-link {
    position: absolute;
    z-index: 1;
    top: 0;
    display: block;
    box-sizing: border-box;
    padding-top: 17.146px;
    color: #222;
    font-size: 19.167px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: 1.1;
    text-transform: uppercase;
    transition: color 160ms ease;
}

.footer-navigation-link:hover,
.footer-navigation-link:focus-visible {
    color: var(--brand-blue);
}

.footer-navigation-link:focus-visible {
    outline: 3px solid var(--brand-cyan);
    outline-offset: 3px;
}

.footer-navigation-documentation {
    left: 577.5px;
    width: 200.278px;
    height: 74.167px;
    padding-left: 14.167px;
    clip-path: polygon(7.1% 0, 100% 0, 90.3% 100%, 0 66.3%);
}

.footer-navigation-useful_links {
    left: 758.333px;
    width: 189.584px;
    height: 96.667px;
    padding-left: 20.14px;
    clip-path: polygon(10.3% 0, 100% 0, 84.8% 100%, 0 76.7%);
}

.footer-navigation-contacts {
    left: 919.167px;
    width: 180.833px;
    height: 116.667px;
    padding-left: 28.75px;
    clip-path: polygon(15.9% 0, 100% 0, 82.0% 100%, 0 82.9%);
}

.footer-navigation-credits {
    left: 1067.5px;
    width: 132.5px;
    height: 135.833px;
    padding-left: 33.195px;
    clip-path: polygon(24.5% 0, 100% 0, 100% 100%, 0 85.9%);
}

.footer-contact {
    position: relative;
    z-index: 2;
    left: 275px;
    width: 450px;
    margin: 106.667px 0 0;
    color: #fff;
    font-size: 26.667px;
    font-style: normal;
    font-stretch: 87.5%;
    line-height: 1.2;
}

.footer-contact p {
    margin: 0;
}

.footer-contact p + p {
    margin-top: 32px;
}

.footer-contact em {
    font-weight: 500;
}

.footer-contact a,
.footer-contact span {
    color: inherit;
    font-weight: 700;
}

.footer-contact a {
    transition: color 160ms ease;
}

.footer-contact a:hover,
.footer-contact a:focus-visible {
    color: #dff5ff;
}

.footer-contact .footer-newsletter-label {
    display: block;
    margin-bottom: 3px;
}

.footer-contact .footer-newsletter-link {
    display: flex;
    width: 435px;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    padding: 3px 18px 4px;
    color: #fff;
    background: #00aeef;
    font-size: 26.667px;
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    text-transform: uppercase;
    transition: background-color 160ms ease;
}

.footer-contact .footer-newsletter-link:hover,
.footer-contact .footer-newsletter-link:focus-visible {
    color: #fff;
    background: #18baf5;
}

.footer-legal {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px 32px;
    margin-top: 52px;
    padding: 12px 24px 16px;
    color: #fff;
    background-color: rgba(47, 94, 133, 0.85);
    font-size: 12px;
    line-height: 1.5;
    text-align: left;
    overflow-wrap: anywhere;
}

.footer-legal-copy {
    max-width: 760px;
}

.footer-legal p {
    margin: 0;
}

.footer-legal-name {
    font-weight: 400;
}

.footer-legal-details {
    display: flex;
    flex-wrap: wrap;
    column-gap: 16px;
}

.footer-legal a {
    color: inherit;
    text-decoration: none;
    text-underline-offset: 3px;
}

.footer-legal a:hover {
    color: #dff5ff;
}

.footer-policy-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
}

.footer-policy-links a {
    padding-block: 5px;
}

.footer-policy-links a[aria-current="page"] {
    font-weight: 700;
}

.footer-legal a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.build-version {
    position: fixed;
    z-index: 1090;
    bottom: 5px;
    left: 8px;
    padding: 3px 4px 2px;
    color: rgba(255, 255, 255, 0.62);
    background: rgba(25, 25, 25, 0.64);
    font-size: 10px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.02em;
    user-select: none;
}

.site-offcanvas {
    width: min(86vw, 360px);
    border: 0;
    background: #ececec;
}

.site-offcanvas .offcanvas-header {
    min-height: 102px;
    align-items: flex-start;
    color: #fff;
    background-color: var(--stone-grey);
    background-image: url("../images/sassi.jpg");
    background-position: top center;
    background-size: 650px auto;
}

.site-offcanvas .offcanvas-title {
    max-width: 240px;
    padding-top: 7px;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
}

.site-offcanvas .btn-close {
    margin-top: 1px;
    background-color: rgba(255, 255, 255, 0.92);
}

.mobile-menu {
    margin: 0;
    padding: 9px 0 0;
    list-style: none;
}

.mobile-menu li {
    border-bottom: 1px solid rgba(38, 63, 145, 0.18);
}

.mobile-menu a {
    display: block;
    padding: 19px 5px 17px;
    color: #222;
    font-size: 17px;
    font-weight: 600;
    font-stretch: 87.5%;
    text-transform: uppercase;
}

.mobile-submenu-toggle {
    display: flex;
    width: 100%;
    padding: 19px 5px 17px;
    border: 0;
    align-items: flex-start;
    justify-content: space-between;
    color: #222;
    background: transparent;
    font-family: inherit;
    font-size: 17px;
    font-weight: 600;
    font-stretch: 87.5%;
    line-height: inherit;
    text-align: left;
    text-transform: uppercase;
}

.mobile-submenu-toggle::after {
    flex: 0 0 8px;
    margin-right: 8px;
    color: var(--brand-blue);
}

.mobile-submenu {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 11px;
    list-style: none;
}

.mobile-submenu-project {
    border-top: 5px solid #3b9b3e;
    background: #9ac688;
}

.mobile-submenu-activities {
    border-top: 5px solid #176fb4;
    background: #83a6d4;
}

.mobile-menu .mobile-submenu li {
    border: 0;
}

.mobile-menu .mobile-submenu .submenu-card {
    padding: 0;
    color: #fff;
}

.mobile-menu .mobile-submenu .submenu-card:hover,
.mobile-menu .mobile-submenu .submenu-card:focus-visible {
    color: #fff;
}

.mobile-submenu .submenu-card-label {
    min-height: 24px;
    padding: 4px 13px 4px 5px;
    clip-path: polygon(0 0, 100% 0, calc(100% - 7px) 100%, 0 100%);
    font-size: 9.5px;
}

.mobile-menu a:hover,
.mobile-menu a:focus-visible,
.mobile-menu a[aria-current="page"],
.mobile-submenu-toggle.is-active {
    color: var(--brand-blue);
}

@media (max-width: 1199.98px) {
    body::before,
    body::after {
        display: none;
    }

    .desktop-navigation {
        width: 70vw;
        min-width: 710px;
    }

    .menu-link {
        padding-inline: 10px;
        font-size: 17px;
    }

    .language-switcher-desktop {
        width: 100px;
        flex-basis: 100px;
        padding-left: 26px;
    }

    .language-link {
        gap: 7px;
        font-size: 15px;
    }
}

@media (max-width: 991.98px) {
    :root {
        --header-height: 98px;
    }

    .header-inner::before {
        background-size: 650px auto;
    }

    .site-header,
    .header-inner {
        overflow: hidden;
    }

    .desktop-submenu-layer {
        display: none;
    }

    .brand-panel {
        top: 10px;
        width: 183px;
        height: 88px;
        clip-path: polygon(0 0, 93% 11%, 84% 100%, 0 100%);
    }

    .brand-mark {
        top: 0;
        left: 0;
        width: 100%;
    }

    .desktop-navigation {
        display: none;
    }

    .intro-hero {
        min-height: 180px;
        padding: 46px 24px 34px;
        background-position: center -98px;
        background-size: 650px auto;
    }

    .intro-title {
        font-size: clamp(30px, 7vw, 42px);
        line-height: 1.12;
        transform: none;
    }

    .intro-quote {
        min-height: 0;
        padding: 44px 24px 48px;
        background-position: center, center;
        background-size: cover, 650px auto;
    }

    .intro-quote blockquote {
        max-width: 720px;
        font-size: clamp(24px, 4.2vw, 32px);
        line-height: 1.25;
    }

    .quote-break {
        display: none;
    }

    .intro-photo-controls {
        inset: 0;
    }

    .intro-photo-control {
        width: 34px;
        height: 34px;
    }

    .intro-photo-control[data-carousel-previous] {
        left: 10px;
    }

    .intro-photo-control[data-carousel-next] {
        right: 10px;
    }

    .about-ecomuseum {
        min-height: 0;
        padding: 104px 24px 52px;
    }

    .about-ecomuseum::before {
        width: min(78vw, 354.167px);
        height: 88px;
        clip-path: polygon(0 0, 100% 0, 95% 57%, 0 100%);
    }

    .about-ecomuseum-title {
        top: 24px;
        left: 24px;
        font-size: 24px;
    }

    .about-ecomuseum-copy {
        max-width: 760px;
        font-size: clamp(19px, 2.7vw, 24px);
        line-height: 1.4;
    }

    .about-ecomuseum-copy p + p {
        margin-top: 1.4em;
    }

    .territory-copy,
    .territory-copy-intro,
    .territory-copy-final {
        min-height: 0;
        padding: 104px 24px 48px;
    }

    .territory-title-panel {
        width: min(78vw, 354.167px);
        height: 88px;
        clip-path: polygon(0 0, 100% 0, 95% 57%, 0 100%);
    }

    .territory-title {
        top: 24px;
        left: 24px;
        font-size: 24px;
    }

    .territory-copy-inner {
        max-width: 760px;
        font-size: clamp(19px, 2.7vw, 24px);
        line-height: 1.4;
    }

    .territory-copy-inner p + p {
        margin-top: 1.4em;
    }

    .territory-source {
        font-size: 15px;
    }

    .community-map-intro {
        padding: 104px 24px 32px;
    }

    .community-map-title-panel {
        width: min(88vw, 390px);
        height: 88px;
        clip-path: polygon(0 0, 100% 0, 95% 57%, 0 100%);
    }

    .community-map-title {
        top: 18px;
        left: 24px;
        max-width: 310px;
        font-size: 24px;
    }

    .community-map-intro-inner {
        max-width: 760px;
        font-size: clamp(19px, 2.7vw, 24px);
        line-height: 1.4;
    }

    .events-page {
        padding-bottom: 48px;
    }

    .events-intro {
        min-height: 135px;
    }

    .events-title-panel {
        width: min(78vw, 354.167px);
        height: 110px;
        clip-path: polygon(0 0, 100% 0, 95% 57%, 0 100%);
    }

    .events-title {
        top: 18px;
        left: 24px;
        width: 150px;
        font-size: 24px;
    }

    .events-status {
        max-width: 760px;
        font-size: clamp(19px, 2.7vw, 24px);
        line-height: 1.4;
    }

    .events-status {
        min-height: 140px;
        padding: 16px 24px 44px;
    }

    .events-list-inner {
        gap: 22px;
    }

    .event-card {
        grid-template-columns: 180px 210px minmax(0, 1fr);
        gap: 12px;
    }

    .event-date {
        width: 180px;
        height: 88px;
        padding: 0 18px 14px 0;
        font-size: 20px;
    }

    .event-card-image {
        width: 210px;
    }

    .event-card-copy {
        padding-right: 20px;
    }

    .event-card-copy h2 {
        font-size: 18px;
    }

    .event-summary {
        font-size: 15px;
    }

    .event-detail-page {
        padding-bottom: 48px;
    }

    .event-detail-hero {
        grid-template-columns: 180px 250px minmax(0, 1fr);
        gap: 12px;
    }

    .event-detail-date {
        width: 180px;
        height: 88px;
        padding: 0 18px 14px 0;
        font-size: 20px;
    }

    .event-detail-cover {
        width: 250px;
    }

    .event-detail-heading {
        padding: 14px 20px 22px 0;
    }

    .event-detail-heading h1 {
        margin-top: 10px;
        font-size: 24px;
    }

    .event-detail-body {
        max-width: none;
        margin-left: 0;
        padding: 34px 24px 12px;
        font-size: 19px;
    }

    .event-detail-summary {
        font-size: clamp(21px, 2.7vw, 24px);
    }

    .event-detail-message {
        padding: 60px 24px 80px;
    }

    .guided-tours-page {
        padding-bottom: 56px;
    }

    .guided-tours-intro {
        min-height: 0;
        padding: 104px 24px 48px;
    }

    .guided-tours-title-panel {
        width: min(78vw, 354.167px);
        height: 88px;
        clip-path: polygon(0 0, 100% 0, 95% 57%, 0 100%);
    }

    .guided-tours-title {
        top: 18px;
        left: 24px;
        font-size: 22px;
        line-height: 1.08;
    }

    .guided-tours-intro p,
    .guided-tours-status {
        max-width: 760px;
        font-size: clamp(19px, 2.7vw, 24px);
        line-height: 1.4;
    }

    .guided-tours-status {
        min-height: 180px;
        padding: 16px 24px 48px;
    }

    .guided-tours-list {
        gap: 38px;
    }

    .guided-tour-card {
        grid-template-columns: 150px 320px minmax(0, 1fr);
        gap: 12px;
    }

    .guided-tour-card-label {
        width: 220px;
        min-height: 0;
        padding: 10px 22px 46px 80px;
        clip-path: polygon(0 0, 100% 0, 94% 72%, 0 100%);
        font-size: 20px;
    }

    .guided-tour-card-image {
        width: 320px;
    }

    .guided-tour-card-copy {
        padding-right: 20px;
    }

    .guided-tour-card-copy h2 {
        font-size: 18px;
    }

    .guided-tour-card-copy p {
        font-size: 15px;
    }

    .guided-tour-detail-page {
        padding-bottom: 56px;
    }

    .guided-tour-detail-hero {
        grid-template-columns: 150px 420px minmax(0, 1fr);
        gap: 12px;
    }

    .guided-tour-detail-title-panel {
        width: 220px;
        min-height: 112px;
        padding: 13px 22px 25px 80px;
    }

    .guided-tour-detail-title-panel h1 {
        font-size: 20px;
    }

    .guided-tour-detail-cover {
        width: 420px;
    }

    .guided-tour-detail-overview {
        padding: 14px 20px 20px 0;
    }

    .guided-tour-detail-summary {
        font-size: 19px;
    }

    .guided-tour-detail-body {
        max-width: none;
        margin-left: 0;
        padding: 36px 24px 10px;
        font-size: 19px;
    }

    .guided-tour-detail-message {
        padding: 60px 24px 80px;
    }

    .news-card {
        grid-template-columns: 180px 220px minmax(0, 1fr);
        gap: 12px;
    }

    .news-card-date {
        width: 180px;
        padding-right: 24px;
        font-size: 20px;
    }

    .news-card-media {
        width: 220px;
        height: 120px;
    }

    .news-card-copy {
        padding-right: 20px;
        font-size: 16px;
    }

    .site-footer {
        min-height: 500px;
        background-size: 760px auto;
    }

    .footer-shades {
        display: none;
    }

    .footer-navigation {
        position: absolute;
        inset: 48px 0 auto;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        background: rgba(255, 255, 255, 0.34);
    }

    .footer-navigation::before {
        display: none;
    }

    .footer-navigation-link {
        position: static;
        width: auto;
        height: auto;
        padding: 18px 12px 17px;
        border-bottom: 1px solid rgba(38, 63, 145, 0.15);
        color: #202020;
        font-size: 16px;
        text-align: center;
        clip-path: none;
    }

    .footer-navigation-link:hover,
    .footer-navigation-link:focus-visible {
        background: rgba(255, 255, 255, 0.85);
    }

    .footer-navigation-link:nth-child(odd) {
        border-right: 1px solid rgba(38, 63, 145, 0.15);
    }

    .footer-news-link {
        width: 100%;
        height: 48px;
        padding: 9px 24px;
        clip-path: none;
        font-size: 20px;
        text-align: center;
    }

    .footer-contact {
        margin-top: 192px;
        left: 24px;
        width: calc(100% - 48px);
        font-size: clamp(21px, 4vw, 26px);
    }

    .footer-legal {
        padding-inline: 24px;
    }

    .mobile-actions {
        position: absolute;
        z-index: 5;
        top: 22px;
        right: 16px;
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .mobile-language-switcher {
        display: flex;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.58);
        background: rgba(255, 255, 255, 0.12);
    }

    .mobile-language-switcher a {
        display: flex;
        min-width: 36px;
        min-height: 34px;
        padding: 0 7px;
        align-items: center;
        justify-content: center;
        color: #fff;
        font-size: 11px;
        font-weight: 600;
        font-stretch: 87.5%;
    }

    .mobile-language-switcher a + a {
        border-left: 1px solid rgba(255, 255, 255, 0.58);
    }

    .mobile-language-switcher a:hover,
    .mobile-language-switcher a:focus-visible,
    .mobile-language-switcher a.is-active {
        color: var(--brand-blue);
        background: rgba(255, 255, 255, 0.92);
    }

    .mobile-menu-button {
        display: flex;
        width: 46px;
        height: 46px;
        padding: 10px;
        border: 0;
        align-items: stretch;
        flex-direction: column;
        justify-content: space-between;
        background: rgba(255, 255, 255, 0.94);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    }

    .mobile-menu-button span {
        display: block;
        width: 100%;
        height: 3px;
        background: var(--brand-blue);
    }
}

@media (max-width: 767.98px) {
    .events-page {
        padding-bottom: 42px;
    }

    .events-list-inner {
        gap: 28px;
    }

    .event-card {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .event-date {
        width: min(78vw, 260px);
        height: 78px;
        padding: 0 18px 14px 0;
        font-size: 21px;
    }

    .event-card-image {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .event-card-copy {
        padding: 15px 20px 0;
    }

    .event-card-copy h2 {
        font-size: 21px;
    }

    .event-meta {
        margin-top: 5px;
        font-size: 14px;
    }

    .event-summary {
        margin-top: 7px;
        font-size: 16px;
        line-height: 1.35;
    }

    .event-detail-page {
        padding-bottom: 42px;
    }

    .event-detail-hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .event-detail-heading {
        order: -1;
        padding: 26px 20px 30px;
    }

    .event-detail-heading h1 {
        margin-top: 13px;
        font-size: 28px;
    }

    .event-detail-date {
        width: min(78vw, 260px);
        height: 78px;
        padding: 0 18px 14px 0;
        font-size: 21px;
    }

    .event-detail-cover {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .event-detail-body {
        padding: 30px 20px 8px;
        font-size: 18px;
        line-height: 1.45;
    }

    .event-detail-summary {
        font-size: 22px;
    }

    .event-detail-message {
        min-height: 300px;
        padding: 50px 20px 70px;
    }

    .event-detail-message h1 {
        margin-top: 24px;
        font-size: 27px;
    }

    .guided-tours-page {
        padding-bottom: 44px;
    }

    .guided-tours-list {
        gap: 32px;
    }

    .guided-tour-card {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .guided-tour-card-label {
        width: min(78vw, 260px);
        min-height: 0;
        padding: 10px 28px 45px 24px;
        font-size: 21px;
    }

    .guided-tour-card-image {
        width: 100%;
        aspect-ratio: 1.172 / 1;
    }

    .guided-tour-card-copy {
        padding: 15px 20px 0;
    }

    .guided-tour-card-copy h2 {
        font-size: 21px;
    }

    .guided-tour-card-copy p {
        margin-top: 7px;
        font-size: 16px;
        line-height: 1.35;
    }

    .guided-tour-detail-page {
        padding-bottom: 44px;
    }

    .guided-tour-detail-hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .guided-tour-detail-title-panel {
        width: min(78vw, 260px);
        min-height: 96px;
        padding: 12px 28px 22px 24px;
    }

    .guided-tour-detail-title-panel h1 {
        font-size: 22px;
    }

    .guided-tour-detail-cover {
        width: 100%;
        aspect-ratio: 1.172 / 1;
    }

    .guided-tour-detail-overview {
        padding: 24px 20px 8px;
    }

    .guided-tour-detail-summary {
        font-size: 22px;
    }

    .guided-tour-detail-body {
        padding: 30px 20px 8px;
        font-size: 18px;
    }

    .guided-tour-detail-message {
        min-height: 300px;
        padding: 50px 20px 70px;
    }

    .guided-tour-detail-message h1 {
        margin-top: 24px;
        font-size: 27px;
    }
}

@media (max-width: 439.98px) {
    .brand-panel {
        top: 22px;
        width: 158px;
        height: 76px;
    }

    .brand-mark {
        top: 0;
        left: 0;
        width: 100%;
    }

    .mobile-actions {
        right: 10px;
        gap: 8px;
    }

    .intro-hero {
        min-height: 170px;
        padding-inline: 20px;
    }

    .intro-title {
        font-size: 29px;
    }

    .intro-quote {
        padding: 36px 20px 40px;
    }

    .intro-quote blockquote {
        font-size: 23px;
    }

    .intro-photo-controls {
        inset: 0;
    }

    .intro-photo-control {
        width: 30px;
        height: 30px;
    }

    .intro-photo-control[data-carousel-previous] {
        left: 7px;
    }

    .intro-photo-control[data-carousel-next] {
        right: 7px;
    }

    .about-ecomuseum {
        padding: 94px 20px 44px;
    }

    .about-ecomuseum::before {
        width: 88vw;
        height: 80px;
    }

    .about-ecomuseum-title {
        top: 21px;
        left: 20px;
        font-size: 22px;
    }

    .about-ecomuseum-copy {
        font-size: 19px;
    }

    .territory-copy,
    .territory-copy-intro,
    .territory-copy-final {
        padding: 94px 20px 44px;
    }

    .territory-title-panel {
        width: 88vw;
        height: 80px;
    }

    .territory-title {
        top: 21px;
        left: 20px;
        font-size: 22px;
    }

    .territory-copy-inner {
        font-size: 19px;
    }

    .community-map-intro {
        padding: 94px 20px 28px;
    }

    .community-map-title-panel {
        width: 92vw;
        height: 80px;
    }

    .community-map-title {
        top: 17px;
        left: 20px;
        max-width: calc(92vw - 42px);
        font-size: 22px;
    }

    .community-map-intro-inner {
        font-size: 19px;
    }

    .events-page {
        padding-bottom: 36px;
    }

    .events-intro {
        min-height: 120px;
    }

    .events-title-panel {
        width: 88vw;
        height: 100px;
    }

    .events-title {
        top: 17px;
        left: 20px;
        width: 145px;
        font-size: 22px;
    }

    .events-status {
        font-size: 19px;
    }

    .events-status {
        padding: 12px 20px 40px;
    }

    .event-date {
        width: 88vw;
        max-width: 260px;
        height: 72px;
        font-size: 20px;
    }

    .event-card-copy {
        padding: 14px 20px 0;
    }

    .event-card-copy h2 {
        font-size: 20px;
    }

    .event-detail-heading h1 {
        font-size: 25px;
    }

    .event-detail-date {
        width: 88vw;
        max-width: 260px;
        height: 72px;
        font-size: 20px;
    }

    .event-detail-body {
        font-size: 17px;
    }

    .event-detail-summary {
        font-size: 20px;
    }

    .guided-tours-intro {
        padding: 94px 20px 40px;
    }

    .guided-tours-title-panel {
        width: 88vw;
        height: 84px;
    }

    .guided-tours-title {
        top: 17px;
        left: 20px;
        font-size: 21px;
    }

    .guided-tours-intro p,
    .guided-tours-status {
        font-size: 19px;
    }

    .guided-tours-status {
        padding: 12px 20px 42px;
    }

    .guided-tour-card-label,
    .guided-tour-detail-title-panel {
        width: 88vw;
        max-width: 260px;
    }

    .guided-tour-card-copy h2 {
        font-size: 20px;
    }

    .guided-tour-detail-summary {
        font-size: 20px;
    }

    .guided-tour-detail-body {
        font-size: 17px;
    }

    .site-footer {
        min-height: 535px;
        background-size: 650px auto;
    }

    .footer-navigation-link {
        padding-inline: 7px;
        font-size: 14px;
    }

    .footer-contact {
        margin-top: 184px;
        left: 20px;
        width: calc(100% - 40px);
        font-size: 21px;
    }

    .footer-legal {
        padding-inline: 20px;
    }

    .footer-contact a,
    .footer-contact span {
        overflow-wrap: anywhere;
    }

    .footer-contact .footer-newsletter-link {
        width: 100%;
        max-width: 435px;
        font-size: 23px;
    }

    .news-heading {
        height: 120px;
    }

    .news-heading-panel {
        width: min(88vw, 355px);
        height: 90px;
    }

    .news-heading h1 {
        top: 19px;
        left: 48px;
        font-size: 23px;
    }

    .news-list {
        padding-bottom: 72px;
    }

    .news-card {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .news-card + .news-card {
        margin-top: 34px;
    }

    .news-card-date {
        width: min(78vw, 260px);
        min-height: 68px;
        justify-content: flex-start;
        padding: 11px 24px 20px;
        font-size: 20px;
    }

    .news-card-media {
        width: calc(100% - 40px);
        height: auto;
        aspect-ratio: 1.875 / 1;
        margin: 0 20px;
    }

    .news-card-copy {
        padding: 0 20px;
        font-size: 17px;
    }
}

@media (max-width: 991.98px) {
    .about-page-intro {
        min-height: 0;
        padding: 104px 24px 48px;
    }

    .about-page-title-panel {
        width: min(78vw, 354.167px);
        height: 88px;
        clip-path: polygon(0 0, 100% 0, 95% 57%, 0 100%);
    }

    .about-page-title {
        top: 18px;
        left: 24px;
        font-size: 22px;
        line-height: 1.08;
    }

    .about-page-intro-copy p {
        max-width: 760px;
        font-size: clamp(19px, 2.7vw, 24px);
        line-height: 1.4;
    }

    .about-member {
        grid-template-columns: 150px 180px minmax(0, 1fr);
        gap: 12px;
    }

    .about-member-label,
    .about-section-label {
        width: 220px;
        min-height: 94px;
        padding: 10px 22px 28px 80px;
        font-size: 20px;
    }

    .about-member-logo {
        width: 180px;
    }

    .about-member-copy {
        padding-right: 20px;
    }

    .about-member-copy h3 {
        font-size: 18px;
    }

    .about-member-copy p {
        font-size: 15px;
    }

    .about-governance,
    .about-documents {
        grid-template-columns: 150px 180px minmax(0, 1fr);
        gap: 12px;
    }

    .about-governance-content {
        gap: 18px;
        padding-right: 20px;
    }

    .about-document-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        padding-right: 20px;
    }

    .thematic-routes-list {
        gap: 38px;
    }

    .thematic-route-card {
        grid-template-columns: 150px 390px minmax(0, 1fr);
        gap: 12px;
    }

    .thematic-route-card-label {
        width: 220px;
        padding: 10px 22px 46px 80px;
        clip-path: polygon(0 0, 100% 0, 94% 72%, 0 100%);
        font-size: 20px;
    }

    .thematic-route-card-image {
        width: 390px;
    }

    .thematic-route-card-copy {
        padding-right: 20px;
    }

    .thematic-route-card-copy h2 {
        font-size: 18px;
    }

    .thematic-route-card-copy p {
        font-size: 15px;
    }

    .education-workshops-list {
        gap: 38px;
    }

    .education-workshop-card {
        grid-template-columns: 150px 320px minmax(0, 1fr);
        gap: 12px;
    }

    .education-workshop-card-label {
        width: 220px;
        padding: 10px 22px 46px 80px;
        clip-path: polygon(0 0, 100% 0, 94% 72%, 0 100%);
        font-size: 20px;
    }

    .education-workshop-card-image {
        width: 320px;
    }

    .education-workshop-card-copy {
        padding-right: 20px;
    }

    .education-workshop-card-copy h2 {
        font-size: 18px;
    }

    .education-workshop-card-copy p {
        font-size: 15px;
    }

    .thematic-route-detail-cover {
        aspect-ratio: 1.421 / 1;
    }
}

@media (max-width: 767.98px) {
    .about-page-intro {
        padding: 104px 20px 38px;
    }

    .about-page-intro-copy p {
        font-size: 19px;
    }

    .about-members {
        gap: 40px;
        padding-bottom: 46px;
    }

    .about-member {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .about-member-label {
        grid-column: 1;
        grid-row: 1;
        width: min(78vw, 260px);
        min-height: 96px;
        padding: 12px 28px 28px 24px;
        font-size: 21px;
    }

    .about-member-logo {
        grid-column: 1;
        grid-row: 2;
        width: min(62vw, 232px);
        margin: 18px 20px 0;
    }

    .about-member-copy {
        grid-column: 1;
        grid-row: 3;
        padding: 16px 20px 0;
    }

    .about-member-copy h3 {
        font-size: 20px;
    }

    .about-member-copy p {
        font-size: 16px;
        line-height: 1.45;
    }

    .about-governance,
    .about-documents {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .about-section-label {
        grid-column: 1;
        grid-row: 1;
        width: min(78vw, 260px);
        min-height: 96px;
        padding: 12px 28px 28px 24px;
        font-size: 21px;
    }

    .about-governance-content {
        grid-column: 1;
        grid-row: 2;
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
        padding: 24px 20px 10px;
    }

    .about-coordinator {
        min-height: 0;
        padding: 20px 0 0;
        border-top: 1px solid rgba(32, 32, 32, 0.35);
        border-left: 0;
    }

    .about-document-list {
        grid-column: 1;
        grid-row: 2;
        grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
        gap: 12px;
        padding: 28px 20px 6px;
    }

    .thematic-routes-list {
        gap: 32px;
    }

    .thematic-route-card {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .thematic-route-card-label {
        grid-column: 1;
        grid-row: 1;
        width: min(78vw, 260px);
        padding: 10px 28px 45px 24px;
        font-size: 21px;
    }

    .thematic-route-card-image {
        grid-column: 1;
        grid-row: 1;
        width: 100%;
    }

    .thematic-route-card-copy {
        grid-column: 1;
        grid-row: 2;
        padding: 15px 20px 0;
    }

    .thematic-route-card-copy h2 {
        font-size: 21px;
    }

    .thematic-route-card-copy p {
        margin-top: 7px;
        font-size: 16px;
        line-height: 1.35;
    }

    .education-workshops-list {
        gap: 32px;
    }

    .education-workshop-card {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .education-workshop-card-label {
        grid-column: 1;
        grid-row: 1;
        width: min(78vw, 260px);
        padding: 10px 28px 45px 24px;
        font-size: 21px;
    }

    .education-workshop-card-image {
        grid-column: 1;
        grid-row: 1;
        width: 100%;
        aspect-ratio: 1.172 / 1;
    }

    .education-workshop-card-copy {
        grid-column: 1;
        grid-row: 2;
        padding: 15px 20px 0;
    }

    .education-workshop-card-copy h2 {
        font-size: 21px;
    }

    .education-workshop-card-copy p {
        margin-top: 7px;
        font-size: 16px;
        line-height: 1.35;
    }

    .thematic-route-detail-cover {
        grid-column: 1;
        grid-row: 1;
        width: 100%;
        aspect-ratio: 1.421 / 1;
    }

    .thematic-route-detail-title-panel {
        grid-column: 1;
        grid-row: 1;
    }

    .education-workshop-detail-cover {
        grid-column: 1;
        grid-row: 1;
    }

    .education-workshop-detail-title-panel {
        grid-column: 1;
        grid-row: 1;
    }

    .education-workshop-detail-hero .guided-tour-detail-overview {
        grid-column: 1;
        grid-row: 2;
    }

    .thematic-route-detail-hero .guided-tour-detail-overview {
        grid-column: 1;
        grid-row: 2;
    }

    .thematic-route-detail-name {
        font-size: 23px;
    }
}

@media (max-width: 439.98px) {
    .about-member-label,
    .about-section-label {
        width: 88vw;
        max-width: 260px;
    }

    .about-governance-content dl {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .about-governance-content dd + dt {
        margin-top: 8px;
    }

    .thematic-route-card-label {
        width: 88vw;
        max-width: 260px;
    }

    .education-workshop-card-label {
        width: 88vw;
        max-width: 260px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .intro-photo-slide,
    .intro-photo-slide img,
    .intro-photo-control {
        transition: none;
    }
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
