body 
{
	background-color: #fff;
	margin: 0 auto !important;
	max-width: 2300px;
	border-left: solid #ddd 1px;
	border-right: solid #ddd 1px;
}

/* Headings & text */

h1 {margin: 50px 0 30px 0;}
h2 {margin: 30px 0 10px 0;}
h3.pubTitle {font-size: 120%; margin: 20px 5px 10px 5px;}
h5 {margin-top: 50px;}


p {margin: 10px;}

.centered {text-align: center;}
.large {font-size: 125%;}
.rAlign {text-align: right;}
.success_message {font-size: 130%; margin: 30px 0 30px 0; padding: 2px; background-color: #779d26;}
.success_message p {text-align: center; color: #fff;}

/* Containers */

.contentContainer {width: 95%; margin: 0 auto;}
.narrowContainer {width: 900px; margin: 0 auto;}

/* Colors */

.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
	color: #fff;
	background-color: #666;
}

/* Forms  */

input, select {margin-top: 7px;}
.formContainer {width: 80%; margin: 0 auto; margin-top: 50px; margin-bottom: 50px;}
.formContainer {clear: both;}
label {margin-bottom: 0;}
/* Publication listings etc. */

.pubListing {width: 95%; margin: 0 auto;}
.pubContainer {width: 300px; min-height: 750px; float: left; margin: 0; margin-right: 10px; margin-bottom: 10px; border: solid #888 1px; border-radius: 8px; background-color: #fff;}

.pubTitle {height: 50px; text-align: center;}
.pubDesc {height: 180px; text-align: left;}
.pubContainer img, .pubContainerL img {width: 100%; height: 425px; margin: 0 auto; filter: saturate(80%); border-top-left-radius: 8px; border-top-right-radius: 8px; }

.publication-container {
  display: flex;
  flex-direction: row;         /* Oletuksena vierekkäin */
  gap: 2rem;                   /* Väli kuvan ja tekstin väliin */
  align-items: flex-start;
  margin: 2rem auto;
  max-width: 1200px;
  padding: 1rem;
}

/* Kuvan säätö */
.pubImgContainer img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
}

/* Tekstipuoli */
.pubTextContainer {
  flex: 1;
  padding-left: 5%;
  padding-right: 5%;
}

/* Keskitys kuvalle mobiilissa */
.pubImgContainer {
  text-align: center;
}

/* Pienet näytöt → elementit allekkain */
@media (max-width: 850px) {
  .publication-container {
    flex-direction: column;    /* Allekkain */
    align-items: center;       /* Keskitys */
  }

  .pubTextContainer {
    width: 100%;
  }
}


/* Shopping cart  */

.cartInfo 
{
	border: solid #c5b500 1px;
	color: #000;
	width: 95%;
	height: auto;
	margin: 0 auto;
	margin-top: 50px;
	margin-bottom: 30px;
	background-color: #f6e200;
	text-align: center;
	border-radius: 8px;
}

/* This is for showing the cart on pages other than publications. */
.cartInfo2
{
	color: #000;
	width: 100%;
	height: 50px;
	color: #fff;
	text-align: center;
	border-radius: 8px;
	padding: 0;
	margin: 0;
	padding-left: 5%;
	padding-right: 5%;
	box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}

.cartInfo2 p {background-color: #333; padding: 5px; border-radius: 7px; width: 60%; float: right; min-width: 500px;}

.cartContainer
{
	width: 90%;
	margin: 0 auto;
}

.error-message {
  background: red;
  color: white;
  padding: 6px 10px;
  margin: 6px 0;
  border-radius: 4px;
  display: none;
  font-size: 0.9rem;
}


/* Shaking effect for the shopping cart infobar. */

  .shake {
      animation: shakeY 0.5s ease-in-out 0s 4; 
    }

    @keyframes shakeY {
      0%   { transform: translateY(0); }
      20%  { transform: translateY(-4px); }
      40%  { transform: translateY(4px); }
      60%  { transform: translateY(-4px); }
      80%  { transform: translateY(4px); }
      100% { transform: translateY(0); }
    }


.wpslideshow { position: relative; max-width: 600px; margin: auto; overflow: hidden; }
.wpslideshow-slides { display: flex; transition: transform 0.5s ease-in-out; }
.slide { min-width: 100%; display: none; }
.slide:first-child { display: block; }
.slide img { max-width: 100%; height: auto; display: block; }
.slide p { text-align: center; margin: 10px 0; }
.wpslideshow-controls button { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; }
.wpslideshow-controls .prev { left: 10px; }
.wpslideshow-controls .next { right: 10px; }
.wpslideshow-indicators { text-align: center; margin-top: 10px; }
.indicator { display: inline-block; width: 10px; height: 10px; margin: 0 5px; background: gray; border-radius: 50%; cursor: pointer; }
.indicator.active { background: black; }

.miniCartIframe 
{
	width: 100%;
	border: 0;
	height: 50px;
	position: fixed;
	top: -5px;
	opacity: 0.75;
	z-index: 99999;
	text-align: center;
	padding: 0;
	margin: 0;
}

.miniCartIframe:hover
{
	opacity: 1;
}

.invalid-feedback
{
	background-color: #bf0a0a;
	padding: 5px;
	color: #fff;
}
