/* UQ / FAQ */
.uq-faq{max-width:780px;margin:0 auto;border-top:1px solid var(--uq-line-strong)}
.uq-faq details{border-bottom:var(--uq-dash)}
.uq-faq summary{padding:22px 52px 22px 2px;font-family:var(--uq-font-display);font-weight:600;font-size:1.06rem;cursor:pointer;list-style:none;position:relative;user-select:none}
.uq-faq summary::-webkit-details-marker{display:none}
.uq-faq summary::before{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-54%);font-family:var(--uq-font-mono);font-size:1.25rem;color:var(--uq-brown);transition:transform .34s cubic-bezier(.4,0,.2,1)}
.uq-faq details.is-open summary::before{transform:translateY(-54%) rotate(45deg)}

/* Open/close animates grid-template-rows (0fr->1fr) instead of height: no
   offsetHeight probe, no per-frame full-document reflow. `contain` keeps the
   reflow inside this subtree so a long page stays smooth. */
.uq-faq details > .uq-faq-a{
	display:grid;
	grid-template-rows:0fr;
	opacity:0;
	contain:layout paint;
	transition:grid-template-rows .34s cubic-bezier(.4,0,.2,1),opacity .22s linear;
}
.uq-faq details.is-open > .uq-faq-a{grid-template-rows:1fr;opacity:1}
/* Horizontal padding only: vertical padding cannot compress, so it would floor
   the collapsed row above 0 and make the close snap at the end. Bottom spacing
   rides on a margin instead, which the clip swallows. */
.uq-faq-a-in{overflow:hidden;min-height:0;padding:0 40px 0 2px;font-size:.94rem;color:var(--uq-ink-soft)}
.uq-faq-a-in p{margin:0 0 .7em}
.uq-faq-a-in > :last-child{margin-bottom:24px}

@media(prefers-reduced-motion:reduce){
	.uq-faq details > .uq-faq-a,
	.uq-faq summary::before{transition-duration:.01ms}
}
