/*
 * Puusaun verkkokauppa: Saunakauppa, Tuotesivu, Ostoskori, Kassa, Tilausvahvistus, Peruutus.
 * Mitat Figma-tiedostosta "Puusaun-verkkokauppa" (Tuotesivu 1440 / 402, Saunakauppa 1440).
 * Värit vain Figman paletista.
 */

.pss, .pss-header {
	--pss-green: #13322D;
	--pss-card: #12312B;
	--pss-smoke: #616D6B;
	--pss-moss: #978768;
	--pss-bench: #CBB996;
	--pss-gold: #C9B08A;
	--pss-peach: #FCD9B5;
	--pss-mist: #FFF8EB;
	--pss-line: #DFDADA;
	--pss-qr-line: #DDD8CC;
	--pss-icon: #C6A771;
	--pss-red: #BF1919;
	--pss-ink: #000000;
	--pss-serif: 'Recoleta', Georgia, 'Times New Roman', serif;
	--pss-sans: 'Sweet Sans Pro', 'Helvetica Neue', Arial, sans-serif;
	--pss-num: 'Inter', 'Helvetica Neue', Arial, sans-serif;
}
.pss, .pss-header { font-family: var(--pss-sans); -webkit-font-smoothing: antialiased; }
.pss *, .pss *::before, .pss *::after,
.pss-header *, .pss-header *::before, .pss-header *::after { box-sizing: border-box; }
.pss svg, .pss-header svg { display: block; }

/* =========================================================
 * Header (Figma: 1440 x 160, #13322D)
 * ======================================================= */
.pss-header { position: relative; z-index: 60; background: var(--pss-green); }
.pss-header__in {
	position: relative;
	max-width: 1440px; height: 160px; margin: 0 auto;
	display: flex; align-items: center;
	padding: 0 80px 0 87px;
}
.pss-logo { align-self: flex-start; margin-top: 37px; display: block; width: 74px; height: 77.6px; }
.pss-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.pss-nav { margin-left: auto; display: flex; transform: translateY(4px); }
.pss-nav a {
	width: 204px; text-align: center;
	font-family: var(--pss-sans); font-weight: 500; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em;
	text-transform: uppercase; color: #FFFFFF; text-decoration: none;
	transition: color .15s ease;
}
.pss-nav a + a { margin-left: -12px; }
.pss-nav a:hover, .pss-nav a:focus-visible { color: var(--pss-peach); }
.pss-icons { display: flex; align-items: center; gap: 31px; margin-left: 27px; transform: translateY(4px); }
.pss-ico { position: relative; display: block; color: var(--pss-icon); line-height: 0; }
.pss-ico--user svg { width: 38px; height: 38px; }
.pss-ico--cart svg { width: 32px; height: 32px; }
.pss-ico:hover svg path { fill: var(--pss-peach); }
.pss-count {
	position: absolute; top: -5px; right: -9px;
	min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
	background: var(--pss-peach); color: var(--pss-green);
	font-family: var(--pss-num); font-weight: 600; font-size: 11px; line-height: 18px; text-align: center; letter-spacing: 0;
}
.pss-count[hidden] { display: none; }
.pss-burger { display: none; }

/* =========================================================
 * Base
 * ======================================================= */
.pss-main {
	display: block;
	background: linear-gradient(180deg, #F2F2EB 0%, #F7F7F3 100%);
	color: var(--pss-ink);
	font-size: 18px; line-height: 1.5; letter-spacing: -0.03em;
	padding-bottom: 164px;
}
.pss-main--shop { background: linear-gradient(180deg, #F5F5EF 0%, #F8F8F3 100%); padding-bottom: 180px; }
.pss-main--cart, .pss-main--checkout, .pss-main--thankyou, .pss-main--withdrawal { padding-bottom: 120px; }
.pss-wrap { max-width: 1440px; margin: 0 auto; padding: 0 80px; }
.pss a { color: inherit; }
.pss h1, .pss h2, .pss h3 { font-weight: 400; color: var(--pss-ink); }
.pss p { margin: 0; }

.pss-h1 { margin: 19px 0 0; font-family: var(--pss-serif); font-size: 44px; line-height: 1.3; letter-spacing: -0.03em; }
.pss-h2 { margin: 0; font-family: var(--pss-serif); font-size: 32px; line-height: 1.3; letter-spacing: -0.03em; }
.pss-lead { margin-top: 19px !important; max-width: 640px; font-size: 18px; line-height: 1.5; }

.pss-crumb { padding-top: 50px; font-size: 12px; line-height: 1.5; letter-spacing: -0.03em; text-transform: uppercase; color: var(--pss-ink); }
.pss-crumb a { text-decoration: none; }
.pss-crumb a:hover { text-decoration: underline; }

/* Buttons (Figma: 262 x 43, 1 px #13322D, radius 4, Sweet Sans Medium 18) */
.pss .pss-btn,
.pss-btn {
	display: inline-flex; align-items: center; justify-content: center;
	height: 43px; min-width: 196px; padding: 0 34px; margin: 0;
	border: 1px solid var(--pss-green); border-radius: 4px; background: transparent;
	font-family: var(--pss-sans); font-weight: 500; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em;
	text-transform: uppercase; text-decoration: none; color: var(--pss-green);
	cursor: pointer; transition: background-color .15s ease, color .15s ease;
}
.pss .pss-btn:hover, .pss .pss-btn:focus-visible { background: var(--pss-green); color: var(--pss-mist); }
.pss .pss-btn--fill { background: var(--pss-green); color: var(--pss-mist); }
.pss .pss-btn--fill:hover { background: var(--pss-card); }
.pss .pss-btn--peach { border-color: var(--pss-peach); color: var(--pss-peach); }
.pss .pss-btn--peach:hover { background: var(--pss-peach); color: var(--pss-green); }
.pss .pss-btn--small { height: 43px; min-width: 0; padding: 0 22px; font-size: 16px; }
.pss .pss-btn[disabled], .pss .pss-btn:disabled { opacity: .4; cursor: default; }

/* Notices */
.pss-notices:empty { display: none; }
.pss-notices { padding-top: 24px; }
.pss .woocommerce-notices-wrapper:empty { display: none; }
.pss .woocommerce-message, .pss .woocommerce-info, .pss .woocommerce-error {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px;
	margin: 0 0 24px; padding: 24px 32px; list-style: none;
	background: var(--pss-mist); border: 1px solid var(--pss-bench); border-radius: 4px;
	color: var(--pss-green); font-family: var(--pss-sans); font-size: 16px; line-height: 1.5; letter-spacing: -0.03em;
}
.pss .woocommerce-error { border-color: var(--pss-red); }
.pss .woocommerce-error li { margin: 0; }
.pss .woocommerce-message::before, .pss .woocommerce-info::before, .pss .woocommerce-error::before { display: none; content: none; }
.pss .woocommerce-message .button, .pss .woocommerce-info .button, .pss .woocommerce-error .button {
	order: 2; float: none; margin: 0; padding: 0; height: auto; min-width: 0;
	background: none; border: 0; border-radius: 0; color: var(--pss-green);
	font-family: var(--pss-sans); font-weight: 500; font-size: 14px; line-height: 1.5; letter-spacing: -0.03em;
	text-transform: uppercase; text-decoration: underline;
}
.pss .woocommerce-message .button:hover { background: none; color: var(--pss-moss); }
.pss-note { margin-top: 32px !important; padding: 24px 32px; background: var(--pss-mist); border: 1px solid var(--pss-bench); border-radius: 4px; font-size: 16px; }

/* =========================================================
 * Image slider + dots (Figma: white pill 70 x 16, dots 7 px #616D6B, inactive 50 %)
 * ======================================================= */
.pss-slider { position: relative; display: block; overflow: hidden; background: transparent; } /* sama kuin sivun tausta */
.pss-slider__track {
	display: flex; height: 100%;
	overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	scrollbar-width: none; -ms-overflow-style: none;
}
.pss-slider__track::-webkit-scrollbar { display: none; }
.pss-slide { flex: 0 0 100%; height: 100%; scroll-snap-align: start; }
.pss-slide img, .pss-slide__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
/* Valkoinen tuotekuvan tausta sulautuu sivun beigeen (multiply: valkoinen = taustaväri, muut sävyt lähes ennallaan). */
.pss-slide img, .pss-slide__img, .pss .pss-cart__thumb img { mix-blend-mode: multiply; }
.pss-dots {
	position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%);
	display: flex; align-items: center; gap: 6px;
	height: 16px; padding: 0 12px; border-radius: 100px; background: #FFFFFF;
	pointer-events: none;
}
.pss-dots i { display: block; width: 7px; height: 7px; border-radius: 50%; background: var(--pss-smoke); opacity: .5; transition: opacity .2s ease; }
.pss-dots i.is-active { opacity: 1; }

/* =========================================================
 * Tuotesivu (Figma: Tuotesivu 1440)
 * ======================================================= */
.pss-product { padding-left: 3px; }
.pss-product__grid {
	display: grid; grid-template-columns: minmax(0, 627fr) minmax(0, 578fr); column-gap: 45px;
	max-width: 1250px; margin-top: 19px; align-items: start;
}
.pss-gallery { aspect-ratio: 627 / 594; }
.pss-gallery .pss-dots { bottom: 15px; }
.pss-info { padding-top: 5px; min-width: 0; }
.pss-title { margin: 0; font-family: var(--pss-serif); font-size: 44px; line-height: 1.3; letter-spacing: -0.03em; }
.pss-price { margin-top: 19px !important; font-size: 32px; line-height: 1.5; letter-spacing: -0.03em; }
.pss-price del { opacity: .5; margin-right: 10px; }
.pss-price ins { text-decoration: none; }
.pss-desc { margin-top: 19px; max-width: 504px; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; }
.pss-desc p + p { margin-top: 12px; }
.pss-buy { margin-top: 46px; }
/* Gift card amounts (rectangular chips, straight edges) */
.pss-amounts { margin: 0 0 26px; }
.pss-amounts__label { margin: 0 0 12px !important; font-size: 14px; letter-spacing: .02em; text-transform: uppercase; color: var(--pss-ink); }
.pss-amounts__chips { display: flex; flex-wrap: wrap; gap: 10px; }
.pss-chip { min-width: 74px; height: 43px; padding: 0 16px; border: 1px solid var(--pss-green); border-radius: 4px; background: transparent; color: var(--pss-green); font-family: var(--pss-sans); font-weight: 500; font-size: 16px; cursor: pointer; }
.pss-chip:hover { background: rgba(19, 50, 45, .06); }
.pss-chip.is-on { background: var(--pss-green); color: var(--pss-mist); }
.pss-amounts__custom { display: block; margin-top: 14px; max-width: 262px; }
.pss-amounts__custom[hidden] { display: none; }
.pss-amounts__custom span { display: block; margin-bottom: 6px; font-size: 14px; color: var(--pss-smoke); }
.pss-amounts__custom input { width: 100%; height: 43px; padding: 0 12px; border: 1px solid var(--pss-moss); border-radius: 4px; background: #FFFFFF; font-family: var(--pss-num); font-size: 16px; }
.pss-amounts__custom input.is-bad { border-color: var(--pss-red); }

/* Lahjakortti lahjaksi: vastaanottaja, viesti ja lähetyspäivä */
.pss-send { margin: 0 0 26px; }
.pss-send .pss-amounts__chips { display: grid; grid-template-columns: 1fr 1fr; max-width: 520px; }
.pss-chip--wide { min-width: 0; padding: 0 12px; }
.pss-send__hint { margin: 12px 0 0 !important; font-size: 14px; line-height: 1.5; color: var(--pss-smoke); }
.pss-send__hint[hidden], .pss-send__fields[hidden] { display: none; }
.pss-send__fields { display: grid; gap: 14px; margin-top: 18px; max-width: 520px; }
.pss-field { display: block; margin: 0; }
.pss-field > span { display: block; margin-bottom: 6px; font-size: 14px; color: var(--pss-smoke); }
.pss-field input, .pss-field textarea { display: block; width: 100%; height: 46px; padding: 0 12px; border: 1px solid var(--pss-moss); border-radius: 4px; background: #FFFFFF; font-family: var(--pss-sans); font-size: 16px; color: var(--pss-ink); box-sizing: border-box; }
.pss-field textarea { height: auto; min-height: 112px; padding: 10px 12px; line-height: 1.5; resize: vertical; }
.pss-field input:focus, .pss-field textarea:focus { outline: 2px solid var(--pss-green); outline-offset: 1px; }
.pss-field input.is-bad { border-color: var(--pss-red); }
.pss-field small { display: block; margin-top: 6px; font-size: 13px; line-height: 1.4; color: var(--pss-smoke); }
.pss-slide--gift { display: flex; align-items: center; justify-content: center; }
.pss-slide--gift .pss-slide__img { height: auto; object-fit: contain; border-radius: 12px; }
.pss-gallery.pss-gallery--gift { aspect-ratio: 1600 / 920; }
.pss-buy form.cart { margin: 0; }
.pss-buy .pss-btn { width: 262px; padding: 0; }
.pss-buy .variations { margin-bottom: 16px; border: 0; }
.pss-buy .variations td, .pss-buy .variations th { padding: 0 0 8px; border: 0; background: none; font-size: 14px; text-transform: uppercase; }
.pss-buy select { height: 43px; min-width: 262px; padding: 0 12px; border: 1px solid var(--pss-moss); border-radius: 4px; background: #FFFFFF; font-family: var(--pss-sans); font-size: 16px; }
.pss-buy .single_variation_wrap .quantity { display: none; }
.pss-buy .single_add_to_cart_button:not(.pss-btn) {
	height: 43px; width: 262px; border: 1px solid var(--pss-green); border-radius: 4px; background: transparent; color: var(--pss-green);
	font-family: var(--pss-sans); font-weight: 500; font-size: 18px; text-transform: uppercase; letter-spacing: -0.03em;
}
.pss-soldout { font-size: 16px; color: var(--pss-smoke); }

.pss-accs { margin-top: 106px; max-width: 578px; border-bottom: 1px solid var(--pss-moss); }
.pss-acc { border-top: 1px solid var(--pss-moss); }
.pss-acc summary {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 13px 6px 13px 3px; cursor: pointer; list-style: none;
	font-size: 14px; line-height: 1.5; letter-spacing: -0.03em; text-transform: uppercase;
}
.pss-acc summary::-webkit-details-marker { display: none; }
.pss-acc summary::marker { content: ''; }
.pss-acc summary i { display: block; flex: 0 0 16px; }
.pss-acc summary i svg { width: 16px; height: 16px; transition: transform .2s ease; }
.pss-acc[open] summary i svg { transform: rotate(45deg); }
.pss-acc__body { padding: 0 3px 18px; font-size: 16px; line-height: 1.5; }
.pss-acc__body p + p { margin-top: 8px; }

/* =========================================================
 * Tuotekortit ja ruudukko (Figma: 413 x 400 kuva, 20 px väli)
 * ======================================================= */
.pss-products--more { margin-top: 96px; }
.pss-products__title { margin: 0; font-family: var(--pss-serif); font-size: 44px; line-height: 1.3; letter-spacing: -0.03em; }
.pss-products__text { font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; }
.pss-products__grid {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 20px; row-gap: 64px;
	margin-top: 44px;
}
.pss-card { min-width: 0; }
.pss-card__media { aspect-ratio: 413 / 400; }
.pss-card__row {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	margin-top: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--pss-green);
}
.pss-card__name { margin: 0; font-family: var(--pss-serif); font-size: 24px; line-height: 1.4; letter-spacing: -0.03em; }
.pss-card__name a { text-decoration: none; }
.pss-card__name a:hover { text-decoration: underline; text-underline-offset: 4px; }
.pss-card__price { flex: 0 0 auto; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; white-space: nowrap; }
.pss-card__price del { opacity: .5; margin-right: 6px; }
.pss-card__price ins { text-decoration: none; }
.pss-card__teaser { margin-top: 15px !important; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; }
.pss-products__nav { display: none; }
.pss-empty { padding: 60px 0; text-align: center; }

/* Saunakauppa: keskitetty otsikko ja teksti */
.pss-wrap--shop { padding-top: 74px; }
.pss-wrap--term { padding-top: 0; }
.pss-wrap--term .pss-products { margin-top: 40px; }
.pss-products--center .pss-products__title { text-align: center; font-size: 56px; line-height: 1.2; }
.pss-products--center .pss-products__text { max-width: 504px; margin: 43px auto 0; text-align: center; }
.pss-products--center .pss-products__grid { margin-top: 74px; }
.pss .navigation.pagination { margin-top: 48px; text-align: center; font-size: 16px; }
.pss .page-numbers { display: inline-block; padding: 4px 10px; text-decoration: none; }
.pss .page-numbers.current { border-bottom: 1px solid var(--pss-green); }

/* =========================================================
 * Saunakauppa hero (Figma: vihreä alue 995 px, kuva 1349 x 384)
 * ======================================================= */
.pss-hero { background: var(--pss-green); color: var(--pss-mist); }
.pss-hero__in { max-width: 1440px; margin: 0 auto; padding: 87px 52px 54px 39px; }
.pss-hero__media img, .pss-hero__img { display: block; width: 100%; height: auto; aspect-ratio: 1349 / 384; object-fit: cover; }
.pss-hero__info {
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; column-gap: 16px;
	margin-top: 28px; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; text-transform: uppercase; color: var(--pss-mist);
}
.pss-hero__temp { justify-self: start; }
.pss-hero__addr { justify-self: center; display: inline-flex; align-items: center; gap: 9px; }
.pss-hero__addr svg { width: 21px; height: 21px; flex: 0 0 21px; }
.pss-hero__open { justify-self: end; text-align: right; }
.pss-hero__open .ohm-today, .pss-hero__open .ohm-today.ohm-closed, .pss-hero__open .pss-ohm-today { font-size: inherit; color: inherit; }
.pss-hero__open strong { font-weight: 400; }
.pss-hero__row { display: grid; grid-template-columns: minmax(0, 808px) minmax(0, 504px); margin-top: 74px; align-items: start; }
.pss-hero__title { margin: 0; font-family: var(--pss-serif); font-size: 56px; line-height: 1.2; letter-spacing: -0.03em; color: var(--pss-mist) !important; }
.pss-hero__side { padding-top: 14px; }
.pss-hero__text { font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; color: var(--pss-mist); }
.pss-hero__btns { display: flex; gap: 24px; margin-top: 43px; }
.pss-hero__btns .pss-btn { width: 196px; padding: 0; }

/* =========================================================
 * Ostoskori
 * ======================================================= */
.pss-wc { margin-top: 44px; font-size: 16px; }
.pss .pss-cart { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); column-gap: 80px; align-items: start; }
.pss .pss-cart__form { margin: 0; }
.pss .pss-cart__items { border-top: 1px solid var(--pss-moss); }
.pss .pss-cart__item { display: grid; grid-template-columns: 140px minmax(0, 1fr); column-gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--pss-moss); }
.pss .pss-cart__thumb a, .pss .pss-cart__thumb img { display: block; }
.pss .pss-cart__thumb img { width: 140px; height: auto; aspect-ratio: 413 / 400; object-fit: cover; background: transparent; }
.pss .pss-cart__thumb img.pss-cart__gift { object-fit: contain; }
.pss .pss-cart__top { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.pss .pss-cart__name { margin: 0; font-family: var(--pss-serif); font-size: 24px; line-height: 1.4; letter-spacing: -0.03em; }
.pss .pss-cart__name a { text-decoration: none; }
.pss .pss-cart__subtotal { font-size: 18px; white-space: nowrap; }
.pss .pss-cart__unit { margin-top: 4px !important; font-size: 14px; color: var(--pss-smoke); }
/* Tuotteen lisätiedot (lahjakortti: Arvo, Vastaanottaja, Lähetyspäivä, Viesti): jokainen omalla rivillään, otsikko lihavoituna */
.pss dl.variation { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 8px; row-gap: 3px; margin: 8px 0 0; font-size: 14px; line-height: 1.45; color: var(--pss-ink); }
.pss dl.variation dt, .pss dl.variation dd { float: none; clear: none; display: block; margin: 0; padding: 0; }
.pss dl.variation dt { font-weight: 600; }
.pss dl.variation dd { min-width: 0; overflow-wrap: anywhere; }
.pss dl.variation dd p { display: inline; margin: 0 !important; }
.pss .wc-item-meta { margin: 8px 0 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.45; }
.pss .wc-item-meta li { margin: 0 0 3px; }
.pss .wc-item-meta .wc-item-meta-label { font-weight: 600; }
.pss .wc-item-meta p { display: inline; margin: 0 !important; }
.pss .pss-cart__bottom { display: flex; align-items: center; justify-content: flex-start; gap: 10px; margin-top: 18px; }
.pss .quantity .qty {
	width: 72px; height: 43px; padding: 0 8px; text-align: center;
	border: 1px solid var(--pss-moss); border-radius: 4px; background: #FFFFFF;
	font-family: var(--pss-sans); font-size: 16px; color: var(--pss-ink);
}
/* Poista: roskakorikuvake heti määrän vieressä, sama korkeus kuin määräkentällä */
.pss .pss-cart__remove { display: flex; flex: 0 0 auto; }
.pss .pss-cart__remove a.remove,
.woocommerce .pss .pss-cart__remove a.remove {
	display: inline-flex; align-items: center; justify-content: center; width: 43px; height: 43px; padding: 0;
	border: 1px solid var(--pss-moss); border-radius: 4px; background: #FFFFFF !important;
	color: var(--pss-green) !important; font-size: 0; line-height: 1; text-decoration: none;
}
.pss .pss-cart__remove a.remove svg { display: block; width: 20px; height: 20px; }
.pss .pss-cart__remove a.remove:hover, .pss .pss-cart__remove a.remove:focus-visible { background: #F2F2EB !important; color: var(--pss-red) !important; }
.pss .pss-cart__actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 0 0; }
.pss .pss-coupon { display: flex; gap: 10px; flex-wrap: wrap; }
.pss .pss-coupon .input-text,
.pss .pss-withdraw input[type="text"], .pss .pss-withdraw input[type="email"] {
	height: 43px; width: 220px; padding: 0 14px;
	border: 1px solid var(--pss-moss); border-radius: 4px; background: #FFFFFF;
	font-family: var(--pss-sans); font-size: 16px; color: var(--pss-ink);
}
.pss .pss-cart__update { display: none; }
.no-js .pss .pss-cart__update { display: inline-flex; }

.pss .pss-cart__totals { width: 100% !important; float: none !important; margin: 0; padding: 0; }
.pss .cart_totals, .pss .woocommerce-checkout-review-order {
	width: 100% !important; float: none !important;
	padding: 44px; background: var(--pss-mist); border-radius: 11px;
}
.pss .cart_totals h2, .pss #order_review_heading {
	margin: 0 0 12px; font-family: var(--pss-serif); font-size: 24px; line-height: 1.4; letter-spacing: -0.03em; font-weight: 400;
}
.pss table.shop_table { width: 100%; margin: 0; border: 0 !important; border-collapse: collapse; border-radius: 0; font-size: 16px; }
.pss table.shop_table th, .pss table.shop_table td {
	padding: 12px 0; border: 0; border-top: 1px solid rgba(19, 50, 45, .15); background: none !important;
	font-weight: 400; text-align: left; vertical-align: top;
}
.pss table.shop_table tr:first-child th, .pss table.shop_table tr:first-child td { border-top: 0; }
.pss table.shop_table td { text-align: right; }
.pss table.shop_table .order-total th, .pss table.shop_table .order-total td { font-weight: 500; font-size: 18px; border-top: 1px solid var(--pss-green); }
.pss table.shop_table .order-total .includes_tax { display: block; font-weight: 400; font-size: 13px; color: var(--pss-smoke); }
.pss table.shop_table_responsive tr td::before { font-weight: 400; }
.pss .woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }
.pss .wc-proceed-to-checkout { padding: 20px 0 0 !important; }
.pss .wc-proceed-to-checkout a.checkout-button,
.pss #place_order,
.woocommerce .pss .wc-proceed-to-checkout a.checkout-button.button.alt,
.woocommerce .pss #place_order.button.alt {
	display: flex; align-items: center; justify-content: center; width: 100%; height: 52px; margin: 0; padding: 0 20px;
	background: var(--pss-green) !important; color: var(--pss-mist) !important; border: 0; border-radius: 4px;
	font-family: var(--pss-sans); font-weight: 500; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; text-transform: uppercase;
	transition: background-color .15s ease;
}
.pss .wc-proceed-to-checkout a.checkout-button:hover, .pss #place_order:hover { background: var(--pss-card) !important; }
.pss .cart-empty { margin-bottom: 24px; }
.pss .return-to-shop a.button, .woocommerce .pss .return-to-shop a.button {
	display: inline-flex; align-items: center; justify-content: center; height: 43px; padding: 0 34px;
	background: transparent; color: var(--pss-green); border: 1px solid var(--pss-green); border-radius: 4px;
	font-family: var(--pss-sans); font-weight: 500; font-size: 18px; text-transform: uppercase; letter-spacing: -0.03em;
}

/* =========================================================
 * Kassa (WooCommercen klassinen kassa)
 * ======================================================= */
.pss form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); column-gap: 80px; align-items: start; }
.pss form.checkout > * { grid-column: 1; }
.pss form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.pss form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
.pss form.checkout > div:not(#customer_details):not(.woocommerce-NoticeGroup):not(.col2-set) { grid-column: 2; grid-row: 1 / span 3; min-width: 0; }
.pss form.checkout #order_review_heading { grid-column: 2; grid-row: 1; padding: 44px 44px 0; margin: 0; background: var(--pss-mist); border-radius: 11px 11px 0 0; }
.pss form.checkout #order_review { grid-column: 2; grid-row: 2; padding-top: 0; border-radius: 0 0 11px 11px; }
.pss .col2-set { width: 100%; }
.pss .col2-set .col-1, .pss .col2-set .col-2 { float: none; width: 100%; max-width: none; padding: 0; }
.pss .col2-set .col-2 { margin-top: 24px; }
.pss .woocommerce-billing-fields h3, .pss .woocommerce-shipping-fields h3, .pss .woocommerce-additional-fields h3, .pss #ship-to-different-address {
	margin: 0 0 20px; font-family: var(--pss-serif); font-size: 24px; line-height: 1.4; letter-spacing: -0.03em; font-weight: 400;
}
.pss #ship-to-different-address label { font-family: var(--pss-sans); font-size: 18px; display: flex; gap: 10px; align-items: center; }
.pss .form-row { margin: 0 0 16px; padding: 0; }
.pss .form-row label { display: block; margin: 0 0 6px; font-size: 14px; line-height: 1.5; letter-spacing: -0.03em; text-transform: uppercase; color: var(--pss-ink); }
.pss .form-row label.checkbox, .pss .form-row label.woocommerce-form__label-for-checkbox { display: flex; gap: 10px; align-items: flex-start; text-transform: none; font-size: 16px; }
.pss .form-row .required { color: var(--pss-red); text-decoration: none; border: 0; }
.pss .form-row .optional { color: var(--pss-smoke); text-transform: none; }
.pss .form-row input.input-text, .pss .form-row textarea, .pss .form-row select, .pss .select2-container .select2-selection--single {
	width: 100%; height: 48px; padding: 0 14px; margin: 0;
	border: 1px solid var(--pss-moss); border-radius: 4px; background: #FFFFFF; box-shadow: none;
	font-family: var(--pss-sans); font-size: 16px; line-height: 1.5; color: var(--pss-ink);
}
.pss .form-row textarea { height: 120px; padding: 12px 14px; }
.pss .form-row input.input-text:focus, .pss .form-row textarea:focus, .pss .form-row select:focus { outline: 2px solid var(--pss-green); outline-offset: 0; border-color: var(--pss-green); }
.pss .form-row.woocommerce-invalid input.input-text { border-color: var(--pss-red); }
.pss .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding: 0; }
.pss .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.pss .form-row-first, .pss .form-row-last { width: calc(50% - 8px); }
.pss .pss-hidden-field { display: none !important; }
.pss .woocommerce-account-fields { margin-top: 8px; }
.pss .woocommerce-checkout-review-order { padding-top: 12px; }
.pss .woocommerce-checkout-review-order-table .product-name { text-align: left; }
.pss .woocommerce-checkout-review-order-table thead th { font-size: 12px; text-transform: uppercase; color: var(--pss-smoke); }
.pss .woocommerce-checkout #payment, .pss #payment { background: transparent !important; border-radius: 0; margin-top: 16px; }
.pss #payment ul.payment_methods { padding: 0 0 12px !important; margin: 0; border-bottom: 1px solid rgba(19, 50, 45, .15) !important; list-style: none; }
.pss #payment ul.payment_methods li { padding: 6px 0; font-size: 16px; }
.pss #payment div.payment_box { padding: 20px 24px; background: #FFFFFF !important; color: var(--pss-ink) !important; border-radius: 4px; font-size: 14px; }
.pss #payment div.payment_box::before { border-bottom-color: #FFFFFF !important; }
.pss #payment div.form-row.place-order { padding: 16px 0 0 !important; margin: 0; }
.pss .woocommerce-terms-and-conditions-wrapper { font-size: 14px; margin-bottom: 16px; }
.pss .woocommerce-privacy-policy-text p { font-size: 13px; color: var(--pss-smoke); margin-bottom: 12px; }
.pss .woocommerce-form-coupon-toggle .woocommerce-info, .pss .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: 16px; }
.pss form.checkout_coupon, .pss form.woocommerce-form-login { margin: 0 0 28px; padding: 32px; border: 1px solid var(--pss-bench); border-radius: 11px; }
.pss form.checkout_coupon .button, .pss form.woocommerce-form-login .button {
	height: 48px; padding: 0 22px; border: 1px solid var(--pss-green); border-radius: 4px; background: transparent; color: var(--pss-green);
	font-family: var(--pss-sans); font-weight: 500; font-size: 16px; text-transform: uppercase;
}

/* =========================================================
 * Tilausvahvistus
 * ======================================================= */
.pss-thanks .pss-crumb { padding-top: 50px; }
.pss-overview {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px;
	margin: 40px 0 0; padding: 20px 0; border-top: 1px solid var(--pss-moss); border-bottom: 1px solid var(--pss-moss);
}
.pss-overview dt { font-size: 12px; line-height: 1.5; letter-spacing: -0.03em; text-transform: uppercase; color: var(--pss-smoke); }
.pss-overview dd { margin: 4px 0 0; font-size: 18px; line-height: 1.5; }
.pss-tcards { margin-top: 56px; }
.pss-tcards__hint { margin-top: 8px !important; max-width: 640px; font-size: 16px; }
.pss-tcards__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 320px)); gap: 28px; margin-top: 28px; }
.pss-tcard { display: flex; flex-direction: column; align-items: center; padding: 40px 36px 36px; background: var(--pss-card); border-radius: 11px; color: #FFFFFF; text-align: center; }
.pss-tcard__head { align-self: stretch; text-align: left; }
.pss-tcard__label { display: block; font-size: 10px; line-height: 1.5; letter-spacing: 0.04em; color: var(--pss-gold); }
.pss-tcard__title { margin: 2px 0 0 !important; font-family: var(--pss-serif); font-size: 22px; line-height: 1.3; letter-spacing: -0.03em; color: #FFFFFF !important; }
.pss-tcard__qr { width: 200px; height: 200px; margin-top: 20px; padding: 10px; background: #FFFFFF; border: 1px solid var(--pss-qr-line); border-radius: 8px; }
.pss-tcard__qr svg { width: 100%; height: 100%; }
.pss-tcard__code { margin-top: 12px !important; font-family: var(--pss-num); font-weight: 700; font-size: 18px; letter-spacing: 0.06em; color: #FFFFFF; }
.pss-tcard__figs { display: flex; justify-content: center; gap: 32px; margin: 16px 0 0; }
.pss-tcard__figs dt { font-size: 10px; letter-spacing: 0.04em; color: var(--pss-gold); }
.pss-tcard__figs dd { margin: 2px 0 0; font-family: var(--pss-num); font-weight: 600; font-size: 14px; color: #FFFFFF; }
.pss-tcard__btn {
	display: inline-flex; align-items: center; justify-content: center; height: 40px; margin-top: 20px; padding: 0 22px;
	border: 1px solid var(--pss-peach); border-radius: 4px; color: var(--pss-peach) !important; text-decoration: none;
	font-weight: 500; font-size: 14px; text-transform: uppercase; letter-spacing: -0.03em;
}
.pss-tcard__btn:hover { background: var(--pss-peach); color: var(--pss-card) !important; }
.pss-thanks__btns { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }
.pss-withdraw-note { margin-top: 24px !important; font-size: 14px; color: var(--pss-smoke); }
.pss-withdraw-note a { color: var(--pss-green); text-decoration: underline; }
.pss-thanks__details { margin-top: 56px; max-width: 760px; }
.pss-thanks__details h2 { margin: 32px 0 12px; font-family: var(--pss-serif); font-size: 24px; line-height: 1.4; letter-spacing: -0.03em; }
.pss-thanks__details address { padding: 16px 0; border: 0; font-style: normal; font-size: 16px; line-height: 1.5; }
.pss-thanks__details .woocommerce-order-overview { display: none; }

/* =========================================================
 * Peruutus (Figma: D. Tilauksen peruutus verkossa)
 * ======================================================= */
.pss-withdraw { max-width: 640px; }
.pss-withdraw__form { margin-top: 32px; display: grid; gap: 16px; }
.pss-withdraw__form label { display: block; margin-bottom: 6px; font-size: 14px; text-transform: uppercase; }
.pss .pss-withdraw__form input[type="text"], .pss .pss-withdraw__form input[type="email"] { width: 100%; height: 48px; }
.pss-withdraw__meta { margin-top: 8px !important; font-size: 16px; color: var(--pss-smoke); }
.pss-witems { margin-top: 32px; border-top: 1px solid var(--pss-moss); }
.pss-witem { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 18px 0; border-bottom: 1px solid var(--pss-moss); }
.pss-witem input[type="checkbox"] { width: 20px; height: 20px; margin: 4px 0 0; accent-color: var(--pss-green); }
.pss-witem__name { font-family: var(--pss-serif); font-size: 22px; line-height: 1.3; }
.pss-witem__sub { margin-top: 2px !important; font-size: 14px; color: var(--pss-smoke); }
.pss-witem__amount { font-size: 18px; white-space: nowrap; }
.pss-witem.is-disabled { opacity: .55; }
.pss-wtotal { display: flex; justify-content: space-between; align-items: baseline; padding: 20px 0 0; font-size: 18px; }
.pss-wtotal strong { font-family: var(--pss-serif); font-weight: 400; font-size: 32px; }
.pss-withdraw__hint { margin-top: 8px !important; font-size: 14px; color: var(--pss-smoke); }
.pss-withdraw__actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-top: 32px; }
.pss-withdraw__actions .pss-link { font-size: 16px; text-decoration: underline; background: none; border: 0; padding: 0; cursor: pointer; color: var(--pss-green); font-family: var(--pss-sans); }

/* =========================================================
 * Tablet
 * ======================================================= */
@media (max-width: 1200px) {
	.pss-wrap { padding: 0 48px; }
	.pss-header__in { padding: 0 48px 0 52px; }
	.pss-nav a { width: 170px; }
	.pss-hero__in { padding-left: 32px; padding-right: 32px; }
	.pss-hero__row { grid-template-columns: minmax(0, 1fr) minmax(0, 460px); column-gap: 40px; }
	.pss .pss-cart, .pss form.checkout.woocommerce-checkout { column-gap: 48px; }
}

/* Header: mobile from 991 px (Figma mobiili 402 x 126) */
@media (max-width: 991px) {
	.pss-header__in { height: 126px; padding: 0 23px 0 25px; justify-content: space-between; }
	.pss-burger {
		display: flex; flex-direction: column; justify-content: space-between;
		width: 27px; height: 22px; padding: 0; margin: 0; border: 0; background: none; cursor: pointer;
	}
	.pss-burger span { display: block; width: 27px; height: 2px; background: #FFFFFF; transition: transform .2s ease, opacity .2s ease; }
	.pss-header.is-open .pss-burger span:nth-child(1) { transform: translateY(10px) rotate(45deg); }
	.pss-header.is-open .pss-burger span:nth-child(2) { opacity: 0; }
	.pss-header.is-open .pss-burger span:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }
	.pss-logo { position: absolute; left: 50%; top: 26px; margin: 0; width: 56.5px; height: 59.3px; transform: translateX(-50%); }
	.pss-icons { margin-left: 0; gap: 20px; transform: none; }
	.pss-nav {
		display: none; position: absolute; left: 0; right: 0; top: 126px; z-index: 70;
		flex-direction: column; margin: 0; padding: 8px 25px 24px; transform: none;
		background: var(--pss-green); border-top: 0.5px solid var(--pss-line);
	}
	.pss-header.is-open .pss-nav { display: flex; }
	.pss-nav a { width: auto; padding: 16px 0; text-align: left; border-bottom: 0.5px solid rgba(255, 255, 255, .2); }
	.pss-nav a + a { margin-left: 0; }
}

/* =========================================================
 * Mobile (Figma: Tuotesivu 402)
 * ======================================================= */
@media (max-width: 767px) {
	.pss-main { font-size: 16px; padding-bottom: 62px; }
	.pss-main--shop { padding-bottom: 80px; }
	.pss-wrap { padding: 0 22px; }
	.pss-crumb { padding-top: 48px; }
	.pss-h1 { margin-top: 16px; font-size: 32px; }
	.pss-h2 { font-size: 26px; }

	.pss-product { padding-left: 0; }
	.pss-product__grid { grid-template-columns: minmax(0, 1fr); margin-top: 16px; }
	.pss-gallery { aspect-ratio: 357 / 334; }
	.pss-gallery .pss-dots { bottom: 11px; }
	.pss-info { padding-top: 23px; }
	.pss-title { font-size: 32px; }
	.pss-price { margin-top: 16px !important; font-size: 24px; }
	.pss-desc { margin-top: 16px; font-size: 16px; }
	.pss-buy { margin-top: 24px; }
	.pss-buy .pss-btn { width: 100%; }
	.pss-accs { margin: 34px 3px 0; }
	.pss-acc summary { padding: 14px 3px 13px 0; }
	.pss-acc summary i { flex-basis: 12px; }
	.pss-acc summary i svg { width: 12px; height: 12px; }

	.pss-products--more { margin-top: 73px; }
	.pss-products__title { font-size: 32px; }
	.pss-products__grid { grid-template-columns: minmax(0, 1fr); row-gap: 48px; margin-top: 32px; }
	.pss-card__row { margin-top: 18px; padding-bottom: 21px; }
	.pss-card__teaser { margin-top: 15px !important; }
	.pss-products--carousel .pss-products__grid {
		display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
		scrollbar-width: none; -ms-overflow-style: none;
	}
	.pss-products--carousel .pss-products__grid::-webkit-scrollbar { display: none; }
	.pss-products--carousel .pss-card { flex: 0 0 calc(100% - 6px); scroll-snap-align: start; }
	.pss-products--carousel .pss-card__media { aspect-ratio: 352 / 341; }
	.pss-products--carousel .pss-products__nav { display: flex; justify-content: center; gap: 45px; margin-top: 21px; }
	.pss-arrow { display: block; width: 25px; height: 23px; padding: 0; border: 0; background: none; cursor: pointer; }
	.pss-arrow svg { width: 25px; height: 23px; }
	.pss-arrow[disabled] { opacity: .3; cursor: default; }

	.pss-hero__in { padding: 32px 22px 48px; }
	.pss-hero__media img, .pss-hero__img { aspect-ratio: 16 / 10; }
	.pss-hero__info { grid-template-columns: 1fr; row-gap: 4px; margin-top: 20px; font-size: 14px; }
	.pss-hero__info > * { justify-self: start !important; text-align: left; }
	.pss-hero__row { grid-template-columns: minmax(0, 1fr); margin-top: 40px; }
	.pss-hero__title { font-size: 40px; }
	.pss-hero__side { padding-top: 16px; }
	.pss-hero__text { font-size: 16px; }
	.pss-hero__btns { gap: 12px; margin-top: 28px; }
	.pss-hero__btns .pss-btn { flex: 1 1 0; width: auto; min-width: 0; font-size: 16px; }
	.pss-wrap--shop { padding-top: 56px; }
	.pss-products--center .pss-products__title { font-size: 40px; }
	.pss-products--center .pss-products__text { margin-top: 24px; font-size: 16px; }
	.pss-products--center .pss-products__grid { margin-top: 48px; }

	.pss-wc { margin-top: 28px; }
	.pss .pss-cart { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
	.pss .pss-cart__item { grid-template-columns: 96px minmax(0, 1fr); column-gap: 16px; padding: 18px 0; }
	.pss .pss-cart__thumb img { width: 96px; }
	.pss .pss-cart__name { font-size: 20px; }
	.pss .pss-cart__subtotal { font-size: 16px; }
	.pss .pss-cart__actions { flex-direction: column; align-items: stretch; }
	.pss .pss-coupon .input-text { flex: 1 1 auto; width: auto; }
	.pss .cart_totals, .pss .woocommerce-checkout-review-order { padding: 32px 24px; }
	.pss form.checkout.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
	.pss form.checkout #customer_details, .pss form.checkout #order_review_heading, .pss form.checkout #order_review, .pss form.checkout > div:not(#customer_details) { grid-column: 1; grid-row: auto; }
	.pss form.checkout #order_review_heading { margin-top: 32px; padding: 32px 24px 0; }
	.pss .form-row-first, .pss .form-row-last { width: 100%; float: none; }

	.pss-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pss-tcards__grid { grid-template-columns: minmax(0, 1fr); }
	.pss-thanks__btns .pss-btn { flex: 1 1 100%; }
	.pss-witem__name { font-size: 18px; }
	.pss-wtotal strong { font-size: 26px; }
}

/* =========================================================
 * 0.3.4: määräkenttä, mobiilin ostoskori ja kassa
 * ======================================================= */
.pss .quantity {
	display: inline-flex; align-items: stretch; height: 43px; margin: 0;
	border: 1px solid var(--pss-moss); border-radius: 4px; background: #FFFFFF; overflow: hidden;
}
.pss .quantity .qty { order: 2; width: 46px; height: 41px; padding: 0; border: 0; border-radius: 0; text-align: center; -moz-appearance: textfield; }
.pss .quantity .qty::-webkit-outer-spin-button, .pss .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pss .quantity .action { display: flex; align-items: center; justify-content: center; width: 38px; color: var(--pss-green); cursor: pointer; background: none; }
.pss .quantity .action.minus { order: 1; }
.pss .quantity .action.plus { order: 3; }
.pss .quantity .action svg { width: 16px; height: 16px; }
.pss .quantity .action:hover { background: #F2F2EB; }
@media (max-width: 767px) {
	.pss .pss-cart__item { grid-template-columns: 88px minmax(0, 1fr); column-gap: 14px; }
	.pss .pss-cart__thumb img { width: 88px; }
	.pss .pss-cart__top { flex-wrap: wrap; row-gap: 2px; }
	.pss .pss-cart__name { flex: 1 1 100%; }
	.pss .pss-cart__subtotal { order: 3; }
	.pss .pss-cart__bottom { flex-wrap: nowrap; gap: 10px; justify-content: flex-start; margin-top: 12px; }
	.pss .pss-coupon { flex-wrap: nowrap; }
	.pss .pss-coupon .pss-btn { flex: 0 0 auto; }
	.pss form.checkout > div:not(#customer_details):not(.woocommerce-NoticeGroup):not(.col2-set) { grid-column: 1; grid-row: auto; margin-top: 32px; }
	.pss form.checkout #customer_details { grid-row: auto; }
	.pss form.checkout #order_review_heading { margin-top: 0; }
	.pss .woocommerce-form-coupon-toggle .woocommerce-info { flex-direction: column; align-items: flex-start; }
}

/* =========================================================
 * Kirjautuminen, tilin luonti, salasanan palautus (ei Figmassa: Oma tilin tyylillä)
 * ======================================================= */
.pss-main--account { padding-bottom: 120px; }
.pss-wc--account { margin-top: 0; }
.pss-auth { display: grid; grid-template-columns: minmax(0, 600px); gap: 40px; padding-top: 64px; }
.pss-auth--two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); max-width: 1180px; gap: 48px; align-items: start; }
.pss-auth__box { min-width: 0; padding: 52px 56px; border: 1px solid var(--pss-bench); border-radius: 11px; background: #FFFFFF; }
.pss-auth__box .pss-h1 { margin-top: 0; }
.pss-auth__box--mist { padding: 52px 56px; background: var(--pss-mist); border-color: transparent; border-radius: 11px; }
.pss-auth__box--mist .pss-h2 { font-size: 32px; }
.pss-auth__lead { margin-top: 12px !important; font-size: 16px; line-height: 1.5; max-width: 480px; }
/* Lahjakortin vastaanottaja: Luo tili -laatikko ensin */
/* Kirjautumislomake Oma tili -sivulla ilman kassan laatikkoa (laatikko on jo ympärillä) */
.pss .pss-auth form.woocommerce-form-login { margin: 28px 0 0; padding: 0; border: 0; border-radius: 0; }
.pss-auth--claim .pss-auth__box--mist { order: -1; }
.pss-auth__k { margin: 0 0 8px !important; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--pss-smoke); }
.pss-form__desc { display: block; margin-top: 6px; font-size: 13px; line-height: 1.4; color: var(--pss-smoke); }
.pss-auth .optional { color: var(--pss-smoke); font-weight: 400; }
/* Tilausvahvistus: lahjaksi lähetetyt kortit (ei QR-koodia ostajalle) */
.pss-tgifts { margin-top: 56px; max-width: 640px; }
.pss-tgifts__list { margin: 24px 0 0; padding: 0; list-style: none; display: grid; gap: 16px; }
.pss-tgift { display: flex; flex-direction: column; gap: 4px; padding: 28px 32px; border-radius: 11px; background: var(--pss-mist); font-size: 16px; line-height: 1.5; }
.pss-tgift__title { margin-bottom: 4px; font-family: var(--pss-serif); font-weight: 400; font-size: 22px; line-height: 1.3; }
.pss-tgift__row b { font-weight: 600; }
.pss-tgifts__hint { margin-top: 14px !important; font-size: 14px; color: var(--pss-smoke); }
@media (max-width: 767px) { .pss-tgift { padding: 22px 22px; } }
.pss .pss-form { margin: 28px 0 0; padding: 0; border: 0; border-radius: 0; }
.pss .pss-form .form-row { float: none; width: 100%; margin: 0 0 16px; padding: 0; }
.pss .pss-form .form-row input.input-text { height: 52px; }
.pss .pss-form__two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
@media (max-width: 480px) { .pss .pss-form__two { grid-template-columns: 1fr; } }
.pss .pss-form__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pss .pss-form__row label { display: inline-flex !important; align-items: center; gap: 8px; margin: 0 !important; text-transform: none !important; font-size: 15px !important; }
.pss .pss-form input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--pss-green); }
.pss .pss-link { color: var(--pss-green); font-size: 15px; text-decoration: underline; text-underline-offset: 3px; }
.pss .pss-btn--block { display: flex; width: 100%; height: 52px; margin-top: 8px; }
.pss .pss-auth__back { margin-top: 20px !important; }
.pss .woocommerce-privacy-policy-text p { font-size: 13px; color: var(--pss-smoke); }
.pss .woocommerce-password-strength { margin-top: 6px; padding: 6px 10px; border-radius: 4px; font-size: 13px; background: #F2F2EB !important; color: var(--pss-green) !important; border: 0 !important; }
.pss .woocommerce-password-strength.bad, .pss .woocommerce-password-strength.short { color: var(--pss-red) !important; }
.pss .woocommerce-password-hint { display: block; margin-top: 6px; font-size: 13px; color: var(--pss-smoke); }
.pss .show-password-input { top: 50% !important; transform: translateY(-50%); right: 12px !important; }
.pss .password-input { display: block; position: relative; }
@media (max-width: 767px) {
	.pss-auth, .pss-auth--two { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 32px; }
	.pss-auth__box, .pss-auth__box--mist { padding: 36px 24px; }
	.pss-auth__box--mist .pss-h2 { font-size: 26px; }
}

.pss-tcard__link { margin-top: 14px; color: var(--pss-peach) !important; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }

/* =========================================================
 * 0.5: kielivalitsin (FI / EN) headerissa
 * ======================================================= */
.pss-lang { display: flex; align-items: center; gap: 2px; margin-left: 26px; transform: translateY(4px); font-family: var(--pss-sans); font-weight: 500; font-size: 14px; letter-spacing: .02em; }
.pss-lang a { display: inline-block; padding: 4px 6px; color: rgba(255, 248, 235, .6); text-decoration: none; }
.pss-lang a:hover { color: var(--pss-peach); }
/* Straight underline only: no rounded or upturned ends. */
.pss-lang a.is-on { color: var(--pss-mist); text-decoration: underline; text-decoration-color: var(--pss-peach); text-decoration-thickness: 1px; text-underline-offset: 6px; }
/* Mobile: only the other language is shown, so the switcher fits between the logo and the icons. */
@media (max-width: 991px) {
	.pss-lang { margin: 0 -6px 0 0; transform: none; }
	.pss-lang a.is-on { display: none; }
	.pss-lang a { padding: 6px; color: var(--pss-mist); }
}

/* =========================================================
 * 0.5: markkinointiviestien peruutussivu (Figma: Peru tilaus -sivu)
 * ======================================================= */
.pss-unsub { background: var(--pss-mist); color: var(--pss-green); }
.pss-unsub__in { max-width: 1440px; margin: 0 auto; padding: 120px 160px 140px; display: grid; grid-template-columns: minmax(0, 540px) minmax(0, 520px); gap: 96px; align-items: center; justify-content: space-between; }
.pss-unsub__kicker { margin: 0 0 6px; font-family: 'La Belle Aurore', cursive; font-size: 34px; line-height: 1.3; color: var(--pss-smoke); }
.pss-unsub__title { margin: 0 0 20px; font-family: var(--pss-serif); font-weight: 400; font-size: 56px; line-height: 1.15; letter-spacing: -0.03em; }
.pss-unsub__lead { margin: 0 0 14px; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; color: var(--pss-ink); }
.pss-unsub__lead strong { font-weight: 500; }
.pss-unsub__note { margin: 0 0 22px; font-size: 16px; line-height: 1.5; color: var(--pss-smoke); }
.pss-unsub__box { margin: 0 0 22px; padding: 36px 40px 38px; border: 1px solid var(--pss-qr-line); border-radius: 11px; background: #F2EDE2; }
.pss-unsub__h2 { margin: 0 0 8px; font-family: var(--pss-serif); font-weight: 400; font-size: 22px; line-height: 1.3; }
.pss-unsub__box p { margin: 0 0 16px; font-size: 15px; line-height: 1.5; color: var(--pss-smoke); }
.pss-unsub .pss-btn--dark { min-width: 0; padding: 0 26px; font-size: 16px; }
.pss-unsub__links { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.pss-unsub__lead + .pss-unsub__links { margin-top: 30px; }
.pss-unsub__home { font-weight: 500; font-size: 15px; text-transform: uppercase; color: var(--pss-green); }
.pss-unsub__media img { display: block; width: 100%; height: auto; aspect-ratio: 520 / 640; object-fit: cover; border-radius: 11px; }
@media (max-width: 1200px) { .pss-unsub__in { padding: 80px 40px 100px; gap: 48px; } }
@media (max-width: 767px) {
	.pss-unsub__in { display: flex; flex-direction: column-reverse; padding: 0 0 56px; gap: 36px; }
	.pss-unsub__media { width: 100%; }
	.pss-unsub__media img { aspect-ratio: 402 / 260; border-radius: 0; }
	.pss-unsub__text { padding: 0 24px; }
	.pss-unsub__kicker { font-size: 26px; }
	.pss-unsub__title { font-size: 36px; }
	.pss-unsub__lead { font-size: 16px; }
	.pss-unsub__links { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* =========================================================
 * 0.7: kassa, uusi asiakas ja palaava asiakas, suostumukset
 * ======================================================= */
.pss-returning { margin: 0 0 20px; }
.pss-returning p { margin: 0 !important; padding: 22px 32px; border-radius: 11px; background: var(--pss-mist); font-size: 16px; line-height: 1.5; }
.pss-returning span { color: var(--pss-smoke); }
.pss-returning a { margin-left: 6px; color: var(--pss-green); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.pss-newcust { margin: 0 0 36px; padding: 36px 40px; border: 1px solid var(--pss-bench); border-radius: 11px; background: #FFFFFF; }
.pss-newcust__k { margin: 0 0 6px !important; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--pss-smoke); }
.pss-newcust__title { margin: 0 0 10px; font-family: var(--pss-serif); font-size: 28px; line-height: 1.25; letter-spacing: -0.03em; }
.pss-newcust__text { margin: 0 !important; max-width: 560px; font-size: 16px; line-height: 1.55; }
/* 0.7.2: salasana jatkaa laskutustietoja samassa osiossa, suostumukset omassa laatikossaan */
.pss .woocommerce-account-fields { margin-top: 0; padding: 0; border-radius: 0; background: none; }
.pss .pss-account-fields .create-account { margin-top: 0; }
.pss-billing__lead { margin: -4px 0 22px !important; max-width: 560px; font-size: 16px; line-height: 1.55; color: var(--pss-ink); }
.pss .woocommerce-account-fields .description { display: block; margin-top: 6px; font-size: 13px; color: var(--pss-smoke); }
.pss-consents { margin-top: 24px; padding: 28px 32px; border-radius: 11px; background: var(--pss-mist); }
.pss-consents .form-row { margin-bottom: 12px; }
.pss-consents__note { margin: 4px 0 0 !important; font-size: 13px; line-height: 1.5; color: var(--pss-smoke); }
.pss .pss-consent label, .pss .pss-consent label span { font-weight: 400; font-size: 15px; line-height: 1.5; }
.pss .form-row.pss-consent label { display: block; position: relative; padding-left: 30px; }
.pss .form-row.pss-consent label input[type="checkbox"] { position: absolute; left: 0; top: 3px; margin: 0; }
.pss .pss-consent .optional { color: var(--pss-smoke); white-space: nowrap; }
.pss .pss-consent a { color: var(--pss-green); text-decoration: underline; text-underline-offset: 3px; }
.pss .pss-consent abbr.required { text-decoration: none; border: 0; color: var(--pss-red); }
@media (max-width: 767px) {
	.pss-newcust { padding: 28px 24px; margin-bottom: 28px; }
	.pss-newcust__title { font-size: 24px; }
	.pss-consents { padding: 22px 20px; }
	.pss-returning p { padding: 18px 22px; }
	.pss .woocommerce-message, .pss .woocommerce-info, .pss .woocommerce-error, .pss-note { padding: 18px 22px; }
	.pss-tcard { padding: 32px 28px 28px; }
	.pss form.checkout_coupon, .pss form.woocommerce-form-login { padding: 24px 20px; }
}
