/* White base; teal and yellow from the supplied brand palette. */
.nsm-faq {
  --nsm-teal: #01969C;
  --nsm-yellow: #FEAA00;
  --nsm-deep-teal: #00474A;
  --nsm-line: rgba(1, 150, 156, .2);
  --nsm-content-width: 1200px;
  box-sizing: border-box;
  width: 100%;
  padding: 88px 24px 96px;
  margin: 0;
  background: #FFFFFF;
  color: #000000;
  font-family: inherit;
}
.nsm-faq *, .nsm-faq *::before, .nsm-faq *::after { box-sizing: border-box; }
.nsm-faq .nsm-faq-inner {
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
  align-items: start;
  gap: clamp(44px, 6vw, 80px);
  width: 100%;
  max-width: var(--nsm-content-width);
  margin: 0 auto;
}
.nsm-faq .nsm-faq-visual { position: sticky; top: 80px; min-width: 0; padding-top: 24px; }
.nsm-faq .nsm-faq-art { position: relative; width: calc(100% - 28px); max-width: 440px; aspect-ratio: 4 / 5; margin: 20px 0 0; }
.nsm-faq .nsm-faq-outline,
.nsm-faq .nsm-faq-picture { position: absolute; inset: 0; border-radius: 20px; transform: perspective(1100px) rotateY(-18deg); transform-origin: right center; }
.nsm-faq .nsm-faq-outline { border: 1.5px solid var(--nsm-teal); translate: 24px -22px; }
.nsm-faq .nsm-faq-picture { overflow: hidden; background: var(--nsm-deep-teal); box-shadow: 0 20px 34px -24px rgba(0, 71, 74, .5); }
.nsm-faq .nsm-faq-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; border: 0; border-radius: 0; margin: 0; padding: 0; }
.nsm-faq .nsm-faq-content { min-width: 0; }
.nsm-faq .nsm-faq-heading { font-family: inherit; font-size: clamp(34px, 3.7vw, 50px); font-weight: 700; line-height: 1.2; letter-spacing: -.04em; color: var(--nsm-teal); margin: 0 0 36px; padding: 0; text-transform: none; }
.nsm-faq .nsm-faq-highlight { display: inline-block; color: var(--nsm-yellow); background: var(--nsm-deep-teal); padding: .01em .14em .075em; border-radius: .14em; line-height: 1.04; white-space: nowrap; vertical-align: baseline; }
.nsm-faq .nsm-faq-list { border-top: 1px solid var(--nsm-line); }
.nsm-faq .nsm-faq-item { display: block; margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--nsm-line); background: #FFFFFF; border-radius: 0; }
.nsm-faq .nsm-faq-item[open] { border-bottom-color: var(--nsm-teal); }
.nsm-faq .nsm-faq-summary { display: block; list-style: none; cursor: pointer; margin: 0; padding: 25px 0; color: inherit; background: transparent; border: 0; outline-offset: 4px; }
.nsm-faq .nsm-faq-summary::-webkit-details-marker { display: none; }
.nsm-faq .nsm-faq-summary::marker { content: ''; }
.nsm-faq .nsm-faq-summary:focus-visible { outline: 2px solid var(--nsm-deep-teal); border-radius: 6px; }
.nsm-faq .nsm-faq-trigger { display: grid; grid-template-columns: 26px minmax(0, 1fr) 38px; align-items: start; gap: 15px; font-family: inherit; font-size: clamp(18px, 1.65vw, 21px); font-weight: 550; line-height: 1.45; letter-spacing: -.015em; color: #000000; margin: 0; padding: 0; text-transform: none; }
.nsm-faq .nsm-faq-number { font-size: 12px; font-weight: 600; letter-spacing: .03em; color: var(--nsm-deep-teal); padding-top: 8px; font-variant-numeric: tabular-nums; }
.nsm-faq .nsm-faq-question { padding: 3px 0 0; overflow-wrap: anywhere; transition: color .2s ease; }
.nsm-faq .nsm-faq-summary:hover .nsm-faq-question { color: var(--nsm-deep-teal); }
.nsm-faq .nsm-faq-toggle { position: relative; display: block; width: 38px; height: 38px; flex-shrink: 0; border: 1px solid rgba(1, 150, 156, .32); border-radius: 10px; background: #FFFFFF; color: var(--nsm-deep-teal); transition: background-color .2s ease, border-color .2s ease, transform .25s ease; }
.nsm-faq .nsm-faq-toggle span { position: absolute; left: 11px; right: 11px; top: 17px; height: 2px; border-radius: 2px; background: currentColor; }
.nsm-faq .nsm-faq-toggle span + span { transform: rotate(90deg); }
.nsm-faq .nsm-faq-item[open] .nsm-faq-toggle { background: var(--nsm-yellow); border-color: var(--nsm-yellow); transform: rotate(45deg); }
.nsm-faq .nsm-faq-answer { color: rgba(0, 0, 0, .7); font-size: 16px; font-weight: 400; line-height: 1.8; margin: -2px 0 0 41px; padding: 0 36px 28px 0; overflow-wrap: anywhere; }
.nsm-faq .nsm-faq-answer p { font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; margin: 0 0 14px; padding: 0; }
.nsm-faq .nsm-faq-answer p:last-child { margin-bottom: 0; }
.nsm-faq-editor-note { padding: 16px; border-left: 3px solid #01969C; background: #FFFFFF; color: #00474A; }
@media (max-width: 1024px) {
  .nsm-faq { padding: 68px 24px 76px; }
  .nsm-faq .nsm-faq-inner { grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: 38px; }
  .nsm-faq .nsm-faq-heading { font-size: 38px; }
  .nsm-faq .nsm-faq-trigger { font-size: 18px; gap: 11px; }
  .nsm-faq .nsm-faq-answer { margin-left: 37px; padding-right: 8px; }
}
@media (max-width: 760px) {
  .nsm-faq { padding: 52px 20px 60px; }
  .nsm-faq .nsm-faq-inner { grid-template-columns: minmax(0, 1fr); gap: 42px; }
  .nsm-faq .nsm-faq-visual { position: static; width: 100%; max-width: 370px; padding-top: 12px; margin: 0 auto; }
  .nsm-faq .nsm-faq-art { width: calc(100% - 24px); margin-top: 12px; max-height: 390px; }
  .nsm-faq .nsm-faq-outline { translate: 20px -18px; }
  .nsm-faq .nsm-faq-heading { font-size: clamp(32px, 7.7vw, 42px); margin-bottom: 28px; }
  .nsm-faq .nsm-faq-summary { padding: 21px 0; }
  .nsm-faq .nsm-faq-trigger { grid-template-columns: 23px minmax(0, 1fr) 36px; gap: 10px; font-size: 18px; }
  .nsm-faq .nsm-faq-toggle { width: 36px; height: 36px; }
  .nsm-faq .nsm-faq-toggle span { left: 10px; right: 10px; top: 16px; }
  .nsm-faq .nsm-faq-answer { margin-left: 33px; padding-right: 0; font-size: 15px; line-height: 1.75; }
}
@media (prefers-reduced-motion: reduce) {
  .nsm-faq .nsm-faq-toggle, .nsm-faq .nsm-faq-question { transition: none; }
}
