.faq-hero::after { content: "?"; right: 5vw; bottom: -5vw; }
.faq-total strong { font-size: 3.8rem; }

.faq-search-section { padding: 70px 0; color: #fff; background: linear-gradient(135deg,#050505,#222); border-bottom: 1px solid #444; }
.faq-search-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: end; }
.faq-search-grid h2,
.faq-list-heading h2,
.faq-empty-page h2 { margin: 11px 0 0; font-size: clamp(2rem, 3.5vw, 4rem); line-height: 1; text-transform: uppercase; }
.faq-search-box label { display: block; margin-bottom: 10px; color: #aaa; font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.faq-search-box > div { display: grid; grid-template-columns: 1fr 58px; background: #fff; border: 2px solid transparent; }
.faq-search-box > div:focus-within { border-color: #ffe100; box-shadow: 0 0 20px rgba(255,225,0,.23); }
.faq-search-box input { min-width: 0; padding: 19px 21px; color: #111; border: 0; outline: 0; font-size: 1rem; }
.faq-search-box div span { display: grid; place-items: center; color: #081f78; background: #ffe100; font-size: 1.8rem; }
.faq-search-box small { display: block; margin-top: 10px; color: #aaa; }

.faq-list-section { padding: 90px 0 105px; background: #f4f4f4; }
.faq-list-heading { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 38px; }
.faq-list { border-top: 1px solid #bbb; border-left: 1px solid #bbb; }
.public-faq { background: #fff; border-right: 1px solid #bbb; border-bottom: 1px solid #bbb; }
.public-faq summary { display: grid; grid-template-columns: 70px 1fr 42px; gap: 24px; align-items: center; min-height: 116px; padding: 22px 28px; cursor: pointer; list-style: none; }
.public-faq summary::-webkit-details-marker { display: none; }
.public-faq summary > span { color: #aaa; font-size: 2.1rem; font-weight: 200; }
.public-faq summary div { display: grid; gap: 6px; }
.public-faq summary small { color: #777; font-size: .62rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.public-faq summary strong { max-width: 970px; color: #111; font-size: clamp(1rem, 1.7vw, 1.35rem); line-height: 1.4; }
.public-faq summary b { color: #081f78; font-size: 1.6rem; transition: transform .2s; }
.public-faq[open] summary { color: #081f78; background: #ffe100; }
.public-faq[open] summary b { transform: rotate(45deg); }
.public-faq-answer { padding: 32px 72px 38px 122px; color: #333; border-top: 1px solid #ddd; font-size: .96rem; line-height: 1.85; white-space: normal; }

.faq-no-results { padding: 40px; color: #fff; background: #111; }
.faq-no-results strong { font-size: 1.5rem; }
.faq-no-results p { margin-bottom: 28px; color: #bbb; }
.faq-empty-page { padding: 100px 0; }
.faq-empty-page-inner { max-width: 950px; }
.faq-empty-page p { max-width: 720px; margin: 24px 0 32px; color: #666; font-size: 1.05rem; line-height: 1.75; }
.faq-contact-strip { padding: 48px 0; color: #fff; background: linear-gradient(135deg,#050505,#242424); }
.faq-contact-strip .shell { display: flex; align-items: center; justify-content: space-between; gap: 35px; }
.faq-contact-strip span { color: #aaa; font-size: .68rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.faq-contact-strip h2 { margin: 7px 0 0; font-size: clamp(1.4rem, 2.3vw, 2.7rem); text-transform: uppercase; }

@media (max-width: 800px) {
  .faq-search-grid,
  .faq-list-heading { grid-template-columns: 1fr; gap: 28px; }
  .public-faq summary { grid-template-columns: 42px 1fr 28px; gap: 13px; padding: 19px 16px; }
  .public-faq-answer { padding: 25px 25px 30px 71px; }
  .faq-contact-strip .shell { align-items: stretch; flex-direction: column; }
}

@media (max-width: 520px) {
  .public-faq summary > span { font-size: 1.35rem; }
  .public-faq-answer { padding-left: 20px; }
}

/* FAQ: allineamento simmetrico rispetto a "Conoscenza verificata" */
.faq-list-section > .shell {
  width: min(100% - 48px, 1600px);
  margin-inline: auto;
}
.faq-list-heading {
  display: block;
  width: 100%;
  margin: 0 0 38px;
}
.faq-list-heading .story-label {
  display: block;
  margin: 0;
  text-align: left;
}
.faq-list {
  width: 100%;
  margin: 0;
}
@media (max-width: 800px) {
  .faq-list-section > .shell {
    width: min(100% - 32px, 1600px);
  }
}
