/* A FAQ group on the services rule: the block rules stand in for the first
   and last questions' rules, and the first question lines up with the group
   heading. */
.faq-block .faq details:first-child {
    border-top: 0;
}

.faq-block .faq details:last-child {
    border-bottom: 0;
}

.faq-block .faq details:first-child summary {
    padding-top: 0;
}

.faq-block .faq details:first-child summary::after {
    top: calc(-0.75px + 0.7em);
}

.faq-block .faq details:first-child:not([open]) summary::before {
    top: calc(-8px + 0.7em);
}

/* FAQ */
.faq {
    display: grid;
    gap: 0;
}

.faq details,
.qa {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--rule);
    border-radius: 0;
    padding: 0;
}

.faq details:first-child,
.qa:first-child {
    border-top: 1px solid var(--rule);
}

.faq summary,
.qa summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20px;
    gap: 20px;
    cursor: pointer;
    list-style: none;
    padding: 18px 0;
    position: relative;
    font-weight: 500;
    font-size: var(--type-subhead);
    line-height: 1.4;
}

.faq summary::-webkit-details-marker,
.qa summary::-webkit-details-marker {
    display: none;
}

.faq summary::after {
    content: "";
    position: absolute;
    right: 0;
    top: calc(17.25px + 0.7em);
    width: 16px;
    height: 1.5px;
    background: var(--door-juniper);
    box-shadow: 0 0 0 0 var(--door-juniper);
}

.faq details:not([open]) summary::after {
    box-shadow: 0 0 0 0 currentColor;
}

.faq details:not([open]) summary::before {
    content: "";
    position: absolute;
    right: 7.25px;
    top: calc(10px + 0.7em);
    width: 1.5px;
    height: 16px;
    background: var(--door-juniper);
}

.faq summary:hover,
.qa summary:hover {
    color: var(--door-juniper);
}

.faq details > div,
.qa .answer {
    padding: 0 40px 20px 0;
    max-width: 64ch;
    color: var(--umber-soft);
}
