@charset "UTF-8";
/*!
* Ravintola Ehtoo Custom CSS
 * V. 2202025 08:36.
 */

/*! 64a19d => 4B413A
72645B => 72645B

*/

:root {
  --bs-primary: #72645B;
  --bs-secondary: #8F7E6E;
  --bs-success: #67c29c;
  --bs-info: #1cabc4;
  --bs-warning: #e4c662;
  --bs-danger: #a16468;
  --bs-light: #F7F3EC;
  --bs-dark: #212529;
  --bs-black: #000;
  --bs-white: #fff;
  --bs-link-hover-color: #72645B;
  --bs-code-color: #d63384;
  --bs-highlight-bg: #faf4e0;
	--bs-link-color: #4B413A;
  --bs-link-hover-color: #72645B;
}

.btn-primary {
  --bs-btn-bg: #72645B;
  --bs-btn-border-color: #4B413A;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #B7A08B;
  --bs-btn-hover-border-color: #72645B;
  --bs-btn-focus-shadow-rgb: 123, 175, 172;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #72645B;
  --bs-btn-active-border-color: #4b7976;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #4B413A;
  --bs-btn-disabled-border-color: #4B413A;
}

.btn-secondary {
  --bs-btn-bg: var(--bs-secondary);
  --bs-btn-border-color: #7464a1;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #B7A08B;
  --bs-btn-hover-border-color: #5d5081;
  --bs-btn-focus-shadow-rgb: 137, 123, 175;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #5d5081;
  --bs-btn-active-border-color: #574b79;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #7464a1;
  --bs-btn-disabled-border-color: #7464a1;
}

@font-face {
  font-family: 'Gambler';
  src: url('../fonts/gambler-scr/gamblerscr-bold-webfont.woff2') format('woff2'),
       url('../fonts/gambler-scr/gamblerscr-bold-webfont.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Libre Baskerville';
  src: url('../fonts/libre-baskerville/LibreBaskerville-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Libre Baskerville';
  src: url('../fonts/libre-baskerville/LibreBaskerville-Italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Libre Baskerville';
  src: url('../fonts/libre-baskerville/LibreBaskerville-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Mono';
  src: url('../fonts/roboto-mono/RobotoMono-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Mono';
  src: url('../fonts/roboto-mono/RobotoMono-Italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Mono';
  src: url('../fonts/roboto-mono/RobotoMono-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Roboto Mono';
  src: url('../fonts/roboto-mono/RobotoMono-BoldItalic.woff2') format('woff2');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

.gambler  {font-family: 'Gambler', serif !important;
	letter-spacing: normal !important;
				 font-size: 3rem;}	  
.text-primary {
  color: #72645B !important;
}

.booking-widget-2{
    height: 80vh !important;
 	background-color: #000fff;
}

#booking-widget-2{
    height: 80vh !important;
 	background-color: #000fff;
}

/* Alternating bg-color START */  
.bg-x:nth-of-type(odd) {
background-color: #ffffff !important;
}
	
	
.bg-x:nth-of-type(even) {
background-color: #f7f3ec !important;
}
/* Alternating bg-color END */

section {
  padding: 4rem 0px;
}

.featured-text {
  padding: 0px 1.5rem 1.5rem 1.5rem;
	font-size: 1.4rem;
}

.about-text {
  padding: 2rem;
}

.project-text {
  padding: 3rem;
  font-size: 90%;
}

@media (min-width: 992px) {
  .featured-text  {
    padding: 5rem;
  }
  
  .project-text hr {
    border-color: #4B413A;
    border-width: 0.25rem;
    width: 30%;
  }
}

ul.list-social {
  margin-bottom: 0;
}
 ul.list-social li a {
  font-size: 25px;
  line-height: 50px;
  display: block;
  width: 50px;
  height: 50px;
  color: #4B413A;
  border-radius: 100%;
  background-color: transparent;
}

h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
  font-family: 'Libre Baskerville', serif;
	line-height: 2;
}

.masthead h1, .masthead .h1 {
	color: #000 !important;
  font-family: 'Gambler', serif !important;
	letter-spacing: normal !important;
  font-size: 8rem !important;
	  text-shadow: 2px 2px #000;
		line-height: 1.5;
}

.masthead h2, .masthead .h2 {
  max-width: 50rem;
  font-size: 1rem;
		line-height: 1.5;
	color: #fff;
}

.bg-header {
background-position: top;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover !important;
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 35rem;
  padding: 15rem 0;
}

.bg-special-del {
	 background: linear-gradient(to bottom, rgba(247, 243, 236, 0.7) 20%, rgba(100, 100, 100, 0.7) 100%, #fff 100%), url("../img/bg/bg-special.jpg");
	background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
}


.bg-xmas-del {
   background-color: black;
  opacity: 0.5;
	background: linear-gradient(to bottom, rgba(247, 243, 236, 0.7) 20%, rgba(255, 255, 255, 0.7) 100%, #fff 100%), url("../img/bg/bg-pikkujoulut.jpg");
	background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
}

.bg-history-del {
  background: linear-gradient(to bottom, rgba(247, 243, 236, 0.7) 20%, rgba(100, 100, 100, 0.7) 100%, #fff 100%), url("../img/historia-rautalampi-pitkalahti.jpg");
		background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
}

.bg-accomodation-del {
  background: linear-gradient(to bottom, rgba(100, 100, 100, 0.1) 20%, rgba(100, 100, 100, 0.3) 100%), url("../img/airbnb-majoitus-rautalampi.jpg");
		background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
}

.bg-food-del {
  background: linear-gradient(to bottom, rgba(100, 100, 100, 0.1) 20%, rgba(100, 100, 100, 0.3) 100%), url("../img/bg/bg-menu.jpg");
		background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
}

p {
  margin-top: 0;
  margin-bottom: 2rem;
  line-height:1.6rem;
}

.footer {
  padding: 2rem 2rem 1rem 2rem !important;
background-color: #c9c6c2 !important;
}

.nav-link {
    color: #000 !important;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

.nav-link:hover, .nav-link:focus {
  color: #72645B !important;
}

.map {
  height: 30rem;
}
.map iframe {
  pointer-events: none;
  height: 100%;
  width: 100%;
  border: 0;
}
					 
  #mainNav.navbar-shrink {
    box-shadow: 0px 8px 8px -6px rgba(0,0,0,.5);
	  z-index: 1;
    }
		 
     .navbar-btn {
    border-color: #fff000 !important;
    text-transform: uppercase;
		 background-color: transparent;
    font-weight: 700;
    color: #fff;
		 border: 4px !important;
    padding: 6px 12px !important;
    margin: 0px 0px 0px 10px;
}
.navbar-btn:hover {
    color: #FFF;
    background-color: #8F7E6E !important;
    border-color: #2E6DA4 !important;
}			 
				 
.navbar.second-navbar {
  margin-top: 54px !important;
  z-index:1;
}
			 
.navbar.bg-dark {
  background-color: #4B413A !important;
}

.navbar-dark {
  --bs-navbar-color: #fff;	
}

.yhteystiedot-section {
  padding: 10rem 0;
  background: linear-gradient(to bottom, rgba(247, 243, 236, 0.0) 20%, rgba(255, 255, 255, 1.0)), url("../img/malisentalo.jpg")!important;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: cover;
}	 

	 .bg-beige {
    background-color: #F8F3EC;
}
				 
			   .image-wrapper {
      position: relative;
      width: 100%;
      height: 100%;
    }

    .image-wrapper img {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .row-no-gutters {
      margin-right: 0;
      margin-left: 0;
    }
			 
			 /* Mobiilissa palautetaan kuvan luonnollinen mittasuhde */
    @media (max-width: 767.98px) {
      .image-wrapper {
        position: relative;
        height: auto;
        aspect-ratio: 16 / 9; /* Voit säätää tätä kuvasuhdetta */
      }

      .image-wrapper img {
        position: static;
        height: auto;
        object-fit: contain;
      }
    }

@media (max-width: 992px) {
  .map {
    height: 600px;
  }
}

@media (max-width: 992px) {
  .masthead h1, .masthead .h1 {
    font-size: clamp(2.8rem, 12vw, 6rem) !important;
    line-height: 1.2;
    font-family: 'Gambler', serif !important;
    letter-spacing: normal !important;
    color: #000 !important;
    text-shadow: 2px 2px #000;
    padding-left: 10%;
    padding-right: 10%;
  }
}

@media (max-width: 991px) {
  .dropdown-menu .dropdown-item {
    padding-left: 15px;
  }
}

/* Hero layered gradient for exact end color at bottom */
.image-header {
  position: relative;
  overflow: hidden;
  background-color: var(--hero-end-color, transparent);
}

.image-header__image,
.image-header__overlay,
.image-header__fade {
  position: absolute;
  inset: 0;
}

.image-header__image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
}

.image-header__overlay {
  z-index: 1;
}

.image-header__fade {
  z-index: 2;
  inset: auto 0 0 0;
  height: 180px;
  pointer-events: none;
}

.image-header > .container,
.image-header > .container-fluid {
  position: relative;
  z-index: 3;
}

/* Home hero */
.home-hero__logo {
  width: min(38vw, 320px);
  aspect-ratio: 1 / 1;
  object-fit: cover;
  position: relative;
  z-index: 3;
}

.image-header video.image-header__image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  position: absolute;
  inset: 0;
}

/* Footer centering */
.footer .row > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

/* Home hero */
.home-hero__logo {
  width: min(38vw, 320px);
  aspect-ratio: 1 / 1;
  object-fit: contain;
  position: relative;
  z-index: 3;
}

/* Footer static image */
.footer-image {
  width: 61px;
  height: 20px;
  object-fit: contain;
}

.layout-section {
  margin-left: 0 !important;
  margin-right: 0 !important;
}


.menu-block {
  max-width: 800px;
  margin: 0 auto;
}

.menu-category {
  margin-bottom: 2rem;
}

.menu-category h3 {
  margin-bottom: 1rem;
  font-size: 1.5rem;
}

.menu-item {
  margin-bottom: 1rem;
}

.menu-row {
  display: flex;
  justify-content: space-between;
  font-weight: 400;
}

.meta {
  font-size: 0.85rem;
  opacity: 0.7;
}

.desc {
  font-size: 0.9rem;
}

/* --- Kirby mobile/header fixes --- */
:root {
  --topbar-height: 54px;
  --mainnav-height: 56px;
  --header-offset: calc(var(--topbar-height) + var(--mainnav-height));
}

body,
button,
input,
select,
textarea {
  font-family: 'Roboto Mono', monospace;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.0625em;
}

.topbar-nav {
  z-index: 1050;
}

.navbar.second-navbar {
  margin-top: 0 !important;
  top: var(--topbar-height) !important;
  z-index: 1040;
}

@media (max-width: 991.98px) {
  body {
    padding-top: var(--header-offset);
  }

  #mainNav,
  #mainNav.navbar-shrink,
  #navbarResponsive,
  #navbarResponsive .dropdown-menu {
    background-color: #fff !important;
  }

  #navbarResponsive {
    padding: 0.5rem 0 0.75rem;
  }

  #mainNav .navbar-brand,
  #mainNav .nav-link,
  #mainNav .dropdown-item,
  #mainNav .navbar-toggler {
    color: #72645B !important;
  }

  #navbarResponsive .dropdown-menu {
    position: static !important;
    float: none;
    transform: none !important;
    border: 0;
    box-shadow: none;
    margin-top: 0;
    padding-left: 1rem;
  }

  .masthead,
  .image-header {
    min-height: calc(100vh - var(--header-offset));
  }

  main.content-start-after-nav {
    padding-top: 1rem !important;
  }
}

/* --- Menu blocks --- */
.menu-block {
  max-width: 860px;
  margin: 0 auto;
}

.menu-category {
  margin-bottom: 2.5rem;
}

.menu-category:last-child {
  margin-bottom: 0;
}

.menu-category-title {
  margin-bottom: 1.25rem;
  text-align: center;
}

.menu-item {
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(75, 65, 58, 0.14);
}

.menu-item:last-child {
  border-bottom: 0;
}

.menu-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}

.menu-dish {
  font-weight: 700;
}

.menu-price {
  white-space: nowrap;
}

.menu-meta {
  display: flex;
  gap: 0.75rem;
  font-size: 0.85rem;
  opacity: 0.72;
  margin-top: 0.25rem;
}

.menu-description {
  margin-top: 0.35rem;
  font-size: 0.95rem;
  line-height: 1.55;
}


.menu-block {
  max-width: 700px;
  margin: 0 auto;
}

.menu-category {
  margin-bottom: 2.5rem;
}

.menu-title {
  font-size: 1.4rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #ccc;
  padding-bottom: 0.5rem;
}

.menu-item {
  margin-bottom: 1.2rem;
}

.menu-header {
  display: flex;
  justify-content: space-between;
  font-weight: 600;
}

.menu-dish {
  letter-spacing: 0.5px;
}

.menu-price {
  white-space: nowrap;
}

.menu-desc {
  font-size: 0.9rem;
  margin-top: 0.2rem;
  opacity: 0.8;
}

.menu-allergens {
  font-size: 0.8rem;
  margin-top: 0.2rem;
  opacity: 0.6;
}


/* --- block fixes 2026-04-16 --- */
.noticebox-block {
  width: 100%;
}

.noticebox-block .alert > *:last-child,
.noticebox-block .alert p:last-child {
  margin-bottom: 0;
}

.menu-content-block,
.kohdetiedot-block,
.project-rows-block {
  width: 100%;
}

.menu-content-inner {
  max-width: 980px;
  margin-inline: auto;
}

.menu-content-block .menu-item-title,
.menu-content-block .menu-item-price {
  line-height: 1.35;
}

.menu-content-block .menu-item-description {
  max-width: none;
}

.kohdetiedot-inner,
.project-rows-inner {
  max-width: 1120px;
  margin-inline: auto;
}

.kohdetiedot-row,
.project-row {
  --bs-gutter-x: 0;
}

.kohdetiedot-image-wrap,
.project-row-image-wrap {
  min-height: 320px;
  height: 100%;
  overflow: hidden;
}

.kohdetiedot-image,
.project-row-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}

.kohdetiedot-panel,
.project-row-panel {
  min-height: 100%;
}

.kohdetiedot-copy > *:last-child,
.project-row-copy > *:last-child {
  margin-bottom: 0;
}

.kohdetiedot-link,
.project-row-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  text-decoration: none;
  font-weight: 600;
  color: var(--kohdetiedot-link-color, inherit);
}

.kohdetiedot-link .bi,
.project-row-link .bi {
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  vertical-align: -0.125em;
}

@media (max-width: 991.98px) {
  .kohdetiedot-image-wrap,
  .project-row-image-wrap,
  .kohdetiedot-image,
  .project-row-image {
    min-height: 240px;
  }

  .kohdetiedot-panel,
  .project-row-panel {
    min-height: auto;
  }
}


/* --- kohdetiedot/image fixes 2026-04-16b --- */
.kohdetiedot-image-wrap,
.project-row-image-wrap {
  position: relative;
  min-height: 320px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.kohdetiedot-image,
.project-row-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kohdetiedot-image-placeholder {
  width: 100%;
  height: 100%;
  min-height: 320px;
  background: rgba(74, 66, 59, 0.08);
}

@media (max-width: 991.98px) {
  .kohdetiedot-image-wrap,
  .project-row-image-wrap {
    min-height: 240px;
    aspect-ratio: 16 / 10;
  }

  .kohdetiedot-image-placeholder {
    min-height: 240px;
  }
}

/* HERO video full cover */
.hero video {
  position: absolute;
  top:0; left:0;
  width:100%; height:100%;
  object-fit: cover;
}

/* Hero subtitle */
.hero-subtitle {
  color:#000;
  opacity:1;
  font-size:1.5rem;
  font-family: inherit;
}

/* Menu width + price */
.menu {
  max-width: 720px;
  margin: 0 auto;
}
.menu-item span {
  font-size:1rem;
}

/* Kohdetiedot centering */
.kohde-header {
  text-align:center;
}


/* --- fixes 2026-04-16c --- */
.masthead .page-hero-intro,
.masthead .page-hero-intro p {
  color: #000 !important;
  opacity: 1 !important;
  font-family: inherit !important;
  font-size: 1.2rem !important;
}

.masthead .page-hero-intro p:last-child {
  margin-bottom: 0;
}

.menu-content > .container {
  max-width: 620px !important;
}

.menu-content .menu-price,
.menu-content .menu-entry-price {
  font-size: 1rem !important;
}

@media (max-width: 991.98px) {
  body {
    padding-top: var(--header-offset) !important;
  }
}


/* --- mobile submenu visibility fix 2026-04-16d --- */
@media (max-width: 991.98px) {
  #navbarResponsive .dropdown {
    width: 100%;
  }

  #navbarResponsive .dropdown > .submenu-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.5rem 0;
    border: 0;
    background: transparent;
    text-align: left;
  }

  #navbarResponsive .dropdown > .submenu-toggle:focus {
    box-shadow: none;
    outline: none;
  }

  #navbarResponsive .dropdown-menu {
    display: none;
    width: 100%;
    min-width: 0;
  }

  #navbarResponsive .dropdown.show > .dropdown-menu,
  #navbarResponsive .dropdown-menu.show {
    display: block !important;
  }
}

/* --- download file block --- */
.block-download-file {
  width: 100%;
}

.block-download-file .row {
  --bs-gutter-y: 1.5rem;
}

.download-file-card {
  width: 100%;
  margin: 0;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  border: 1px solid rgba(74, 66, 59, 0.12);
  border-radius: 0.75rem;
  background: #f7f3ed;
  box-shadow: 0 0.5rem 1.5rem rgba(74, 66, 59, 0.06);
}

.download-file__image {
  overflow: hidden;
  background: rgba(74, 66, 59, 0.08);
  border-radius: 0.5rem;
}

.download-file__image picture {
  display: block;
  width: 100%;
  height: 100%;
}

.download-file__image-file {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.download-file__image-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  width: 100%;
  height: 100%;
  padding: 1rem;
  color: #72645B;
  font-size: clamp(2rem, 6vw, 3.5rem);
  text-align: center;
}

.download-file__image-fallback span {
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.download-file__title {
  margin-bottom: 0.75rem;
}

.download-file__copy > *:last-child,
.download-file__text > *:last-child {
  margin-bottom: 0;
}

.download-file__buttons {
  width: 100%;
}

.download-file__button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-height: 3.75rem;
  gap: 0.1rem;
  padding: 0.85rem 1rem;
  text-align: left;
}

.download-file__button-meta {
  font-size: 0.85rem;
  opacity: 0.9;
}

@media (max-width: 991.98px) {
  .download-file-card {
    padding: 1.25rem;
  }
}

/* --- video block width fix --- */
.videoheader-block,
.video-background-holder,
.video-background-content {
  width: 100%;
}

.video-background-holder {
  position: relative;
  min-height: 60vh;
  overflow: hidden;
}

.video-background-holder video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-background-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
}

.video-background-content {
  position: relative;
  z-index: 1;
}

.ehtoo-video-block {
  width: 100%;
  max-width: none;
  margin: 2rem 0;
}

.ehtoo-video-block .ehtoo-video-embed {
  width: 100%;
  max-width: none;
  --bs-aspect-ratio: 56.25%;
}

.ehtoo-video-block .ehtoo-video-embed > iframe,
.ehtoo-video-block .ehtoo-video-embed > video,
.ehtoo-video-block .ehtoo-video-embed > .plyr,
.ehtoo-video-block iframe,
.ehtoo-video-block video {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  border: 0;
}

/* --- notes --- */
.notes-page {
  background: var(--bs-body-bg, #fff);
}

.note-card {
  height: 100%;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.note-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.08);
}

.note-card__link {
  color: inherit;
  padding: 1rem;
}

.note-card__figure {
  margin: -1rem -1rem 0;
}

.note-card__figure img {
  display: block;
  width: 100%;
}

.note-card__date,
.note-article__meta {
  letter-spacing: 0.08em;
  color: rgba(0, 0, 0, 0.6);
}

.note-card__excerpt,
.note-article__content,
.note-article__subheading {
  font-size: 1rem;
  line-height: 1.8;
}

.note-article {
  max-width: 860px;
}

.note-article__subheading {
  max-width: 760px;
}

.note-article__cover img {
  display: block;
  width: 100%;
  border-radius: 0.75rem;
}

.note-article__content > * + * {
  margin-top: 1.5rem;
}

.note-article__content figure {
  margin: 2rem 0;
}

.note-article__content img {
  border-radius: 0.5rem;
}

.note-prevnext {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}


.notes-page .note-card__link,
.notes-page .note-card__link:hover,
.notes-page .note-card__link:focus,
.notes-page .note-card__link:active,
.notes-page .note-card__link *,
.notes-page .note-card__link:hover *,
.notes-page .note-card__link:focus * {
  color: inherit;
}




.btn-with-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.btn-with-icon .bi,
.download-file__image-fallback .bi {
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  vertical-align: -0.125em;
}

.btn-with-icon .bi {
  margin-top: 0;
}

.download-file__image-fallback .bi {
  width: 2rem;
  height: 2rem;
}

.download-file__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3rem;
}

.download-file__button-meta {
  font-size: 0.85rem;
  opacity: 0.9;
}

.download-file__button .bi {
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  vertical-align: -0.125em;
}
/* --- gallery polish 2026-04-20 --- */
.gallery {
  width: 100%;
  margin: 2rem 0;
}

.gallery__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
}

.gallery__item {
  min-width: 0;
}

.gallery__link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.gallery__link:hover,
.gallery__link:focus {
  color: inherit;
}

.gallery__link picture,
.gallery__link img,
.gallery__image {
  display: block;
  width: 100%;
}

.gallery__link picture {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 1rem;
  background: rgba(74, 66, 59, 0.08);
}

.gallery__image {
  aspect-ratio: 1 / 1;
  height: 100%;
  object-fit: cover;
  border-radius: 1rem;
  background: rgba(74, 66, 59, 0.08);
  box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gallery__link:hover .gallery__image,
.gallery__link:focus .gallery__image {
  transform: translateY(-2px);
  box-shadow: 0 0.85rem 1.75rem rgba(0, 0, 0, 0.10);
}

.gallery__caption {
  margin-top: 1rem;
  text-align: center;
}

@media (min-width: 768px) {
  .gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

@media (max-width: 575.98px) {
  .gallery {
    margin: 1.5rem 0;
  }

  .gallery__grid {
    gap: 0.75rem;
  }

  .gallery__image {
    border-radius: 0.75rem;
  }
}

.gallery-slider-block {
  width: 100%;
  margin: 2rem 0;
}

.gallery-slider {
  background: rgba(0, 0, 0, 0.04);
  border-radius: 1rem;
}

.gallery-slider__link,
.gallery-slider__link picture,
.gallery-slider__link img,
.gallery-slider__image {
  display: block;
  width: 100%;
}

.gallery-slider__image {
  min-height: 240px;
}

.gallery-slider .carousel-control-prev,
.gallery-slider .carousel-control-next {
  width: 12%;
}

.gallery-slider__indicators {
  margin-bottom: 0.75rem;
}

.gallery-slider__item-caption,
.gallery-slider__caption {
  margin-top: 0.85rem;
  text-align: center;
}

.gallery-slider__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}

.gallery-slider__thumb {
  padding: 0;
  border: 2px solid transparent;
  border-radius: 0.75rem;
  overflow: hidden;
  background: transparent;
}

.gallery-slider__thumb.is-active {
  border-color: #72645B;
}

.gallery-slider__thumb-image {
  display: block;
  width: 100%;
}

.gallery-lightbox {
  position: relative;
  width: min(96vw, 1200px);
  height: min(90vh, 900px);
}

.gallery-lightbox img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  margin: 0 auto;
  object-fit: contain;
}

.gallery-lightbox__button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  border-radius: 999px;
  width: 44px;
  height: 44px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
}

.gallery-lightbox__button--prev { left: 1rem; }
.gallery-lightbox__button--next { right: 1rem; }

.gallery-lightbox__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2rem;
  color: #fff;
  text-align: center;
}


/* --- 2026-04-20 refinement patch --- */
body,
p,
li,
a,
span,
div,
small,
label,
input,
textarea,
select,
button {
  font-weight: 400;
  font-synthesis: none;
}

strong,
b {
  font-weight: 700;
}

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6,
.menu-main-title,
.menu-category-title,
.menu-item__title,
.note-card__title,
.note-article h1,
.note-article h2,
.note-article h3,
.note-article h4 {
  font-family: 'Libre Baskerville', serif;
  font-weight: 400;
}

.layout-section {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.block-download-file {
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}

.block-download-file + .block-download-file {
  padding-top: 0.5rem;
}

.download-file-card {
  margin-bottom: 0;
}

.download-file__image {
  width: 120px;
  max-width: 120px;
  height: 120px;
  max-height: 120px;
  flex: 0 0 120px;
}

.download-file__image picture,
.download-file__image img,
.download-file__image-file {
  width: 100%;
  max-width: 120px;
  height: 100%;
  max-height: 120px;
  object-fit: contain;
}

.menu-content-header {
  margin-bottom: 2rem !important;
}

.menu-content .menu-main-title,
.menu-content h2 {
  margin-bottom: 0.75rem !important;
}

.menu-content .menu-category-heading,
.menu-content .menu-category-title {
  margin-bottom: 1rem !important;
}

.menu-content .menu-section {
  margin-bottom: 2.5rem !important;
}

.iframe-embed-block iframe,
.iframe-embed-block__frame {
  display: block;
  width: 100%;
  border: 0;
}

@media (max-width: 991.98px) {
  .layout-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .block-download-file {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }
}


/* --- 2026-04 contact/details, buttons, gallery, notes, download fixes --- */
:root {
  --notes-card-title-color: inherit;
  --notes-card-excerpt-color: inherit;
  --kohdetiedot-link-color: var(--bs-link-color);
  --contact-details-link-color: inherit;
}

body, p, li, dd, dt, small, .navbar-text, .dropdown-item, .nav-link {
  font-weight: 400;
  font-synthesis: none;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
  font-weight: 400 !important;
}

.btn-with-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  line-height: 1.2;
}

.btn-with-icon .bi,
.kohdetiedot-link .bi,
.project-row-link .bi,
.download-file__button .bi {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  vertical-align: middle;
  position: relative;
  top: 0;
}

.button-block .btn {
  display: inline-flex;
  align-items: center;
}

.kohdetiedot-link,
.kohdetiedot-link:hover,
.kohdetiedot-link:focus,
.project-row-link,
.project-row-link:hover,
.project-row-link:focus {
  color: var(--kohdetiedot-link-color, inherit);
}

.notes-page .note-card__title,
.notes-page .note-card__title a,
.notes-page .note-card__link,
.notes-page .note-card__link:hover,
.notes-page .note-card__link:focus {
  color: var(--notes-card-title-color, inherit);
}

.notes-page .note-card__excerpt,
.notes-page .note-card__excerpt p {
  color: var(--notes-card-excerpt-color, inherit);
  font-size: 0.95rem;
  line-height: 1.65;
}

.block-download-file {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.block-download-file + .block-download-file {
  padding-top: 0.25rem;
}

.download-file-card {
  border: 1px solid rgba(74, 66, 59, 0.12);
  border-radius: 0.75rem;
  background: #f7f3ed;
  box-shadow: 0 0.5rem 1.5rem rgba(74, 66, 59, 0.06);
}

.download-file__image-wrap {
  min-height: 120px;
}

.download-file__image {
  width: 120px;
  max-width: 120px;
  height: 120px;
  max-height: 120px;
  overflow: hidden;
  background: rgba(74, 66, 59, 0.08);
  border-radius: 0.5rem;
}

.download-file__image picture,
.download-file__image img,
.download-file__image-file {
  display: block;
  width: 100%;
  max-width: 120px;
  height: 100%;
  max-height: 120px;
  object-fit: contain;
}

.download-file__image-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.download-file__image-fallback .bi {
  width: 2rem;
  height: 2rem;
}

.download-file__buttons {
  width: 100%;
}

.download-file__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.75rem;
}

.download-file__button-meta {
  font-size: 0.8rem;
  opacity: 0.85;
}

.gallery {
  width: 100%;
  margin: 2rem 0;
}

.gallery__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.875rem;
}

.gallery__item {
  min-width: 0;
}

.gallery__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.gallery__image,
.gallery__link picture {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(74, 66, 59, 0.08);
}

.gallery__image {
  object-fit: cover !important;
  box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.06);
}

.gallery__caption {
  margin-top: 1rem;
  text-align: center;
}

@media (min-width: 992px) {
  .gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }
}

.contact-details-item__icon .bi {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--bs-primary);
}

.contact-details-item__link,
.contact-details-item__plain {
  color: var(--contact-details-link-color, inherit);
  text-decoration: none;
  font-weight: 400;
}

.contact-details-item__link:hover,
.contact-details-item__link:focus {
  color: var(--contact-details-link-color, inherit);
  text-decoration: underline;
}

/* --- contact details flex fix 2026-04-21 --- */
.contact-details-block {
  width: 100%;
}

.contact-details-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
}

.contact-details-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  max-width: 100%;
  text-align: center;
}

.contact-details-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  flex: 0 0 auto;
}

.contact-details-item__icon .bi {
  display: block;
  width: 1.1rem;
  height: 1.1rem;
  color: var(--bs-primary);
}

.contact-details-item__link,
.contact-details-item__plain {
  display: inline;
  color: var(--contact-details-link-color, inherit);
  text-decoration: none;
  font-weight: 400;
  line-height: 1.6;
}

.contact-details-item__link:hover,
.contact-details-item__link:focus {
  color: var(--contact-details-link-color, inherit);
  text-decoration: underline;
}
.btn-outline-primary {
  --bs-btn-color: #72645B;
  --bs-btn-border-color: #4B413A;
  --bs-btn-border-width: 3px; /* TÄRKEIN */
  
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #B7A08B;
  --bs-btn-hover-border-color: #72645B;

  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #72645B;
  --bs-btn-active-border-color: #4B413A;

  background-color: transparent;
}


/* --- kohdetiedot image fill fix 2026-04-23c --- */
@media (min-width: 992px) {
  .kohdetiedot-row > [class*="col-"] {
    display: flex;
  }

  .kohdetiedot-row .kohdetiedot-image-wrap,
  .project-row .project-row-image-wrap {
    flex: 1 1 auto;
    width: 100%;
    height: auto;
    min-height: 100%;
    aspect-ratio: auto;
  }

  .kohdetiedot-row .kohdetiedot-image-wrap picture,
  .project-row .project-row-image-wrap picture {
    display: block;
    width: 100%;
    height: 100%;
  }

  .kohdetiedot-row .kohdetiedot-image,
  .project-row .project-row-image {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    min-height: 100%;
    object-fit: cover !important;
  }
}

@media (max-width: 991.98px) {
  .kohdetiedot-row > [class*="col-"] {
    display: block;
  }

  .kohdetiedot-row .kohdetiedot-image-wrap,
  .project-row .project-row-image-wrap {
    aspect-ratio: 16 / 10;
  }

  .kohdetiedot-row .kohdetiedot-image-wrap picture,
  .project-row .project-row-image-wrap picture {
    display: block;
    width: 100%;
    height: 100%;
  }
}

/* --- Ikonit ---
   1em = saman kokoinen kuin ympäröivä teksti.
   Ei koskaan liian iso. */

.event-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  vertical-align: -0.15em;
}

/* --- Tapahtumakortti (listaus) --- */

.events-page .note-card__link,
.events-page .note-card__link:hover,
.events-page .note-card__link:focus,
.events-page .note-card__link *,
.events-page .note-card__link:hover *,
.events-page .note-card__link:focus * {
  color: inherit;
}

/* Lisää tilaa kuvan ja otsikon väliin */
.event-card .note-card__content {
  padding-top: 1.1rem;
}

.event-card .note-card__content h2 {
  font-size: 1.1rem;
  line-height: 1.4;
  margin-bottom: 0.75rem;
}

.event-card__meta-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.event-card__meta-item {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  font-size: 0.875rem;
  color: rgba(0, 0, 0, 0.65);
  line-height: 1.4;
}

/* Ikonin väri kortissa: sama tumma sävy kuin templatessa */
.event-card__meta-item .event-icon {
  flex-shrink: 0;
  color: rgba(75, 65, 58, 0.7);
  position: relative;
  top: 0.05em;
}

/* --- "Tapahtumat" breadcrumb-linkki --- */

.event-breadcrumb {
  font-family: 'Gambler', serif;
  font-size: 2.5rem;
  letter-spacing: normal;
  line-height: 1.3;
  color: #000;
}

.event-breadcrumb__link {
  color: inherit;
  text-decoration: none;
}

.event-breadcrumb__link:hover {
  opacity: 0.7;
}

/* --- Perustiedot-lohko --- */

.event-infobox {
  border: 1px solid rgba(75, 65, 58, 0.12);
  border-radius: 0.75rem;
  overflow: hidden;
  background: #f7f3ed;
  text-align: left;
}

.event-infobox__col {
  padding: 1.5rem 1.75rem;
}

.event-infobox__col--border {
  border-bottom: 1px solid rgba(75, 65, 58, 0.1);
}

@media (min-width: 576px) {
  .event-infobox__col--border {
    border-bottom: none;
    border-right: 1px solid rgba(75, 65, 58, 0.1);
  }
}

.event-infobox__dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.event-infobox__row {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.event-infobox__row dt {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-family: 'Roboto Mono', monospace;
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(75, 65, 58, 0.7);
  line-height: 1.3;
}

/* Arvo sisennettynä: ikoni (1em) + gap (0.35rem) */
.event-infobox__row dd {
  margin: 0;
  padding-left: calc(1em + 0.35rem);
  font-size: 0.95rem;
  line-height: 1.5;
}

.event-infobox__row dd a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(75, 65, 58, 0.3);
}

.event-infobox__row dd a:hover {
  color: var(--bs-primary);
  text-decoration-color: var(--bs-primary);
}

/* CTA-painikkeet */
.event-infobox__cta {
  padding: 1.25rem 1.75rem;
  border-top: 1px solid rgba(75, 65, 58, 0.1);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

/* Painikkeen teksti ei rivity, se pysyy yhdellä rivillä */
.event-infobox__cta .btn {
  white-space: nowrap;
}

/* --- Aikataulu --- */

.event-schedule {
  border: 1px solid rgba(75, 65, 58, 0.12);
  border-radius: 0.75rem;
  padding: 1.5rem 1.75rem;
  background: #fff;
  text-align: left;
}

.event-schedule__heading {
  font-family: 'Roboto Mono', monospace !important;
  font-size: 0.75rem !important;
  font-weight: 400 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(0, 0, 0, 0.4);
  margin-bottom: 1.25rem !important;
  text-align: center;
}

.event-schedule__list {
  margin: 0;
  display: flex;
  flex-direction: column;
}

.event-schedule__row {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  column-gap: 1.5rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(75, 65, 58, 0.08);
  align-items: baseline;
}

.event-schedule__row:first-child { padding-top: 0; }
.event-schedule__row:last-child  { border-bottom: none; padding-bottom: 0; }

.event-schedule__time {
  font-family: 'Roboto Mono', monospace;
  font-size: 0.85rem;
  color: rgba(75, 65, 58, 0.7);
  letter-spacing: 0.04em;
}

.event-schedule__item {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.event-schedule__item-title { font-size: 0.95rem; line-height: 1.5; }

.event-schedule__item-desc {
  font-size: 0.85rem;
  color: rgba(0, 0, 0, 0.5);
  line-height: 1.4;
}


/* =====================================================
   AUKIOLOAJAT-BLOKKI (oh-block) v5
   ===================================================== */

.oh-block__title {
  font-family: 'Libre Baskerville', serif;
  font-weight: 400;
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
}

/* Lisätieto-kenttä: sama tyyli kuin kuvateksti (figcaption) */
.oh-block__caption {
  font-size: 0.85rem;
  color: rgba(0, 0, 0, 0.55);
  font-style: italic;
  margin-bottom: 0.6rem;
  line-height: 1.5;
}

.oh-block__list {
  margin: 0;
  padding: 0;
}

.oh-block__row {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.3rem 0;
  border-bottom: 1px solid rgba(75, 65, 58, 0.1);
}

.oh-block__row:last-child {
  border-bottom: none;
}

/* Tämä päivä — lihavoitu.
   !important tarvitaan koska globaali sääntö
   "body, p, li, dd, dt { font-weight: 400 }"
   ylikirjoittaisi muuten tämän. */
.oh-block__row--today .oh-block__day,
.oh-block__row--today .oh-block__time {
  font-weight: 700 !important;
}

.oh-block__row--exception .oh-block__day,
.oh-block__row--exception .oh-block__time {
  color: var(--bs-primary);
}

.oh-block__ex-badge {
  font-size: 0.7em;
  vertical-align: super;
  margin-left: 0.1em;
  opacity: 0.7;
}

.oh-block__day {
  flex-shrink: 0;
  font-size: 0.875rem;
  letter-spacing: 0.03em;
  font-family: 'Roboto Mono', monospace;
}

/* Päivämäärä modalissa tarvitsee enemmän tilaa */
.oh-block__day--date {
  min-width: 7.5rem;
}

.oh-block__time {
  font-size: 0.875rem;
  letter-spacing: 0.03em;
  font-family: 'Roboto Mono', monospace;
  text-align: right;
}

.oh-block__time--closed {
  opacity: 0.45;
  font-style: italic;
}

.oh-block__exceptions-link {
  margin-top: 0.6rem;
  margin-bottom: 0;
}

.oh-block__exceptions-btn {
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.45);
  letter-spacing: 0.03em;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(0, 0, 0, 0.2);
  font-family: 'Roboto Mono', monospace;
}

.oh-block__exceptions-btn:hover {
  color: var(--bs-primary);
  text-decoration-color: var(--bs-primary);
}

.oh-block__ex-desc {
  font-size: 0.8rem;
  color: rgba(0, 0, 0, 0.5);
  margin: 0.1rem 0 0.35rem 0;
  font-style: italic;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(75, 65, 58, 0.08);
}

.oh-block__ex-desc:last-child {
  border-bottom: none;
}

/* --- Yhteystiedot-blokki: poista section-elementin 4rem padding ---
   Globaali "section { padding: 4rem 0 }" lisää turhan välin
   kun contact-details on layout-palstassa. */
.contact-details-block {
  padding: 0 !important;
}

/* --- Dropdown-linkkien väri --- */
.dropdown-item:active,
.dropdown-item.active {
  background-color: #72645B;
  color: #fff;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: rgba(114, 100, 91, 0.1);
  color: #72645B;
}
