.shopmenu {
	width: 100%;
	height: 50px;
	color: black;
	/*position: relative;*/
	/*margin-top: 2em;*/
	padding: 15px;
	text-align: center;
}

.shopmenu div {
	display: inline;
	padding-left: 5px;
	padding-right: 5px;
}

.shopmenu_p {
	margin: 0;
	padding: 0;
	color: red;
}

.shop_pic {
	position: relative;
	margin: 1em auto;
	text-align: center;
	width: 300px;
	max-width: 100%;
	line-height: normal;
}

/* Only image products: collapse image gap so caption sits on bottom edge */
.shop_pic:has(> img) {
	line-height: 0;
}

.shop_pic img {
	width: 100%;
	max-width: 300px;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	display: block;
	margin: 0 auto;
	background: #f5f5f5;
	line-height: normal;
}

/* Caption pinned to bottom edge of product image */
.product-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	pointer-events: none;
	line-height: normal;
}

#paidat .product {
	margin-bottom: 0.5em;
}

.shop-heading {
	text-align: center;
	width: 100%;
	margin: 1em 0 0.25em;
	color: black;
	font-size: 1.5rem;
}

.product-group-desc {
	text-align: center;
	max-width: 28rem;
	margin: 0 auto 1.25em;
	padding: 0 1em;
	color: #333;
	font-size: 1.05rem;
	line-height: 1.4;
}

/* Breadcrumb: Etusivu / Shop */
.breadcrumb-nav {
	display: block;
	width: 100%;
	max-width: 40rem;
	margin: 0.75em auto 0.25em;
	padding: 0 1em;
	font-size: 0.9rem;
	line-height: 1.4;
	color: #555;
	text-align: center;
}

.breadcrumb-nav a {
	color: #c82333;
	text-decoration: none;
}

.breadcrumb-nav a:hover,
.breadcrumb-nav a:focus {
	text-decoration: underline;
}

.breadcrumb-nav__sep {
	margin: 0 0.35em;
	color: #999;
	user-select: none;
}

.breadcrumb-nav [aria-current="page"] {
	color: #333;
	font-weight: 600;
}

#intro h1 {
	margin: 0 0 0.75em;
	font-size: 1.75rem;
	line-height: 1.25;
	word-wrap: break-word;
}

#intro p {
	margin: 0 0 0.85em;
	line-height: 1.5;
}

#intro p:last-child {
	margin-bottom: 0;
}

#intro .btn {
	margin-top: 0.35em;
}

#X {
	visibility: hidden;
	top: 3vh;
	right: 3vw;
	position: fixed;
	height: 10vh;
	width: 10vw;
	background: red;
	color: black;
	border: 3px solid black;
	border-radius: 3px;
	font-weight: 900;
	font-size: 5vw;
	padding: 0;
	text-align: center;
	vertical-align: middle;
	z-index: 9999;
}

.price {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 3;
	min-width: 3em;
	height: 1.5em;
	line-height: 1.5em;
	padding: 0 0.35em;
	background: white;
	color: coral;
	font-weight: 700;
	text-align: center;
}

.product-caption .desc,
.product-caption .desc2,
.desc,
.desc2 {
	display: block;
	position: static;
	bottom: auto;
	height: auto;
	margin: 0;
	padding: 0.35em 0.5em;
	background: rgba(255, 255, 255, 0.9);
	color: coral;
	text-align: left;
	font-size: 0.9rem;
	line-height: 1.25;
}

.product-caption .desc2 + .desc2 {
	border-top: 1px solid rgba(255, 127, 80, 0.25);
}

#tarrat { text-align: center; width: 100%; }

/* Intro text as its own centered column — air from viewport edges */
#intro {
	box-sizing: border-box;
	display: block;
	width: 100%;
	max-width: 36rem;
	margin: 100px auto 1.5em;
	padding: 1.25em 1.25em 1.5em;
	text-align: center;
	color: black;
	font-size: 1.05rem;
	line-height: 1.5;
}

#sticky {
	position: -webkit-sticky;
	position: sticky;
	top: 2.7em;
	background: gray;
	transform: transition(1.4s);
	color: white;
	z-index: 4;
}

/* Product tiles: image + overlay caption (no fixed 300px box / old bg hacks) */
.shirt,
.sticker {
	width: 300px;
	max-width: 100%;
	height: auto;
	padding: 0;
	box-sizing: border-box;
}
