@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/source-sans-3-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/source-sans-3-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/source-sans-3-800.woff2') format('woff2');
}

:root {
    color-scheme: light;
    /* Color palette */
    ---hue: 81;
    ---saturation: 10%;
    --bakar-primary: hsl(var(---hue) var(---saturation)  70%);
    --bakar-light:   hsl(var(---hue) var(---saturation)  90%);
    --bakar-mid:     hsl(var(---hue) var(---saturation)  80%);
    --bakar-dark:    hsl(var(---hue) var(---saturation)  30%);
    --bakar-darker:  hsl(var(---hue) var(---saturation)  20%);
    --bakar-darkest: hsl(var(---hue) var(---saturation)  10%);
    --bakar-secondary: #ded9d4;

    --link-color: var(--bakar-dark);
    --link-hover-color: var(--bakar-darker);


    --cassiopeia-color-primary: var(--bakar-dark);
    --cassiopeia-color-hover: var(--bakar-darker);
    --cassiopeia-color-link: var(--bakar-primary);

    --navbar-color: var(--bakar-light);

    --cassiopeia-font-family-body: 'Source Sans 3', sans-serif;
    --cassiopeia-font-family-headings: 'Source Sans 3', sans-serif;
    --cassiopeia-font-weight-normal: 400;
    --cassiopeia-font-weight-headings: 700;

    --page-max-width: 1000px;
    --text-column-max-width: 600px;
    --navbar-min-height: 85px;
}
*:focus:not(:focus-visible) {
    outline: none;
    box-shadow: none;
}
a, a:not([class]) {
    text-decoration: none;
    font-weight: 700;
}
.has-dark-background {
    color: var(--bakar-light);
}
.has-dark-background a {
    color: var(--bakar-mid);
}
.has-dark-background a:hover {
    color: #FFFFFF;
}
.com-content-article{
  padding: 1rem 0;
  max-width: var(--text-column-max-width);
  margin: 0 auto;
}
.spaced-vertically {
    padding: 2rem 0;
}
.container-banner {
    margin: 0;
}
.header {
    background-image: none;
    font-weight: 700;
    text-transform: uppercase;
}
.logo {
    height: 40px;
}
.constrained {
    max-width: calc(var(--page-max-width) + 2rem);
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
}
.constrained-text-column {
    max-width: calc(var(--text-column-max-width) + 2rem);
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.site-grid {
    grid-gap: 0 1rem;
    grid-template-columns:
        [full-start] minmax(0, 1fr)
        [main-start] repeat(4, minmax(0, calc((var(--page-max-width) - 3rem) / 4)))
        [main-end] minmax(0, 1fr)
        [full-end];
}
.footer {
    margin-top: 0;
    background-color: var(--bakar-dark); /* Replace with your Bäkar brand color */
    background-image: none;
    overflow: hidden;
    position: relative;
    min-height: 500px;
    display: flex;
}
.footer::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--bakar-darker); /* NOW YOU CONTROL THE PATTERN COLOR! */
    mask-image: url("../images/background.svg");
    mask-size: 200px;
    mask-repeat: repeat;
    opacity: 0.2;
    z-index: 0;
}
header {
    background-color: #FFFFFF;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.header-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    min-height: var(--navbar-min-height);
}

/* NAVBAR */
/* — Base — */
.navbar {
    display: flex;
    justify-content: flex-end;
    padding: 0;
}
.bakar-nav-toggle {
    color: var(--bakar-dark);
    border: none;
    background: none;
    padding: 0 10px;
    min-height: var(--navbar-min-height);
}
.bakar-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 22px;
    height: 16px;
}
.bakar-hamburger__line-top,
.bakar-hamburger__line-middle,
.bakar-hamburger__line-bottom {
    display: block;
    width: 100%;
    height: 2px;
    background-color: currentColor;
    transition: transform 0.3s, opacity 0.3s;
    transform-origin: center;
}
/* Hamburger → X (√2 compensates for apparent shortening at 45°) */
.bakar-nav-toggle[aria-expanded="true"] .bakar-hamburger__line-top {
    transform: translateY(7px) rotate(45deg) scaleX(sqrt(2));
}
.bakar-nav-toggle[aria-expanded="true"] .bakar-hamburger__line-middle {
    opacity: 0;
}
.bakar-nav-toggle[aria-expanded="true"] .bakar-hamburger__line-bottom {
    transform: translateY(-7px) rotate(-45deg) scaleX(sqrt(2));
}
ul.mod-menu a {
    display: inline-block;
    padding: 10px;
    text-decoration: none;
    color: var(--bakar-primary);
    transition: 0.2s ease-in-out;
}
ul.mod-menu a:hover, ul.mod-menu li.active > a {
    text-decoration: none;
    color: var(--bakar-dark);
}
.mod-list li {
    padding: 0;
}
.mod-menu__sub a {
    width: 100%;
    display: block;
    padding: 0.4rem 1rem;
    color: var(--bakar-dark);
}
.mod-menu__sub a:hover {
    color: var(--bakar-darker);
    background: var(--bakar-light);
}
.menu-icon {
    height: 25px;
    width: auto;
    vertical-align: middle;
    margin: -5px 5px -5px 0;
}
/* — Desktop (≥768px) — */
@media (min-width: 768px) {
    .bakar-nav-toggle {
        display: none;
    }
    .navbar-collapse ul.mod-menu {
        flex-direction: row;
        gap: 5px;
        padding: 0;
    }
    .mod-menu__toggle-sub {
        display: none;
    }
    ul.mod-menu a.menu-item-special {
        background-color: var(--bakar-darker);
    }
    ul.mod-menu a.menu-item-special:hover,
    ul.mod-menu li.active > a.menu-item-special {
        color: #FFFFFF;
        background-color: var(--bakar-darkest);
    }
    .nav-item.deeper:hover > .mod-menu__sub {
        display: block;
    }
    .nav-item.deeper {
        position: relative;
    }
    .mod-list li .mod-menu__sub {
        position: absolute;
        top: 100%;
        margin: 0;
        padding: 0;
        background: white;
        min-width: 175px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    }
}
/* — Mobile (<768px) — */
@media (max-width: 767px) {
    .navbar {
        width: 100%;
        flex: none;
    }
    .navbar-collapse ul.mod-menu {
        flex-direction: column;
        align-items: center;
        padding: 1rem 0;
    }
    .navbar-collapse ul.mod-menu a {
        text-align: center;
    }
    .nav-item.deeper {
        position: relative;
        display: grid;
        width: 100%;
        align-self: stretch;
        grid-template-columns: 1fr auto 1fr;
        grid-template-rows: auto auto;
        align-items: center;
    }
    .nav-item.deeper > a {
        grid-column: 2;
        grid-row: 1;
    }
    .mod-menu__toggle-sub {
        display: inline-flex;
        grid-column: 3;
        grid-row: 1;
        justify-self: start;
    }
    .mod-list li .mod-menu__sub {
        display: block;
        grid-column: 1 / -1;
        grid-row: 2;
        position: static;
        box-shadow: none;
        padding: 0;
        width: 100%;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.5s ease-in-out;
    }
    /* max-height must exceed actual content — bump up if items are added */
    .mod-list li .mod-menu__sub.show-menu {
        max-height: 500px;
        min-width: 0;
    }
    .mod-menu__sub a {
        text-align: center;
        padding: 0.4rem 1rem;
    }
}
.hero {
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    color: white;
}
.hero--100 {
    height: calc(100vh - var(--navbar-min-height));
}
.hero--50 {
    height: calc(50vh - var(--navbar-min-height));
}
.hero-media {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}
.hero-asset {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
}
.hero-content {
    position: relative;
    z-index: 2; /* Sits above the media and overlay */
    text-align: center;
    max-width: 700px;
    padding: 0 1rem;
    filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.5));
}
.hero-map {
    height: calc(75vh - var(--navbar-min-height));
}
/* Hero floating single image */
img.hero-floating-single  {
  --image_gap: 4rem;
  display: block;
  width: 100%;
  max-width: min(600px, calc(100% - 2 * var(--image_gap)));
  margin: var(--image_gap) auto;
}

.footer .grid-child {
    align-items: start;
    justify-content: start;
    padding: 2rem 1rem;
    gap: 1rem;
    z-index: 1;
}
.footer .grid-child > div {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0px;
}
.closing {
    width: 100%;
    padding: 8px 0;
    text-align: center;
    font-size: 0.8rem;
    /* color: var(--bakar-light); */
    background-color: var(--bakar-darker);
}

/* BUTTONS */
.btn-bakar-group {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  padding: 20px;
}

.btn-bakar {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem;
  font-size: 1rem;
  color: #000000;
  font-weight: 700;
  text-transform: uppercase;
  border: 1px solid #000000;
  transition: background-color 0.2s ease-in-out;
}
.btn-bakar:hover {
  background-color: rgba(0, 0, 0, 0.05);
  color: #000000;
}
[class*="btn-bakar--icon-"]::before {
  --icon-radius: 0.75rem;
  content: '';
  display: inline-block;
  width: calc(var(--icon-radius) * 2);
  height: calc(var(--icon-radius) * 2);
  vertical-align: middle;
  margin: calc(-1 * var(--icon-radius)) 0.5rem calc(-1 * var(--icon-radius)) 0;
  background: no-repeat center / contain;
}
.btn-bakar--icon-booking {
  background-color: #003580;
  border-color: #003580;
  color: #FFFFFF;
}
.btn-bakar--icon-booking:hover {
  background-color: rgba(0, 53, 128, 0.8);
  color: #FFFFFF;
}
.btn-bakar--icon-booking::before {
  background-image: url('/images/misc/booking-icon-white.svg');
}
.btn-bakar--icon-pdf {
  background-color: #eb5757;
  border-color: #eb5757;
  color: #FFFFFF;
}
.btn-bakar--icon-pdf:hover {
  background-color: rgba(235, 87, 87, 0.85);
  color: #FFFFFF;
}
.btn-bakar--icon-pdf::before {
  background-image: url('/images/misc/pdf-icon-white.svg');
}
.btn-bakar--icon-instagram {
  background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
  border-color: #dc2743;
  color: #FFFFFF;
}
.btn-bakar--icon-instagram:hover {
  opacity: 0.85;
  color: #FFFFFF;
}
.btn-bakar--icon-instagram::before {
  background-image: url('/images/misc/instagram-icon-white.svg');
}
.btn-bakar--icon-airbnb {
  background-color: #FF5A5F;
  border-color: #FF5A5F;
  color: #FFFFFF;
}
.btn-bakar--icon-airbnb:hover {
  background-color: rgba(255, 90, 95, 0.8);
  color: #FFFFFF;
}
.btn-bakar--icon-airbnb::before {
  background-image: url('/images/misc/airbnb_icon_white.svg');
}
.btn-bakar--icon-maps {
  background-color: #0F9D58;
  border-color: #0F9D58;
  color: #FFFFFF;
}
.btn-bakar--icon-maps:hover {
  background-color: rgba(15, 157, 88, 0.85);
  color: #FFFFFF;
}
.btn-bakar--icon-maps::before {
  background-image: url('/images/misc/maps-icon-white.svg');
}

/* MAP-SPECIFICS */
.maplibregl-popup a:focus {
  outline: none;
  box-shadow: none;
}
/* Overlay to stay below menu */
.maplibregl-cooperative-gesture-screen {
  z-index: 1019 !important;
}

/* SERVIZI IN EVIDENZA */
.servizi-evidenza {
  background-color: var(--bakar-secondary);
  padding: 2rem 0;
}
.servizi-evidenza__inner {
  display: flex;
  flex-direction: column;
  column-gap: 1rem;
  row-gap: 5rem;
}
.servizio-item {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.5rem;
  font-size: 1rem;
  color: var(--bakar-darker);
}
.servizio-item h3 {
  margin: 0;
}
.servizio-item .fa-solid {
  font-size: 2rem;
  color: var(--bakar-dark);
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .servizi-evidenza__inner {
    flex-direction: row;
  }
}

/* CAMERE CARDS */
.camere-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .camere-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.camera-card {
  border: 1px solid var(--bakar-secondary);
  overflow: hidden;
}
.camera-card__carousel {
  position: relative;
  overflow: hidden;
}
.camera-card__track {
  display: flex;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.camera-card__track::-webkit-scrollbar {
  display: none;
}
.camera-card__slide {
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  scroll-snap-align: start;
  display: block;
}
.camera-card__zone {
  position: absolute;
  top: 0;
  height: 100%;
  width: 50%;
  background: none;
  border: none;
  cursor: pointer;
}
.camera-card__zone--prev { left: 0; }
.camera-card__zone--next { right: 0; }
.camera-card__dots {
  position: absolute;
  bottom: 1rem;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 5px;
  pointer-events: none;
}
.camera-card__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transition: background 0.2s;
}
.camera-card__dot--active {
  background: #fff;
}
.camera-card__body {
  padding: 1rem;
}
.camera-card__type {
  font-size: 0.7rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--bakar-dark);
  margin-bottom: 0.25rem;
}
.camera-card__name {
  font-size: 1.25rem;
  margin: 0 0 0.35rem;
}
.camera-card__desc {
  font-size: 0.875rem;
  color: #666;
  margin: 0 0 1rem;
  line-height: 1.5;
}
.camera-card__footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}


