/* =============================================================================
   Home, GFVR bands (factory/office/gfvr/PLAN.md B1, 2026-10-09): services and benefits rows, how it works,
   FAQ, the one-message close. Loaded after home.css by template-home.php. House tokens only, body.ca-home scope.
   ============================================================================= */

/* Services and benefits: four rows, photo left, name and factual bullets right; one column on phones */
body.ca-home .hm-svc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.5rem; }
body.ca-home .hm-svc-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); background: var(--ui-paper);
    border: 1px solid var(--ui-line); border-radius: var(--ui-radius); overflow: hidden; transition: box-shadow var(--ca-transition); }
body.ca-home .hm-svc-row:hover { box-shadow: var(--ui-shadow); }
body.ca-home .hm-svc-img { display: block; min-height: 100%; }
body.ca-home .hm-svc-img img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; display: block; }
body.ca-home .hm-svc-body { padding: 1.2rem 1.3rem 1.3rem; display: flex; flex-direction: column; }
/* Flights and hotels (2026-10-10): rows without a photograph read as words on tint, one column. */
body.ca-home .hm-svc-text { grid-template-columns: minmax(0, 1fr); background: var(--ui-tint); }
body.ca-home .hm-svc-text .hm-svc-body { padding: 1.5rem 1.5rem 1.4rem; }
body.ca-home .hm-svc-lead { margin: .5rem 0 0; font-size: 17px; line-height: 1.55; color: var(--ui-ink-2); max-width: 40em; }
body.ca-home .hm-svc-body h3 { font-weight: 600; font-size: 20px; line-height: 1.25; margin: 0 0 .6rem; }
body.ca-home .hm-svc-body h3 a { color: var(--ui-ink); text-decoration: none; }
body.ca-home .hm-svc-body h3 a:hover { color: var(--ui-accent); }
body.ca-home .hm-svc-list { list-style: none; margin: 0 0 .4rem; padding: 0; display: grid; gap: .45rem; }
body.ca-home .hm-svc-list li { position: relative; padding-left: 1.4rem; font-size: 16px; line-height: 1.5; color: var(--ui-ink-2); }
body.ca-home .hm-svc-list li::before { content: ""; position: absolute; left: 0; top: .55em; width: .55rem; height: .3rem;
    border-left: 2px solid var(--ui-accent); border-bottom: 2px solid var(--ui-accent); transform: rotate(-45deg); }
body.ca-home .hm-svc-body .hm-more { margin-top: auto; padding-top: .6rem; text-decoration: none; }
body.ca-home .hm-svc-body .hm-more:hover { color: var(--ui-accent); }

/* How it works: 01 02 03 */
body.ca-home .hm-steps { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; counter-reset: none; }
body.ca-home .hm-step { background: var(--ui-paper); border: 1px solid var(--ui-line); border-radius: var(--ui-radius); padding: 1.3rem 1.3rem 1.4rem; }
body.ca-home .hm-step-n { display: block; font-weight: 600; font-size: 15px; letter-spacing: .08em; color: var(--ui-accent); margin-bottom: .5rem; }
body.ca-home .hm-step h3 { font-weight: 600; font-size: 19px; margin: 0 0 .35rem; }
body.ca-home .hm-step p { margin: 0; font-size: 16px; color: var(--ui-ink-2); }
body.ca-home .hm-reply { margin: 1.25rem 0 0; font-size: 16px; color: var(--ui-ink); }

/* FAQ: heading column and an accordion */
body.ca-home .hm-faq-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.5rem 3rem; align-items: start; }
body.ca-home .hm-faq { display: grid; gap: .6rem; }
body.ca-home .hm-qa { background: var(--ui-paper); border: 1px solid var(--ui-line); border-radius: var(--ui-radius-sm); }
body.ca-home .hm-qa summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
    min-height: 52px; padding: .8rem 1.1rem; font-weight: 600; font-size: 17px; line-height: 1.35; color: var(--ui-ink); }
body.ca-home .hm-qa summary::-webkit-details-marker { display: none; }
body.ca-home .hm-qa summary::after { content: "+"; flex: none; font-weight: 400; font-size: 22px; line-height: 1; color: var(--ui-accent); transition: transform var(--ca-transition); }
body.ca-home .hm-qa[open] summary::after { transform: rotate(45deg); }
body.ca-home .hm-qa summary:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; border-radius: var(--ui-radius-sm); }
body.ca-home .hm-qa p { margin: 0; padding: 0 1.1rem 1.1rem; font-size: 16px; color: var(--ui-ink-2); }

/* One-message close */
body.ca-home .hm-close-actions { margin: 0; }
body.ca-home .hm-close-reply { margin-top: .5rem; color: var(--ui-ink); }

@media (max-width: 960px) {
    body.ca-home .hm-svc { grid-template-columns: minmax(0, 1fr); }
    body.ca-home .hm-faq-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
    body.ca-home .hm-steps { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
}
@media (max-width: 560px) {
    body.ca-home .hm-svc-row { grid-template-columns: minmax(0, 1fr); }
    body.ca-home .hm-svc-img img { aspect-ratio: 16 / 9; height: auto; min-height: 0; }
    body.ca-home .hm-close-actions .hm-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    body.ca-home .hm-svc-row, body.ca-home .hm-qa summary::after { transition: none; }
}
