.page-faq { background: #fff; }
.faq-intro, .faq-main { padding-inline: max(calc(var(--linea-rail-x) + 34px), var(--gutter)) var(--gutter); }
.faq-shell { width: min(1160px, 100%); margin-inline: auto; }
html body.page-faq main > .faq-intro[data-page-intro] { min-height: 0; padding-block: calc(var(--header-h) + 38px) 54px; }
.faq-intro { color: #fff; background: #141414; }
.faq-intro .eyebrow { color: #ff7777; }
.faq-intro h1 { max-width: 1050px; margin: 20px 0 0; font-family: var(--sans); font-size: clamp(3.1rem, 6.4vw, 6.5rem); font-weight: 300; line-height: .98; letter-spacing: -.055em; text-wrap: balance; }
.faq-lead { max-width: 780px; margin: 26px 0 0; color: #e2e2e2; font-size: clamp(1.1rem, 1.8vw, 1.45rem); line-height: 1.5; }
.faq-choose-title { margin: 38px 0 16px; color: #fff; font-size: clamp(1.3rem, 2vw, 1.8rem); font-weight: 500; }
.faq-contents { margin-top: 0; }
.faq-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.faq-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 15px; min-height: 102px; padding: 17px 19px; border: 1px solid #777; color: #fff; text-decoration: none; transition: border-color .18s ease, background-color .18s ease, transform .18s ease; }
.faq-choice-number { grid-row: span 2; color: #ff7777; font-size: .85rem; font-weight: 800; letter-spacing: .08em; }
.faq-choice-copy strong { display: block; font-size: 1.08rem; font-weight: 650; line-height: 1.3; }
.faq-choice-copy small { display: block; margin-top: 5px; color: #d5d5d5; font-size: .88rem; line-height: 1.35; }
.faq-choice-count { grid-column: 2; color: #bbb; font-size: .78rem; }
.faq-choice:hover, .faq-choice:focus-visible { border-color: #fff; background: #292929; transform: translateY(-2px); }
.faq-contents a:focus-visible, .faq-item summary:focus-visible, .faq-next a:focus-visible { outline: 3px solid #ff7777; outline-offset: 3px; }
.faq-main { padding-block: 76px 120px; }
.faq-group { scroll-margin-top: calc(var(--header-h) + 20px); margin-bottom: 92px; }
.faq-group-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding-bottom: 22px; border-bottom: 3px solid #c00000; }
.faq-group-heading h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.25rem); font-weight: 350; line-height: 1.1; letter-spacing: -.045em; }
.faq-group-heading > span { color: #555; font-size: .9rem; white-space: nowrap; }
.faq-item { border-bottom: 1px solid #c8c8c8; }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; padding: 18px 2px; list-style: none; cursor: pointer; font-size: clamp(1.08rem, 1.7vw, 1.4rem); font-weight: 600; line-height: 1.35; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ''; }
.faq-item summary:hover { color: #9e0000; }
.faq-caret { flex: 0 0 13px; width: 13px; height: 13px; margin-right: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform .18s ease; }
.faq-item[open] .faq-caret { transform: translateY(4px) rotate(225deg); }
.faq-answer { max-width: 820px; padding: 0 40px 28px 2px; }
.faq-answer p { margin: 0; color: #353535; font-size: 1.08rem; line-height: 1.7; }
.faq-answer p + p { margin-top: 1rem; }
.faq-related { margin-top: 1rem !important; font-size: .92rem !important; line-height: 1.6 !important; }
.faq-related span { color: #555; }
.faq-related a { color: #9e0000; text-underline-offset: 3px; }
.faq-related a:hover, .faq-related a:focus-visible { color: #6f0000; }
.faq-sources { margin-top: 14px; color: #555; font-size: .92rem; line-height: 1.6; }
.faq-sources a { color: #9e0000; text-underline-offset: 3px; }
.faq-sources a:hover, .faq-sources a:focus-visible { color: #6f0000; }
.faq-next { padding: clamp(28px, 4vw, 54px); background: #f1f0ed; border-top: 4px solid #c00000; }
.faq-next h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.1; }
.faq-next p { max-width: 650px; margin: 16px 0 26px; font-size: 1.06rem; line-height: 1.6; }
.faq-next a { display: inline-flex; min-height: 44px; align-items: center; padding: 11px 18px; background: #c00000; color: #fff; font-weight: 700; text-decoration: none; }
.faq-next a:hover { background: #930000; }
@media (max-width: 700px) {
  .faq-intro, .faq-main { padding-inline: calc(var(--linea-rail-x) + 24px) 20px; }
  html body.page-faq main > .faq-intro[data-page-intro] { padding-block: calc(var(--header-h) + 25px) 38px; }
  .faq-intro h1 { font-size: clamp(2.5rem, 10vw, 4rem); overflow-wrap: anywhere; }
  .faq-choose-title { margin-top: 28px; }
  .faq-choice-grid { grid-template-columns: 1fr; }
  .faq-choice { min-height: 88px; }
  .faq-main { padding-block: 52px 80px; }
  .faq-group { margin-bottom: 64px; }
  .faq-group-heading { align-items: start; flex-direction: column; gap: 8px; }
  .faq-item summary { min-height: 70px; }
  .faq-answer { padding-right: 10px; }
}
@media (prefers-reduced-motion: reduce) { .faq-caret { transition: none; } }
