@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;800&display=swap');
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");
@import url("https://unpkg.com/leaflet@1.9.4/dist/leaflet.css");
@import url("https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css");

.flatpickr-calendar {
  width: auto !important;
  max-width: calc(100vw - 1rem);
  padding: 0;
}

.flatpickr-innerContainer {
  padding: 2rem;
}

.flatpickr-calendar.multiMonth .flatpickr-days {
  display: flex !important;
  gap: 1rem;
  width: auto !important;
}

.flatpickr-calendar.multiMonth .dayContainer {
  flex: 0 0 307.875px;
  max-width: 307.875px;
  min-width: 307.875px;
  width: 307.875px;
}

@media (width < 720px) {
  .flatpickr-innerContainer {
    padding: 1rem;
  }
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  transform: scale(1.5);
  transform-origin: center;
}

.content-grid {
  --padding-inline: var(--section-padding-inline, 1rem);
  --content-max-width: var(--container-max-width, 72rem);
  --breakout-max-width: 88rem;

  --breakout-size: calc((var(--breakout-max-width) - var(--content-max-width)) / 2);

  display: grid;
  grid-template-columns:
	[full-width-start] minmax(var(--padding-inline), 1fr)
	[breakout-start] minmax(0, var(--breakout-size))
	[content-start] min(
	  100% - (var(--padding-inline) * 2),
	  var(--content-max-width)
	)
	[content-end]
	minmax(0, var(--breakout-size)) [breakout-end]
	minmax(var(--padding-inline), 1fr) [full-width-end];
}

.content-grid.acco {
  --content-max-width: 1360px;
  --breakout-max-width: 1600px;

  --breakout-size: calc(
	(var(--breakout-max-width) - var(--content-max-width)) / 2
  );
}

.content-grid > :not(.breakout, .full-width),
.full-width > :not(.breakout, .full-width) {
  grid-column: content;
}

.content-grid > .breakout {
  grid-column: breakout;
}

.content-grid > .full-width {
  grid-column: full-width;

  display: grid;
  grid-template-columns: inherit;
}

img.full-width {
  width: 100%;
  max-height: 45vh;
  object-fit: cover;
}

:root {
  --color-scheme: light;

  --font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  --font-heading: var(--font-body);
  --font-family: var(--font-body);

  --fs-300: 0.95rem;
  --fs-350: 1rem;
  --fs-400: 1.125rem;
  --fs-500: 1.375rem;
  --fs-600: clamp(1.5rem, 1.28rem + 0.9vw, 2rem);
  --fs-700: clamp(2rem, 1.55rem + 1.8vw, 3rem);
  --fs-800: clamp(2.5rem, 1.72rem + 3vw, 4rem);
  --fs-900: clamp(3rem, 1.95rem + 4.3vw, 5.25rem);

  --container-max-width: 1600px;
  --section-padding-block: clamp(3rem, 6vw, 6rem);
  --section-padding-inline: clamp(0.5rem, 3vw, 3rem);
  --site-header-height: 6rem;
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;

  --color-background: #f7f4ee;
  --color-surface: #ffffff;
  --color-block-odd: #f7f4ee;
  --color-block-even: #efe8dd;
  --color-primary: #5e7f86;
  --color-primary-dark: #385c63;
  --color-accent: #ba8f70;
  --color-text: #3f4747;
  --color-muted: rgba(63, 71, 71, 0.68);
  --color-border: rgba(63, 71, 71, 0.14);
  --button-bg: var(--color-primary);
  --button-bg-hover: var(--color-primary-dark);
  --button-color: var(--color-surface);
  --button-color-hover: var(--color-surface);
  --button-padding: 0.9rem 1.6rem;
  --button-radius: var(--radius);
  --button-font-size: calc(var(--fs-300) + .2rem);
  --button-font-weight: 400;
  --button-letter-spacing: 0.02em;
  --button-text-transform: none;

  --clr-primary-000: var(--color-surface);
  --clr-primary-100: #d9ecf3;
  --clr-primary-200: #9cc9dc;
  --clr-primary-300: var(--color-primary);
  --clr-primary-400: var(--color-primary-dark);
  --clr-primary-500: #0f3345;
  --clr-secondary-000: hsl(269, 75%, 95%);
  --clr-secondary-100: hsl(269, 75%, 85%);
  --clr-secondary-200: hsl(269, 75%, 70%);
  --clr-secondary-300: hsl(269, 75%, 55%);
  --clr-secondary-400: hsl(269, 75%, 40%);
  --clr-secondary-500: hsl(269, 75%, 25%);
  --clr-accent-100: hsl(358, 72%, 95%);
  --clr-accent-200: hsl(358, 72%, 80%);
  --clr-accent-300: hsl(358, 72%, 65%);
  --clr-accent-400: var(--color-accent);
  --clr-accent-500: #93652f;
  --clr-accent2-100: hsl(100, 76%, 86%);
  --clr-accent2-200: hsl(100, 76%, 76%);
  --clr-accent2-300: hsl(100, 76%, 56%);
  --clr-accent2-400: hsl(100, 76%, 46%);
  --clr-accent2-500: hsl(100, 76%, 26%);
  
  --dirtywhite: var(--color-background);
  --cream: rgba(222, 216, 209, 1.00);
  --cream-light: rgba(222, 216, 209, .3);
  --clr-text: var(--color-text);
  --clr-light-darken: var(--color-muted);
  --clr-light: rgba(38, 50, 58, .5);
  --radius: .45rem;
  --line: var(--color-border);
  --line-light: RGBA(224, 223, 239, 1.00);
  --line2: rgba(0,0,0,.3);
  
  --margin-block: var(--space-4);

  --admin-page-max-width: 1600px;
  --admin-page-padding-inline: 1rem;
  --admin-card-padding: calc(var(--admin-page-padding-inline) / 2);
  --admin-gap: var(--admin-card-padding);
  --admin-header-action-bg: rgba(255,255,255,.08);
  --admin-action-surface: #3a536b;
  --admin-action-surface-hover: #30465c;
}

body.theme-riva-mediterranean {
  --font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  --font-heading: var(--font-body);
  --font-family: var(--font-body);

  --container-max-width: 1600px;
  --section-padding-block: clamp(4rem, 8vw, 8rem);
  --section-padding-inline: clamp(1rem, 4vw, 4rem);

  --color-background: #f3f1ef;
  --color-surface: #ffffff;
  --color-block-odd: #f3f1ef;
  --color-block-even: #ded8d1;
  --color-primary: #476c9b;
  --color-primary-dark: #101419;
  --color-accent: #9e8c78;
  --color-text: #101419;
  --color-muted: rgba(16, 20, 25, 0.62);
  --color-border: rgba(16, 20, 25, 0.14);
  --button-bg: rgba(16,20,25,.8);
  --button-bg-hover: #101419;
  --button-color: #ded8d1;
  --button-color-hover: #ffffff;
  --button-padding: 1.6rem 2.6rem;
  --button-radius: .4rem;
  --button-font-size: .85rem;
  --button-font-weight: 300;
  --button-letter-spacing: .08rem;
  --button-text-transform: uppercase;

  --clr-primary-100: #dcece7;
  --clr-primary-200: #a8cbc3;
  --clr-primary-300: var(--color-primary);
  --clr-primary-400: var(--color-primary-dark);
  --clr-primary-500: #213f42;
  --clr-accent-400: var(--color-accent);
  --clr-accent-500: #9a624b;
  --dirtywhite: var(--color-background);
  --clr-text: var(--color-text);
  --clr-light-darken: var(--color-muted);
  --radius: .35rem;
  --line: var(--color-border);
}

.public-status-page {
  min-height: clamp(28rem, 62vh, 44rem);
  display: grid;
  align-items: center;
  padding-block: clamp(4rem, 9vw, 8rem);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(244, 247, 241, 0.74)),
    var(--color-background);
}

.public-status-panel {
  max-width: 46rem;
  padding: clamp(2rem, 4vw, 3.5rem);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.84);
  box-shadow: 0 1.5rem 5rem rgba(16, 20, 25, 0.08);
}

.public-status-kicker {
  margin: 0 0 var(--space-2);
  color: var(--color-muted);
  font-size: var(--fs-300);
  font-weight: 800;
  letter-spacing: 0;
}

.public-status-panel h1 {
  margin: 0;
  max-width: 14ch;
  color: var(--color-text);
  font-size: var(--fs-700);
  line-height: 1.05;
}

.public-status-message {
  margin-block: var(--space-3);
  color: var(--color-muted);
  font-size: var(--fs-400);
  line-height: 1.7;
}

.public-status-message p {
  margin-block: 0 var(--space-2);
}

.public-status-action {
  display: inline-flex;
  align-items: center;
  width: fit-content;
}

body.theme-riva-classic {
  --container-max-width: 1520px;
  --section-padding-block: clamp(3.5rem, 7vw, 7rem);
  --section-padding-inline: clamp(1rem, 3.5vw, 3.5rem);

  --color-background: #f6f0e5;
  --color-surface: #fffdf7;
  --color-block-odd: #f6f0e5;
  --color-block-even: #efe3d3;
  --color-primary: #6f8171;
  --color-primary-dark: #405847;
  --color-accent: #b87956;
  --color-text: #403c35;
  --color-muted: rgba(64, 60, 53, 0.66);
  --color-border: rgba(64, 60, 53, 0.16);
  --button-bg: rgba(16,20,25,.8);
  --button-bg-hover: #101419;
  --button-color: #ded8d1;
  --button-color-hover: #ffffff;
  --button-padding: 1.6rem 2.6rem;
  --button-radius: .4rem;
  --button-font-size: .85rem;
  --button-font-weight: 300;
  --button-letter-spacing: .08rem;
  --button-text-transform: uppercase;

  --clr-primary-100: #e2eadb;
  --clr-primary-200: #b8c7aa;
  --clr-primary-300: var(--color-primary);
  --clr-primary-400: var(--color-primary-dark);
  --clr-accent-400: var(--color-accent);
  --clr-accent-500: #935d3f;
  --dirtywhite: var(--color-background);
  --clr-text: var(--color-text);
  --clr-light-darken: var(--color-muted);
  --radius: .25rem;
  --line: var(--color-border);
}

body.theme-felix-arba {
  --container-max-width: 1320px;
  --section-padding-block: clamp(4.5rem, 8vw, 8rem);
  --section-padding-inline: clamp(1.25rem, 5vw, 4rem);

  --color-background: #f5f7f2;
  --color-surface: #ffffff;
  --color-block-odd: #f5f7f2;
  --color-block-even: #ffffff;
  --color-primary: #06736f;
  --color-primary-dark: #101614;
  --color-accent: #d5533f;
  --color-text: #101614;
  --color-muted: rgba(16, 22, 20, .64);
  --color-border: rgba(16, 22, 20, .14);
  --button-bg: #cfff4d;
  --button-bg-hover: #101614;
  --button-color: #101614;
  --button-color-hover: #ffffff;
  --button-padding: .95rem 1.25rem;
  --button-radius: .05rem;
  --button-font-size: .92rem;
  --button-font-weight: 900;
  --button-letter-spacing: 0;
  --button-text-transform: none;

  --clr-primary-100: #e1f4ef;
  --clr-primary-200: #8dd6cc;
  --clr-primary-300: var(--color-primary);
  --clr-primary-400: var(--color-primary-dark);
  --clr-primary-500: #101614;
  --clr-accent-400: var(--color-accent);
  --clr-accent-500: #a83125;
  --dirtywhite: var(--color-background);
  --clr-text: var(--color-text);
  --clr-light-darken: var(--color-muted);
  --radius: .08rem;
  --line: var(--color-border);
}

@media (width >= 800px) {
  :root {
    --admin-page-padding-inline: 2rem;
  }
}

@media (width >= 1280px) {
  :root {
    --admin-page-padding-inline: 3rem;
  }
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	color-scheme: var(--color-scheme);
}

body {
  margin: 0;
  font-family: var(--font-family);
  font-size: var(--fs-350);
  font-weight: 400;
  line-height: 1.65;
  color: var(--clr-text);
  background-color: var(--color-background);
  overflow-x: hidden !important;
}

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

.site-header,
.site-footer,
.block {
  width: 100%;
}

.site-header,
.site-footer {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.site-shell,
.container,
.block__inner {
  width: min(100%, 1600px);
  margin-inline: auto;
  padding-inline: var(--section-padding-inline);
}

.site-header {
  background: #ded8d1;
  /* background: var(--color-background); */
}

body:has(.block-hero-half) .site-header {
  background: var(--color-block-even);
}

body:has(.block-hero-fullscreen) .site-header,
body:has(.block-hero-fullscreen_half) .site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 20;
  background: transparent;
}

body:has(.block-hero-fullscreen) .site-header a,
body:has(.block-hero-fullscreen_half) .site-header a {
  color: inherit;
}

.site-header .site-shell {
  display: grid;
  gap: 0;
  width: min(100%, 1600px);
  padding-block: 0;
}

.site-header-top {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  align-items: center;
  justify-content: space-between;
  padding-block: clamp(1rem, 2.4vw, 1.4rem);
}

.site-brand {
  display: grid;
  width: max-content;
  gap: .35rem;
  color: var(--color-text);
  font-family: var(--font-heading);
  line-height: 1;
  text-align: left;
}

.site-brand-name {
  color: var(--color-primary-dark);
  font-size: 2.8rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: .75;
}

.site-brand-subtitle {
  display: block;
  width: 100%;
  color: color-mix(in srgb, var(--color-primary-dark) 46%, white);
  font-size: .65rem;
  font-weight: 400;
  letter-spacing: .95rem;
  line-height: 1;
  text-transform: uppercase;
}

.site-header-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: flex-end;
}

.site-contact-card {
  display: inline-flex;
  gap: 1rem;
  align-items: center;
  min-height: 5.5rem;
  padding: 1rem 1.25rem;
  border-radius: .4rem;
  background: #ded8d1;
  color: var(--color-primary-dark);
  line-height: 1.25;
}

.site-contact-icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border-right: .12rem solid rgba(16, 20, 25, .16);
  padding-right: .8rem;
}

.site-contact-icon i {
  color: var(--color-primary);
  font-size: 1.4rem;
}

.site-contact-text {
  color: rgba(16, 20, 25, .76);
  font-size: var(--fs-300);
  font-weight: 400;
}

.site-nav {
  width: 100vw;
  min-height: 100px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  display: flex;
  align-items: stretch;
  justify-content: center;
  background: #e9e7e5;
}

.language-switcher {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
  color: var(--color-muted);
  font-size: var(--fs-300);
  line-height: 1;
}

.language-switcher a,
.language-switcher strong,
.language-switcher span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 2rem;
  padding: .25rem .35rem;
  border: .01rem solid var(--color-border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-surface) 64%, transparent);
  color: var(--color-text);
  font-size: .78rem;
  font-weight: 800;
  text-decoration: none;
}

.language-switcher strong {
  background: var(--color-primary);
  color: var(--color-surface);
}

.site-footer {
  background: #d3cbc2;
}

.site-footer .site-shell {
  display: grid;
  gap: clamp(2rem, 4vw, 4rem);
  padding-block: clamp(3rem, 6vw, 5.5rem);
}

.site-footer-main,
.site-footer-bottom {
  display: grid;
  gap: clamp(1.5rem, 3vw, 3rem);
}

.site-footer-main {
  gap: clamp(3rem, 6vw, 6rem);
}

@media (width >= 760px) {
  .site-footer-bottom {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }
}

@media (width >= 960px) {
  .site-footer-main {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.site-footer-card {
  display: grid;
  align-content: start;
  gap: 1.1rem;
  min-height: 100%;
  padding-block: clamp(1.75rem, 3vw, 3rem);
  border-top: .01rem solid rgba(16, 20, 25, .16);
  background: transparent;
}

.site-footer-card h2 {
  color: #273b55;
  font-size: clamp(2.15rem, 3.2vw, 3.8rem);
  font-weight: 300;
  line-height: 1.05;
  text-transform: uppercase;
}

.site-footer-address h2 {
  font-size: clamp(1.05rem, 1.55vw, 1.9rem);
  letter-spacing: .08rem;
}

.site-footer-summary {
  max-width: 22rem;
  font-size: var(--fs-300) !important;
  line-height: 1.6;
}

.site-footer-card p {
  margin: 0;
  color: rgba(16, 20, 25, .68);
  font-size: var(--fs-400);
}

.site-footer-eyebrow {
  margin-bottom: .25rem;
}

.site-footer-image-card {
  color: #273b55;
}

.site-footer-links nav {
  display: grid;
  gap: .75rem;
  padding-top: .1rem;
}

.site-footer-links a {
  width: fit-content;
  color: #273b55;
  font-size: var(--fs-400);
  font-weight: 300;
  text-decoration: none;
}

.site-footer-links a:hover {
  color: var(--color-primary);
}

.site-footer-contact {
  align-content: center;
  gap: 1.4rem;
}

.site-footer-contact-row {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.site-footer-contact-row a {
  color: #273b55;
  font-size: var(--fs-400);
  font-weight: 300;
  overflow-wrap: anywhere;
}

.site-footer-contact-icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  flex: 0 0 auto;
  place-items: center;
  border-right: .12rem solid rgba(16, 20, 25, .16);
  padding-right: .8rem;
}

.site-footer-contact-icon i {
  color: var(--color-primary);
  font-size: 1.25rem;
}

.site-footer-payment {
  display: grid;
  gap: .75rem;
  padding-top: .35rem;
}

.site-footer-payment p {
  color: #273b55;
  font-size: var(--fs-300);
  font-weight: 400;
  letter-spacing: .08rem;
  text-transform: uppercase;
}

.site-footer-payment-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.site-footer-payment-badges span {
  display: inline-flex;
  min-height: 2.05rem;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  padding: .38rem .62rem;
  border: .01rem solid rgba(16, 20, 25, .16);
  border-radius: .35rem;
  background: color-mix(in srgb, var(--color-surface) 58%, transparent);
  color: #273b55;
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .035rem;
  line-height: 1;
  text-transform: uppercase;
}

.site-footer-payment-badges i {
  color: currentColor;
  font-size: 1.12rem;
  line-height: 1;
}

body[class*="theme-riva-"] .site-header .site-shell {
  padding-block: 0;
}

body[class*="theme-riva-"] .site-footer {
  border-top: .01rem solid var(--color-border);
  background: #d3cbc2;
}

body[class*="theme-riva-"] .site-footer .site-shell {
  padding-block: clamp(3rem, 6vw, 5.5rem);
}

body[class*="theme-riva-"] h1,
body[class*="theme-riva-"] h2,
body[class*="theme-riva-"] h3 {
  font-weight: 400;
}

body[class*="theme-riva-"] p {
  color: var(--color-muted);
}

body.theme-felix-arba .site-header {
  border-bottom: .01rem solid var(--color-border);
  background: #ffffff;
}

body.theme-felix-arba:has(.block-hero-fullscreen) .site-header,
body.theme-felix-arba:has(.block-hero-fullscreen_half) .site-header {
  position: relative;
  background: #ffffff;
}

body.theme-felix-arba .site-header-top {
  padding-block: clamp(1rem, 2vw, 1.25rem);
}

body.theme-felix-arba .site-brand {
  gap: .45rem;
}

body.theme-felix-arba .site-brand-name {
  color: var(--color-primary-dark);
  font-size: clamp(1.6rem, 3.2vw, 2.35rem);
  font-weight: 800;
  line-height: 1;
}

body.theme-felix-arba .site-brand-subtitle {
  color: var(--color-primary);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .18rem;
}

body.theme-felix-arba .site-contact-card {
  min-height: 0;
  border: .01rem solid var(--color-border);
  border-radius: var(--radius);
  background: #f5f7f2;
}

body.theme-felix-arba .site-nav {
  min-height: 0;
  border-top: .01rem solid var(--color-border);
  background: transparent;
}

body.theme-felix-arba .site-footer {
  border-top: .01rem solid var(--color-border);
  background: #101614;
  color: #f5f7f2;
}

body.theme-felix-arba .site-footer-card h2,
body.theme-felix-arba .site-footer-links a,
body.theme-felix-arba .site-footer-contact-row a,
body.theme-felix-arba .site-footer-payment p {
  color: #f5f7f2;
}

body.theme-felix-arba .site-footer-card,
body.theme-felix-arba .site-footer-contact-icon,
body.theme-felix-arba .site-footer-payment-badges span {
  border-color: rgba(245, 247, 242, .18);
}

body.theme-felix-arba .site-footer-card p,
body.theme-felix-arba .site-footer-summary p {
  color: rgba(245, 247, 242, .68);
}

a {
	text-decoration: none;
	color: var(--color-primary);
  text-underline-offset: 0.18em;
  transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

a:hover {
  color: var(--color-primary-dark);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  color: var(--clr-text);
  font-family: var(--font-heading);
  font-weight: 800;
  line-height: 1.08;
}

h1,
h2,
h3,
h4 {
  margin-bottom: 1rem;
}

h1 {
  font-size: var(--fs-900);
}

h2 {
  font-size: var(--fs-700);
}

h3 {
  font-size: var(--fs-600);
}

h4 {
  font-size: var(--fs-500);
}

p,
figure {
  margin: 0;
  color: var(--clr-text);
}

p {
  margin-bottom: 1rem;
  max-width: 68ch;
  font-size: var(--fs-350);
  line-height: 1.7;
}

:is(h1, h2, h3, h4, p):last-child {
  margin-bottom: 0;
}

.text-muted {
	color: var(--color-muted);
}

.block-badge,
.hero-eyebrow,
.image-text-eyebrow,
.gallery-eyebrow,
.menu-list-eyebrow,
.map-block-eyebrow,
.site-footer-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  width: fit-content;
  padding: .6rem 1.4rem;
  border: 0;
  border-radius: .4rem;
  background: var(--color-primary);
  color: #fff !important;
  font-size: .75rem;
  font-weight: 300;
  letter-spacing: .18rem;
  line-height: 1;
  text-transform: uppercase;
}

.block-badge i,
.hero-eyebrow i,
.image-text-eyebrow i,
.gallery-eyebrow i,
.menu-list-eyebrow i,
.map-block-eyebrow i,
.site-footer-eyebrow i {
  display: inline-grid;
  width: .95rem;
  min-width: .95rem;
  place-items: center;
  color: currentColor;
  font-size: .85rem;
  line-height: 1;
  margin-right: 0;
}

.section {
  padding-block: 3rem;
}

.block {
  position: relative;
  margin-bottom: 0;
}

.site-main > .block:not(.block-hero) {
  margin-block: 0;
  padding-block: clamp(2.5rem, 6vw, 6rem);
}

.site-main > .block:nth-of-type(odd):not(.block-hero) {
  --block-floating-bg: var(--color-block-odd);
  background: var(--color-block-odd);
}

.site-main > .block:nth-of-type(even):not(.block-hero) {
  --block-floating-bg: var(--color-block-even);
  background: var(--color-block-even);
}

.block__content {
  width: 100%;
}

.block-floating-link {
  position: absolute;
  top: 0;
  right: max(var(--section-padding-inline), calc((100vw - var(--container-max-width)) / 2 + var(--section-padding-inline)));
  z-index: 3;
  display: grid;
  width: clamp(4.05rem, 5.4vw, 5.625rem);
  aspect-ratio: 1;
  place-items: center;
  border-radius: 999px;
  background: var(--block-floating-bg, var(--color-background));
  box-shadow: 0 1.1rem 1.8rem rgba(16, 20, 25, .16);
  color: #273b55;
  transform: translateY(-50%);
}

.block-floating-link::before {
  content: "";
  display: block;
  width: 1.05rem;
  aspect-ratio: 1;
  border-top: .13rem solid currentColor;
  border-right: .13rem solid currentColor;
  transform: translateX(-.12rem) rotate(45deg);
}

.block-floating-link:hover {
  color: var(--color-primary);
  transform: translateY(calc(-50% - 2px));
}

.btn,
.button,
.submit {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3rem;
	padding: var(--button-padding);
	cursor: pointer;
	border-radius: var(--button-radius);
	border: .01rem solid transparent;
	background-color: var(--button-bg);
	color: var(--button-color) !important;
	font-size: var(--button-font-size);
	font-weight: var(--button-font-weight);
  line-height: 1;
  letter-spacing: var(--button-letter-spacing);
  text-align: center;
  text-decoration: none;
  text-transform: var(--button-text-transform);
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.btn::after,
.button::after,
.submit::after {
  content: "\f178";
  display: inline-block;
  width: auto;
  height: auto;
  border: 0;
  color: currentColor;
  font-family: "Font Awesome 6 Free";
  font-size: .9em;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  transform: none;
}

@media (width < 640px) {
  .btn,
  .button,
  .submit {
    width: 100%;
  }
}

.btn:hover,
.button:hover,
.submit:hover {
  background-color: var(--button-bg-hover);
  color: var(--button-color-hover) !important;
  transform: translateY(-1px);
}

.margin-block {
	margin-block: var(--margin-block);
}

.space-3,
.space-2,
.space-5 {
	display: block;
	max-width: 100%;
	height: .01rem;
}
	
.space-3 {
	height: 3rem;
}
	
.space-2 {
	height: 2rem;
}
	
.space-5 {
	height: 5rem;
}

.line,
.line-top {
	display: block;
	height: .1rem;
	max-width: 100%;
	border-top: .01rem solid var(--line);
	margin-block: 2rem;
}

.line:nth-child(1) {
	margin-block: unset;
	margin-top: 3rem;
	margin-bottom: 2rem;
}

.hidden {
    display: none;
}
.frontend-debug-panel {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  margin-block: 1rem;
  padding: .75rem 1rem;
  border: .01rem solid var(--line);
  border-radius: var(--radius);
  background: var(--color-surface);
  color: var(--clr-text);
  font-size: var(--fs-300);
}

.frontend-debug-panel strong {
  color: var(--color-primary-dark);
}

.block-debug-badge {
  display: grid;
  gap: 2px;
  position: absolute;
  top: 0;
  left: 0;
  background: rgba(0,0,0,0.8);
  color: #fff;
  font-size: 10px;
  padding: 4px 6px;
  z-index: 9999;
  border-radius: 0 0 4px 0;
}

.block-debug-badge a {
  color: #fff;
  text-decoration: underline;
}

.field-debug {
  font-size: 10px;
  color: red;
  margin-left: 6px;
}

.block__image {
  position: relative;
}

.block__image > .field-debug {
  position: absolute;
  top: .5rem;
  right: .5rem;
  margin-left: 0;
}

.nav {
    width: min(100%, 1600px);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0;
    align-items: stretch;
    text-align: center;
    font-weight: 300;
    list-style-type: none;
    margin: 0;
    padding-block: 0;
    padding-inline: var(--section-padding-inline);
    background: #e9e7e5;

    .nav-item {
        flex: 1 1 10rem;
        position: relative;

        a {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 1.05rem;
            min-height: 3rem;
            width: 100%;
            height: 100%;
            padding: 1.05rem 1rem;
            border: 0;
            border-left: .01rem solid rgba(255,255,255,.18);
            border-radius: 0;
            /* background: #d3cbc2; */
            color: #273b55;
            text-decoration: none;
            text-transform: uppercase;
            font-size: 1.1rem;
            font-weight: 300;
            letter-spacing: .1rem;
          
            transition: color 0.2s ease, transform 0.2s ease;
          
            &::after {
              content: none;
            }
          
            &:hover::after {
              transform: none;
            }

            &:hover {
              background: #000;
              color: #fff;
            }
        }

        .nav-children {
            display: none;
            position: absolute;
            top: 100%;
            left: 0;
            list-style-type: none;
            text-align: left;
            background-color: var(--dirtywhite);

            &.active > a {
                font-weight: 400;
    
                &::after {
                    transform: scaleX(1);
                }
    
                &:hover::after {
                    /* display: none; */
                }
            }
        }
          
        &:hover .nav-children {
            display: block;
        }

        &.active > a {
            font-weight: 400;
            background: var(--color-background);
            color: var(--color-primary-dark);

            &::after {
                transform: none;
            }

            &:hover::after {
                /* display: none; */
            }
        }
    }
}

.site-nav-toggle {
    display: none;
}

.nav-mobile-contact {
    display: none;
}

.nav-language-item {
    flex: 0 1 7rem;
}

.nav .nav-item a i,
.nav-language-dropdown summary i {
    display: inline-grid;
    width: 1.1rem;
    min-width: 1.1rem;
    place-items: center;
    color: var(--color-primary);
    font-size: 1.28rem;
    line-height: 1;
}

.nav-language-dropdown {
    position: relative;
    height: 100%;
}

.nav-language-dropdown summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.05rem;
    min-height: 3rem;
    width: 100%;
    height: 100%;
    padding: 1.05rem 1rem;
    border: 0;
    border-left: .01rem solid rgba(255,255,255,.18);
    border-radius: 0;
    /* background: #d3cbc2; */
    color: #273b55;
    cursor: pointer;
    font-size: 1.1rem;
    font-weight: 300;
    letter-spacing: .1rem;
    line-height: 1;
    list-style: none;
}

.nav-language-dropdown summary:hover {
    background: #000;
    color: #fff;
}

.nav-language-dropdown summary::-webkit-details-marker {
    display: none;
}

.nav-language-dropdown summary::after {
    content: "";
    width: .45rem;
    height: .45rem;
    margin-left: .45rem;
    border-right: .1rem solid currentColor;
    border-bottom: .1rem solid currentColor;
    transform: translateY(-.12rem) rotate(45deg);
}

.nav-language-menu {
    position: absolute;
    top: calc(100% + .45rem);
    right: 0;
    z-index: 30;
    display: grid;
    min-width: 7rem;
    overflow: hidden;
    border: .01rem solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    box-shadow: 0 1rem 2rem rgba(38, 50, 58, .12);
}

.nav-language-menu a,
.nav-language-menu strong,
.nav-language-menu span {
    display: block;
    padding: .75rem 1rem;
    color: var(--color-text);
    font-size: var(--fs-300);
    font-weight: 800;
    text-align: center;
}

.nav-language-menu strong {
    background: color-mix(in srgb, var(--color-primary) 14%, var(--color-surface) 86%);
}

.footer-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  align-items: center;
}

.footer-legal-links a,
.footer-legal-links button {
  border: 0;
  background: transparent;
  color: var(--color-muted);
  cursor: pointer;
  font: inherit;
  font-size: var(--fs-300);
  padding: 0;
}

.block-menu-item-detail .block__content {
  padding-block: clamp(1.5rem, 4vw, 3rem) 0;
}

.menu-item-detail-photo {
  overflow: hidden;
  width: min(100%, 12rem);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .42);
  cursor: zoom-in;
}

.menu-item-detail-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: saturate(.92) contrast(.98);
}

body[class*="theme-riva-"] .nav {
    gap: 0;
    font-size: var(--fs-300);
    font-weight: 400;
}

body[class*="theme-riva-"] .nav .nav-item a {
    padding: 1.05rem .65rem;
    color: #273b55;
    font-size: 1.1rem;
    font-weight: 300;
    letter-spacing: .1rem;
}

body[class*="theme-riva-"] .nav .nav-item a:hover {
    color: #fff;
}

body[class*="theme-riva-"] .nav .nav-item a::after {
    content: none;
}

body.theme-riva-classic .nav {
    gap: .3rem .8rem;
}

body.theme-riva-classic .nav .nav-item a {
    letter-spacing: .1rem;
}

body[class*="theme-riva-"] .site-brand {
    color: var(--color-text);
    font-weight: 800;
}

body[class*="theme-riva-"] .header-language-switcher {
    flex: 0 0 auto;
}

@media (width <= 1100px) {
    .site-header-top {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .site-header-contact {
        display: none;
    }

    .site-nav {
        min-height: 0;
        display: grid;
        align-items: stretch;
        justify-content: stretch;
    }

    .site-nav-toggle {
        display: flex;
        width: 4rem;
        height: 4rem;
        align-items: center;
        justify-content: center;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: var(--color-primary-dark);
        cursor: pointer;
        font: inherit;
    }

    .site-nav-toggle-icon,
    .site-nav-toggle-icon::before,
    .site-nav-toggle-icon::after {
        display: block;
        width: 2rem;
        height: .12rem;
        background: currentColor;
        transition: transform 180ms ease, opacity 180ms ease;
    }

    .site-nav-toggle-icon {
        position: relative;
    }

    .site-nav-toggle-icon::before,
    .site-nav-toggle-icon::after {
        content: "";
        position: absolute;
        left: 0;
    }

    .site-nav-toggle-icon::before {
        top: -.55rem;
    }

    .site-nav-toggle-icon::after {
        top: .55rem;
    }

    .site-header.is-open .site-nav-toggle-icon {
        background: transparent;
    }

    .site-header.is-open .site-nav-toggle-icon::before {
        transform: translateY(.55rem) rotate(45deg);
    }

    .site-header.is-open .site-nav-toggle-icon::after {
        transform: translateY(-.55rem) rotate(-45deg);
    }

    .nav {
        display: none;
        width: min(100%, 1600px);
        margin-inline: auto;
        padding-inline: var(--section-padding-inline);
    }

    .site-header.is-open .nav {
        display: grid;
    }

    .nav .nav-item,
    .nav-language-item {
        flex: none;
        width: 100%;
    }

    .nav .nav-item a,
    .nav-language-dropdown summary {
        min-height: 4rem;
        justify-content: flex-start;
        padding-inline: 0;
        border-left: 0;
        border-top: .01rem solid rgba(16, 20, 25, .12);
        text-align: left;
    }

    .nav .nav-item a:hover,
    .nav-language-dropdown summary:hover {
        padding-inline: 1rem;
    }

    .nav-language-dropdown {
        height: auto;
    }

    .nav-language-menu {
        position: static;
        min-width: 100%;
        border-radius: 0;
        box-shadow: none;
    }

    .nav-mobile-contact {
        display: grid;
        gap: 0;
        border-top: .01rem solid rgba(16, 20, 25, .12);
    }

    .nav-mobile-contact a {
        gap: .75rem;
        border-top: 0;
        min-height: 3.6rem;
        text-transform: none;
    }
}

.news-listing,
.news-post {
  margin-block: 4rem 6rem;
}

.news-header,
.news-post-header {
  max-width: 52rem;
  margin-bottom: 2rem;
}

.news-eyebrow {
  margin-bottom: .5rem;
  color: var(--clr-primary-300);
  font-size: var(--fs-300);
  font-weight: 800;
  letter-spacing: .07rem;
  text-transform: uppercase;
}

.news-header h1,
.news-post-header h1 {
  font-size: var(--fs-800);
  font-weight: 300;
  line-height: 1.05;
}

.news-translation-notice {
  margin-bottom: 1.25rem;
  padding: .85rem 1rem;
  border: .01rem solid var(--line);
  border-radius: var(--radius);
  background: color-mix(in srgb, white 88%, var(--clr-primary-100, #d7efe7) 12%);
  color: var(--clr-text);
  font-size: var(--fs-300);
}

.news-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
}

.news-card {
  display: grid;
  overflow: hidden;
  border: .01rem solid var(--line);
  border-radius: var(--radius);
  background: white;
}

.news-card-image {
  display: block;
  overflow: hidden;
}

.news-card-image img,
.news-post-image {
  display: block;
  width: 100%;
  object-fit: cover;
}

.news-card-image img {
  aspect-ratio: 5 / 3;
  transition: transform .25s ease;
}

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

.news-card-content {
  display: grid;
  gap: .75rem;
  padding: 1.25rem;
}

.news-card h2 {
  font-size: var(--fs-500);
  font-weight: 400;
  line-height: 1.2;
}

.news-card h2 a {
  color: var(--clr-text);
}

.news-date {
  color: gray;
  font-size: var(--fs-300);
}

.news-read-more {
  width: fit-content;
  margin-top: .5rem;
  color: var(--clr-primary-300);
  font-weight: 400;
}

.news-read-more::after {
  content: " →";
}

.news-post-image {
  max-height: 42rem;
  margin-bottom: 2rem;
  border-radius: var(--radius);
}

.news-lead {
  margin-top: 1rem;
  font-size: var(--fs-400);
  font-weight: 400;
}

.news-post-content {
  max-width: 52rem;
}

.news-post-content > * + * {
  margin-top: 1rem;
}

.news-post-content h2,
.news-post-content h3 {
  margin-top: 2rem;
  font-weight: 400;
  line-height: 1.2;
}

.news-post-content ul,
.news-post-content ol {
  padding-left: 1.25rem;
}

.news-post-footer {
  margin-top: 3rem;
}

.news-post-footer .btn {
  margin-left: 0;
}

.flash {
  margin-block: 1rem;
  padding: 1rem;
  border: .01rem solid var(--line);
  border-radius: var(--radius);
  background: white;
}

.flash-notice {
  border-color: var(--clr-accent2-300);
}

.flash-alert {
  border-color: var(--clr-accent-400);
}

.footer-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
}

.footer-legal-links a,
.footer-legal-links button {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-decoration: underline;
}

.cookie-consent {
  position: fixed;
  inset: auto 1rem 1rem;
  z-index: 9998;
}

.cookie-consent-banner {
  background: white;
  border: .01rem solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, .18);
  display: grid;
  gap: 1rem;
  margin-inline: auto;
  max-width: 64rem;
  padding: 1rem;
}

.cookie-consent-copy {
  display: grid;
  gap: .35rem;
}

.cookie-consent-copy p {
  margin: 0;
}

.cookie-consent-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.cookie-consent-actions .btn {
  margin: 0;
}

.cookie-consent-panel {
  border-top: .01rem solid var(--line);
  display: grid;
  gap: .7rem;
  padding-top: 1rem;
}

.cookie-consent-panel label {
  align-items: center;
  display: flex;
  gap: .55rem;
}

.legal-page {
  margin-block: 4rem;
}

.legal-page-header {
  display: grid;
  gap: .75rem;
  max-width: 54rem;
  margin-bottom: 2rem;
}

.legal-page-eyebrow {
  color: var(--clr-primary-300);
  font-size: var(--fs-300);
  font-weight: 800;
  letter-spacing: .07rem;
  text-transform: uppercase;
}

.legal-page-header h1 {
  font-size: var(--fs-700);
  font-weight: 300;
  line-height: 1.1;
}

.legal-page-content {
  display: grid;
  gap: 1rem;
  max-width: 58rem;
}

.legal-page-content section {
  border-top: .01rem solid var(--line);
  display: grid;
  gap: .45rem;
  padding-top: 1rem;
}

.legal-page-content h2 {
  font-size: var(--fs-500);
  font-weight: 400;
}

.legal-page-content p {
  margin: 0;
/* DO NOT import styles from other layer (admin/frontend). */
/*


 */
