/* ANSWERS — .db-answers   (faq = 1)
   Prototype .fq-answers: a full-bleed sand heading band over a two-column body —
   a 480px rail (category filter + price note) beside the accordion.

   Not a variant of .db-faq: that is a title beside a 600px list with no heading
   band and no rail. Measured target at 1920: head full-bleed with a 1px rule,
   body wrap 1360 at 273, rail [273,480], accordion [873,760].

   The outer group is layout:default (flow), NOT constrained, because the heading
   band's rule has to span the whole viewport while its text stays on the page
   column. Each child therefore re-applies the wrap itself. */
.db-answers { background: var(--sand); }

.db-answers__head { padding-block: 16px; border-bottom: 1px solid var(--line2); }
/* The band's heading is CENTRED at both widths (368:3387 / 368:5592). */
.db-answers__heading { text-align: center; }
.db-answers .db-answers__head-inner,
.db-answers .db-answers__body {
	width: 100%;
	max-width: var(--maxw);
	margin-inline: auto;
	padding-inline: var(--pad);
}
.db-answers__heading { font-size: 1.5rem; line-height: 32px; }

.db-answers .db-answers__body { display: flex; flex-direction: column; gap: 40px; padding-block: 40px; }
.db-answers .db-answers__rail { display: flex; flex-direction: column; gap: 40px; }

/* Category filter. Without JS every group stays visible, which is why the
   groups are not hidden in CSS — assets/js/faq-cats.js opts in by adding
   is-filtering to the section. */
.db-answers .db-answers__cats { display: flex; flex-direction: column; gap: 6px; }
/* ⚠️ No rule under each category and no vertical padding — 368:3391 is a plain
   column with a 12px gap (6px on mobile), and the state is carried by COLOUR:
   the current one is ink, the rest rgba(37,32,30,0.32). Gold is the hover, not
   the selected state, and the borders were the prototype's. */
.db-answers__cat {
	display: block;
	padding: 0;
	border: 0;
	font-family: var(--font-display);
	text-transform: uppercase;
	font-size: 20px;
	line-height: 24px;
	color: rgba(37, 32, 30, 0.32);
	background: none;
	border-left: 0; border-right: 0; border-top: 0;
	text-align: left;
	width: 100%;
	cursor: pointer;
	transition: color .2s ease;
}
.db-answers__cat:hover { color: var(--gold); }
.db-answers__cat.is-active { color: var(--ink); }

.db-answers__note { font-size: 14px; line-height: 22px; color: var(--muted); margin: 0; }
.db-answers__note-star { color: var(--gold); }

.db-answers__acc { display: flex; flex-direction: column; gap: 0; min-width: 0; }

/* Each question is its own 24px-padded row closed by a hairline (368:3399), not
   a gap between free-floating details elements. */
/* ⚠️ faq.css draws the same item with a rule ABOVE it and no top padding on the
   first one (`.db-faq__item:first-child`, 0,2,0). Here the frame closes each row
   with a rule below and pads all four sides equally, including the first — so
   both halves of that pair have to be undone, not just the border. */
.db-answers .db-faq__item,
.db-answers .db-faq__item:first-child {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-block: 24px;
	border-top: none;
	border-bottom: 1px solid var(--line);
}
.db-answers .db-faq__item summary { font-family: var(--font-display); text-transform: uppercase; font-size: 18px; line-height: 28px; }
.db-answers.is-filtering .db-answers__group { display: none; }
.db-answers.is-filtering .db-answers__group.is-active { display: flex; }
.db-answers__group { display: flex; flex-direction: column; gap: 20px; }

@media (min-width: 861px) {
	.db-answers__head { padding-block: 60px; }
	.db-answers__heading { font-size: 5rem; line-height: 88px; }
	.db-answers .db-answers__cats { gap: 12px; }
	.db-answers__cat { font-size: 36px; line-height: 40px; }
	/* The note is a narrow column under the categories, not the rail's full width. */
	.db-answers__note { max-width: 379px; }
	.db-answers .db-faq__item summary { font-size: 24px; line-height: 32px; }
	.db-answers .db-answers__body {
		flex-direction: row;
		align-items: flex-start;
		gap: 120px;
		padding-block: 60px 120px;
	}
	.db-answers .db-answers__rail {
		flex: 0 0 480px;
		align-self: stretch;
		justify-content: space-between;
		gap: 60px;
	}
	.db-answers__acc { flex: 1 1 auto; }
}

/* 480px of rail plus the accordion is too tight below ~1200px, matching the
   prototype's own bracket. */
@media (min-width: 861px) and (max-width: 1199.98px) {
	.db-answers .db-answers__body {
		flex-direction: column;
		gap: 48px;
		/* align-items:flex-start from the desktop rule would survive into this
		   range, and in a column flex container that shrink-wraps both children
		   to their content width — the accordion came out 494px instead of the
		   full 905px. The prototype only escapes this because its answer text is
		   long enough to fill the row; stretch makes it intentional. */
		align-items: stretch;
	}
	.db-answers .db-answers__rail { flex: 0 0 auto; }
}
