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;}

.cartInfoNew {
	border: solid #aaa 1px;
	position: fixed;
	top: 150px;
	right: 25px;
	width: 350px;
	float: right;
	border-radius: 10px;
}

.cartInfoNew h3 {text-align: center; margin-top: 0px; margin-bottom: 30px; background-color: #f6e200; color: #000; padding: 10px; border-top-right-radius: 10px; border-top-left-radius: 10px; border-bottom: solid #ccc 2px;}
.cartInfoNew p {text-align: center;}
.cartInfoNew img {box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2); border: solid #ccc 1px;}

.closeBtn {
  position: absolute;
  top: -3px;
  right: 5px;
  border: none;
  background: none;
  font-size: 28px;
  cursor: pointer;
}

#shoppingCartIcon {position: absolute; top: 45px; right: 100px; z-index: 100;}
#shoppingCartIcon a {display: flex; align-items: center; gap: 4px; text-decoration: none; color: #007bff;}
#shoppingCartIcon2 {position: absolute; top: 10px; right: 50px;}

.radialGrayBgr {
background: #ffffff;
background: radial-gradient(circle, rgba(255, 255, 255, 1) 48%, rgba(200, 200, 200, 1) 100%);
}

.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: absolute;
	top: 40px;
	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;
}
