/* Usein kysytyt kysymykset – kassa ja [ysv_faq]. Säännöt rajattu .ysv-faq-luokkaan. */

.ysv-faq {
	--faq-card: #fffaf7;
	--faq-line: #eadcd4;
	--faq-text: #181c1f;
	--faq-muted: #5d5753;
	--faq-accent: #30817e;
	--faq-radius: 12px;
	--faq-heading: NordiqueProBold, sans-serif;
	--faq-body: sofia-pro, sans-serif;
	margin: 64px 0 24px;
	color: var(--faq-text);
	font-family: var(--faq-body);
	text-align: center;
}
.ysv-faq .ysv-faq__eyebrow { margin: 0 0 8px; font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--faq-accent); }
.ysv-faq .ysv-faq__title { margin: 0 auto 10px; max-width: 640px; font-family: var(--faq-heading); font-size: 34px; line-height: 1.1; text-transform: lowercase; color: var(--faq-text); }
.ysv-faq .ysv-faq__lead { margin: 0 auto 24px; max-width: 560px; font-size: 16px; color: var(--faq-muted); }

.ysv-faq .ysv-faq__filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 28px; }
.ysv-faq .ysv-faq__filter {
	margin: 0;
	padding: 8px 16px;
	min-height: 0;
	border: 1px solid var(--faq-line);
	border-radius: 999px;
	background: var(--faq-card);
	color: var(--faq-text);
	font-family: var(--faq-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: none;
	cursor: pointer;
}
.ysv-faq .ysv-faq__filter:hover,
.ysv-faq .ysv-faq__filter:focus { border-color: var(--faq-accent); background: var(--faq-card); color: var(--faq-text); box-shadow: none; }
.ysv-faq .ysv-faq__filter[aria-pressed="true"] { border-color: var(--faq-accent); background: var(--faq-accent); color: #fff; }
.ysv-faq .ysv-faq__filter:focus-visible { outline: 2px solid var(--faq-accent); outline-offset: 2px; }

.ysv-faq .ysv-faq__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: start; text-align: left; }
.ysv-faq .ysv-faq__item { margin: 0; border: 1px solid var(--faq-line); border-radius: var(--faq-radius); background: var(--faq-card); }
.ysv-faq .ysv-faq__item[hidden] { display: none; }
.ysv-faq .ysv-faq__item summary {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 18px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--faq-text);
	list-style: none;
	cursor: pointer;
}
.ysv-faq .ysv-faq__item summary::-webkit-details-marker { display: none; }
.ysv-faq .ysv-faq__item summary::after {
	content: "";
	flex: 0 0 8px;
	width: 8px;
	height: 8px;
	margin-top: 5px;
	border-right: 2px solid var(--faq-muted);
	border-bottom: 2px solid var(--faq-muted);
	transform: rotate(45deg);
	transition: transform .15s;
}
.ysv-faq .ysv-faq__item[open] summary::after { transform: rotate(-135deg); margin-top: 9px; }
.ysv-faq .ysv-faq__item summary:focus-visible { outline: 2px solid var(--faq-accent); outline-offset: -2px; border-radius: var(--faq-radius); }
.ysv-faq .ysv-faq__answer { padding: 0 18px 16px; }
.ysv-faq .ysv-faq__answer p { margin: 0 0 10px; font-size: 14px; line-height: 1.55; color: var(--faq-muted); }
.ysv-faq .ysv-faq__answer p:last-child { margin-bottom: 0; }
.ysv-faq .ysv-faq__answer strong { color: var(--faq-text); }
.ysv-faq a { color: var(--faq-accent); text-decoration: underline; }

.ysv-faq .ysv-faq__contact { margin: 28px 0 0; font-size: 14px; color: var(--faq-muted); }

@media (max-width: 849px) {
	.ysv-faq { margin-top: 44px; }
	.ysv-faq .ysv-faq__title { font-size: 28px; }
	.ysv-faq .ysv-faq__grid { grid-template-columns: minmax(0, 1fr); }
	.ysv-faq .ysv-faq__filters { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; margin-left: -4px; margin-right: -4px; padding: 0 4px 4px; }
	.ysv-faq .ysv-faq__filter { flex: 0 0 auto; }
}
