/*
 * CashQuest patterns: sections, rows, cards, grids, steps, split layouts.
 * Token-based only (variables from theme.json). Mobile-first.
 */

/* ---------- Sections ---------- */
.cq-section { padding-block: var(--wp--preset--spacing--section); }
.cq-section--tight { padding-block: var(--wp--preset--spacing--section-sm); }
.cq-section--ruled { border-top: 1px solid var(--wp--preset--color--gray-200); }
.cq-section.cq-section--ruled.has-gray-800-background-color { border-top: 0; }
.cq-stack > * + * { margin-block-start: var(--wp--preset--spacing--16); }
.cq-section-head { max-width: 40rem; margin-bottom: var(--wp--preset--spacing--10); }
.cq-section-head > * { margin-block: 0 !important; }
.cq-section-head > * + * { margin-block-start: var(--wp--preset--spacing--2) !important; }
.cq-ruled-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--wp--preset--spacing--2) var(--wp--preset--spacing--6); margin-bottom: var(--wp--preset--spacing--8); padding-bottom: var(--wp--preset--spacing--4); border-bottom: 1px solid var(--wp--preset--color--gray-300); }
.cq-ruled-head > * { margin: 0; }

/* ---------- Type helpers ---------- */
.cq-eyebrow { margin: 0 0 var(--wp--preset--spacing--3); font-size: var(--wp--preset--font-size--caption); font-weight: 600; letter-spacing: 0.08em; line-height: 1.4; text-transform: uppercase; color: var(--wp--preset--color--red-700); }
.cq-eyebrow--line { display: flex; align-items: center; gap: 10px; color: var(--wp--preset--color--gold); }
.cq-eyebrow--line::before { content: ""; width: 24px; height: 2px; background: currentColor; }
.cq-kicker { margin: 0 0 var(--wp--preset--spacing--2); font-size: var(--wp--preset--font-size--caption); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.cq-h2 { margin: 0 0 var(--wp--preset--spacing--5); max-width: 22ch; }
.cq-split-head .cq-h2, .cq-section-head .cq-h2 { max-width: none; }
.cq-h3 { margin: 0; font-size: var(--wp--preset--font-size--heading-sm); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; }
.cq-h1 { margin: var(--wp--preset--spacing--3) 0 var(--wp--preset--spacing--4); max-width: 18ch; }
.cq-display { margin: 0 0 var(--wp--preset--spacing--5); max-width: 12ch; line-height: 1.04; letter-spacing: -0.03em; }
.cq-lede { margin: 0 0 var(--wp--preset--spacing--6); font-size: clamp(1rem, 0.94rem + 0.3vw, 1.125rem); line-height: 1.65; max-width: 38rem; }

/* ---------- Layout helpers ---------- */
.cq-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--10); align-items: start; }
.cq-split__text > :last-child { margin-bottom: 0; }
.cq-split-head { display: grid; gap: var(--wp--preset--spacing--4); align-items: end; margin-bottom: var(--wp--preset--spacing--10); }
.cq-split-head__text > *:last-child { margin-bottom: 0; }
.cq-split-head__aside { margin: 0; max-width: 28rem; }
.cq-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--6); }
.cq-grid > * { margin-block: 0 !important; }
.cq-actions { margin-top: var(--wp--preset--spacing--8); }
@media (min-width: 640px) {
	.cq-grid--2, .cq-grid--3, .cq-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
	.cq-split { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 7vw, 6rem); }
	.cq-split--text-first { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
	.cq-split--cta { align-items: center; grid-template-columns: minmax(0, 1fr) auto; }
	.cq-split-head { grid-template-columns: minmax(0, 1fr) minmax(0, 28rem); }
	.cq-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
	.cq-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- Rows (icon + title + text, ruled) ---------- */
.cq-rows { display: block; }
.cq-rows.cq-grid { display: grid; }
.cq-row { display: flex; align-items: flex-start; gap: var(--wp--preset--spacing--4); margin: 0; padding: var(--wp--preset--spacing--4) 0; border-top: 1px solid var(--wp--preset--color--gray-200); }
.cq-rows:not(.cq-grid) > .cq-row:last-child { border-bottom: 1px solid var(--wp--preset--color--gray-200); }
.cq-rows--dark .cq-row { border-color: var(--wp--preset--color--gray-600); }
.cq-rows--dark.cq-grid { gap: 0 var(--wp--preset--spacing--6); }
.cq-rows--compact .cq-row { padding: var(--wp--preset--spacing--3) 0; }
.cq-rows--compact:not(.cq-grid) > .cq-row:last-child { border-bottom: 0; }
.cq-row .cq-ico { margin-top: 2px; }
.cq-row__text { flex: 1; min-width: 0; }
.cq-row__text > * { margin: 0; }
.cq-row__title { font-size: var(--wp--preset--font-size--base); font-weight: 600; line-height: 1.4; }
.cq-row__sub { margin-top: 0.125rem !important; font-size: 0.9375rem; line-height: 1.5; }
.cq-row--num { align-items: center; }
.cq-badge-num { display: grid; place-items: center; flex: none; width: 32px; height: 32px; margin: 0; border-radius: 50%; background: var(--wp--preset--color--red-50); color: var(--wp--preset--color--red-700); font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.cq-point { display: flex; align-items: center; gap: var(--wp--preset--spacing--2); margin: 0; }
.cq-point > p { margin: 0; }
.cq-point--dark { align-items: flex-start; }
.cq-checks { display: grid; gap: var(--wp--preset--spacing--3); margin-top: var(--wp--preset--spacing--6); }
.cq-trust-inline { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--4) var(--wp--preset--spacing--10); }

/* ---------- Cards ---------- */
.cq-card { position: relative; display: flex; flex-direction: column; background: var(--wp--preset--color--white); border: 1px solid var(--wp--preset--color--gray-200); border-radius: var(--wp--custom--radius--sm); padding: var(--wp--preset--spacing--6); }
.cq-card > * { margin-block: 0 !important; }
.cq-card--flush { padding: 0; overflow: hidden; }
.cq-card--row { flex-direction: row; align-items: flex-start; gap: var(--wp--preset--spacing--4); padding: var(--wp--preset--spacing--5); }
.cq-card__body { padding: var(--wp--preset--spacing--5); }
.cq-card__photo { margin: 0; }
.cq-card__photo img { display: block; width: 100%; }
.cq-card__icon { display: flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin-bottom: var(--wp--preset--spacing--5) !important; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--red-50); }
.cq-card__icon--sm { width: 36px; height: 36px; margin-bottom: 0 !important; }
.cq-card__icon .cq-ico { --cq-ico-size: 20px; }
.cq-card__head { display: flex; align-items: center; gap: var(--wp--preset--spacing--3); margin-bottom: var(--wp--preset--spacing--4) !important; }
.cq-card__kicker { margin: 0; font-weight: 600; }
.cq-card__title { margin-bottom: 6px !important; font-size: var(--wp--preset--font-size--h4); line-height: 1.25; }
.cq-card__title--lg { font-size: clamp(1.25rem, 1.1rem + 0.7vw, 1.5rem); margin-bottom: var(--wp--preset--spacing--2) !important; }
.cq-card__who { padding-bottom: var(--wp--preset--spacing--4) !important; margin-bottom: var(--wp--preset--spacing--4) !important; border-bottom: 1px solid var(--wp--preset--color--gray-100); }
.cq-card__blurb { margin-bottom: var(--wp--preset--spacing--4) !important; }
.cq-card .wp-block-buttons { margin-top: var(--wp--preset--spacing--5) !important; }
.cq-card--link { transition: border-color var(--wp--custom--motion--base) var(--wp--custom--motion--ease), box-shadow var(--wp--custom--motion--base) var(--wp--custom--motion--ease); }
.cq-card--link:hover, .cq-card--link:focus-within { border-color: var(--wp--preset--color--gray-300); box-shadow: var(--wp--preset--shadow--md); }
.cq-link-arrow { margin-top: auto !important; font-size: 0.9375rem; font-weight: 600; }
.cq-link-arrow a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; text-decoration: none; }
.cq-link-arrow a::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("../icons/arrow-right.svg") center / contain no-repeat; mask: url("../icons/arrow-right.svg") center / contain no-repeat; }
.cq-card--link .cq-link-arrow a::before { content: ""; position: absolute; inset: 0; }
.cq-link-arrow a:hover { text-decoration: underline; text-underline-offset: 4px; }
.cq-quote { margin-bottom: var(--wp--preset--spacing--3) !important; }
.cq-quote__by strong { color: var(--wp--preset--color--gray-900); }

/* ---------- Steps and values ---------- */
.cq-steps { gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--6); }
.cq-step { margin: 0; padding-top: var(--wp--preset--spacing--4); border-top: 2px solid var(--wp--preset--color--gray-800); }
.cq-step > *, .cq-person > *, .cq-way > *, .cq-notice--block > * { margin-block: 0 !important; }
.cq-step__num { margin-bottom: var(--wp--preset--spacing--3) !important; font-size: var(--wp--preset--font-size--caption); font-weight: 600; letter-spacing: 0.04em; }
.cq-step__title { margin-bottom: var(--wp--preset--spacing--2) !important; font-size: var(--wp--preset--font-size--large); line-height: 1.25; }
.cq-values { display: grid; }
.cq-value { display: flex; gap: var(--wp--preset--spacing--4); margin: 0; padding: var(--wp--preset--spacing--5) 0; border-top: 1px solid var(--wp--preset--color--gray-200); }
.cq-value:last-child { border-bottom: 1px solid var(--wp--preset--color--gray-200); }
.cq-value .cq-step__num { margin: 4px 0 0 !important; }
.cq-value__body > * { margin-block: 0 !important; }
.cq-rule-head { display: flex; align-items: center; gap: 10px; margin-bottom: var(--wp--preset--spacing--3); }
.cq-rule { width: 24px; height: 2px; margin: 0; background: var(--wp--preset--color--red); }
.cq-rule-title { margin: 0; }
.cq-vm .cq-lede { margin-bottom: 0; }

/* ---------- Notice ---------- */
.cq-notice { display: flex; align-items: flex-start; gap: var(--wp--preset--spacing--3); margin-top: var(--wp--preset--spacing--6); padding: var(--wp--preset--spacing--4); border-radius: var(--wp--custom--radius--md); }
.cq-notice__text { margin: 0; line-height: 1.5; }
.cq-notice--block { flex-direction: column; padding: var(--wp--preset--spacing--6); margin-top: 0; }
.cq-notice--block > * { margin-block: 0; }
.cq-notice__head { display: flex; align-items: center; gap: var(--wp--preset--spacing--3); }
.cq-notice__head > * { margin: 0; }

/* ---------- Hero and page header ---------- */
.cq-hero { align-items: center; padding-block: var(--wp--preset--spacing--section-sm); }
.cq-hero .wp-block-cover__inner-container, .cq-page-hero .wp-block-cover__inner-container, .cq-cta .wp-block-cover__inner-container { width: 100%; }
.cq-hero__text { max-width: 38rem; }
.cq-hero__lede { margin: 0 0 var(--wp--preset--spacing--6); line-height: 1.65; }
.cq-hero__actions { margin-bottom: var(--wp--preset--spacing--8); gap: var(--wp--preset--spacing--3); }
.cq-hero__points { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--2) var(--wp--preset--spacing--6); }
.cq-page-hero { align-items: center; padding-block: var(--wp--preset--spacing--12); }
.cq-page-hero__text { max-width: 44rem; }
.cq-page-hero__text .cq-lede { margin-bottom: 0; }
.cq-crumbs { margin-bottom: var(--wp--preset--spacing--5); font-size: var(--wp--preset--font-size--small); }
.cq-crumbs, .cq-crumbs a { color: var(--wp--preset--color--gray-100); }
.cq-crumbs a { text-decoration: none; }
.cq-crumbs a:hover { text-decoration: underline; }
.cq-cta { align-items: center; padding-block: var(--wp--preset--spacing--section-sm); }
.cq-cta__text { max-width: 42rem; }

/* ---------- Trust strip ---------- */
.cq-trust-strip { border-bottom: 1px solid var(--wp--preset--color--gray-200); }
.cq-trust { padding-block: var(--wp--preset--spacing--6); gap: var(--wp--preset--spacing--5) var(--wp--preset--spacing--6); }
.cq-trust .cq-row { align-items: center; padding: 0; border: 0; }
.cq-trust .cq-row__title { font-size: 0.9375rem; }
.cq-trust .cq-row__sub { font-size: var(--wp--preset--font-size--small); }

/* ---------- Full-bleed split ---------- */
.cq-bleed { display: grid; grid-template-columns: minmax(0, 1fr); }
.cq-bleed > * { margin: 0 !important; }
.cq-bleed__photo { min-height: 18rem; }
.cq-bleed__photo img { display: block; width: 100%; height: 100%; min-height: 18rem; object-fit: cover; }
.cq-bleed__panel { display: flex; flex-direction: column; justify-content: center; padding: var(--wp--preset--spacing--section-sm) var(--wp--preset--spacing--gutter); }
.cq-bleed__panel > * { max-width: 34rem; }
.cq-bleed__panel .cq-lede { margin-bottom: var(--wp--preset--spacing--6); }
@media (min-width: 900px) {
	.cq-bleed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cq-bleed__panel { padding-inline: clamp(2rem, 6vw, 5rem); }
}

/* ---------- Photos ---------- */
.cq-photo { margin: 0; }
.cq-photo img, .cq-portrait img { display: block; width: 100%; border-radius: var(--wp--custom--radius--sm); }
.cq-person > * { margin-block: 0; }
.cq-person .cq-step__title { margin-top: var(--wp--preset--spacing--4); margin-bottom: var(--wp--preset--spacing--1) !important; }
.cq-portrait { margin: 0; }

/* ---------- Contact ---------- */
.cq-contact-list { display: grid; gap: var(--wp--preset--spacing--3); }
.cq-contact-list > * { margin: 0; }
.cq-contact { display: flex; align-items: center; gap: var(--wp--preset--spacing--4); padding: var(--wp--preset--spacing--4); background: var(--wp--preset--color--white); border: 1px solid var(--wp--preset--color--gray-200); border-radius: var(--wp--custom--radius--md); }
.cq-contact .cq-card__icon { margin: 0 !important; }
.cq-contact__text { flex: 1; min-width: 0; }
.cq-contact__text > * { margin-block: 0 !important; }
.cq-contact__value { font-weight: 600; overflow-wrap: anywhere; }
.cq-contact .wp-block-buttons { margin: 0; }
.cq-btn-sm .wp-block-button__link { font-size: var(--wp--preset--font-size--small); padding: 0.5rem 0.875rem; }
.cq-actions-col { flex-direction: column; align-items: stretch; }
@media (min-width: 900px) { .cq-actions-col { align-items: flex-start; } }

/* ---------- Repayment ways ---------- */
.cq-ways > * { margin: 0; }
.cq-way { padding: var(--wp--preset--spacing--5) 0; border-top: 1px solid var(--wp--preset--color--gray-600); }
.cq-way > * { margin-block: 0; }
.cq-way__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--wp--preset--spacing--1) var(--wp--preset--spacing--4); margin-bottom: var(--wp--preset--spacing--2); }
.cq-way__head > * { margin: 0; }

/* ---------- Buttons (arrow, on-dark variants) ---------- */
.cq-btn-arrow .wp-block-button__link::after { content: ""; flex: none; width: 18px; height: 18px; background: currentColor; -webkit-mask: url("../icons/arrow-right.svg") center / contain no-repeat; mask: url("../icons/arrow-right.svg") center / contain no-repeat; }
.cq-btn-outline-light .wp-block-button__link { background: transparent; color: var(--wp--preset--color--white); border: 1px solid var(--wp--preset--color--gray-300); }
.cq-btn-outline-light .wp-block-button__link:hover, .cq-btn-outline-light .wp-block-button__link:focus { background: rgba(255, 255, 255, 0.1); color: var(--wp--preset--color--white); }
.cq-btn-link-light .wp-block-button__link { padding-inline: 0; background: transparent; color: var(--wp--preset--color--white); text-decoration: underline; text-underline-offset: 4px; }
.cq-btn-link-light .wp-block-button__link:hover, .cq-btn-link-light .wp-block-button__link:focus { background: transparent; color: var(--wp--preset--color--white); }

/* ---------- FAQ ---------- */
.cq-faq-list > * { margin: 0; }
.cq-faq { margin: 0; border-top: 1px solid var(--wp--preset--color--gray-200); border-bottom-width: 0; }
.cq-faq-list > .cq-faq:last-child { border-bottom: 1px solid var(--wp--preset--color--gray-200); }
.cq-faq summary { min-height: 44px; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: var(--wp--preset--font-size--large); }
.cq-faq p { margin-block: var(--wp--preset--spacing--3) 0; color: var(--wp--preset--color--gray-600); }

/* ---------- Misc ---------- */
.cq-parent-strip { padding-block: var(--wp--preset--spacing--6); border-top: 1px solid var(--wp--preset--color--gray-200); }
.cq-parent { margin: 0; text-align: center; }
.cq-form-slot { margin: 0; }
.cq-form-card { padding: var(--wp--preset--spacing--8); }

/* ---------- Structural resets ---------- */
/* Flow-layout block gaps must not push children of flex/grid wrappers around. */
.cq-row > *, .cq-point > *, .cq-card__head > *, .cq-contact > *, .cq-notice > *, .cq-value > *, .cq-split > *, .cq-bleed > *, .cq-way__head > *,
.cq-hero__points > *, .cq-hero__inner > *, .cq-page-hero__inner > *, .cq-cta__inner > *, .cq-card--row > *, .cq-rule-head > *, .cq-ruled-head > *, .cq-trust-inline > * { margin-block: 0 !important; }
.cq-hero__text, .cq-page-hero__text, .cq-cta__text { margin-inline: 0 !important; }
.cq-hero, .cq-page-hero, .cq-cta { background-color: var(--wp--preset--color--gray-800); }
.cq-hero__lede { max-width: 34rem; }

.cq-trust { align-items: center; }
.cq-photo img, .cq-card__photo img, .cq-portrait img, .cq-bleed__photo img { background: var(--wp--preset--color--gray-100); }

/* ---------- Fine tuning against the design ---------- */
.cq-row__title.cq-row__title { line-height: 1.4; }
.cq-row__sub.cq-row__sub { line-height: 1.5; }
.cq-hero { min-height: clamp(520px, 48vw, 700px) !important; }
.cq-hero__lede { max-width: 30rem; }
.cq-hero__points { max-width: 34rem; }
.cq-rows > *, .cq-contact-list > *, .cq-faq-list > *, .cq-ways > *, .cq-checks > *, .cq-values > * { margin-block: 0 !important; }
.cq-row { padding-block: var(--wp--preset--spacing--3); }

.cq-row__sub:empty { display: none; }
.cq-calc-wrap > * { margin: 0 !important; }
/* Call to action band: copy on the left, buttons on the right from 900px (as in the design) */
@media (min-width: 900px) {
	.cq-cta__text { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--wp--preset--spacing--16); align-items: center; max-width: none; }
	.cq-cta__text > * { grid-column: 1; max-width: 42rem; }
	.cq-cta__text > .wp-block-buttons { grid-column: 2; grid-row: 1 / span 2; max-width: none; flex-wrap: nowrap; }
}
