/* SOFAQ · Gremers Media Studio. All selectors are scoped to this block. */
.sofaq {
  --sf-ease: cubic-bezier(.25,.1,.25,1);
  container: sofaq / inline-size;
  isolation: isolate;
  box-sizing: border-box;
  color: var(--sf-textColor);
  font-family: var(--sf-font);
  font-size: 18px;
  line-height: 1.45;
  text-align: start;
  max-inline-size: none;
}
.sofaq *, .sofaq *::before, .sofaq *::after { box-sizing: border-box; }
.sofaq :where(h2,h3,h4,h5,h6,p,figure,ol,ul) { margin: 0; padding: 0; }
.sofaq :where(h2,h3,h4,h5,h6) { font-family: inherit; text-transform: none; }
.sofaq :where(a,button,summary) { -webkit-tap-highlight-color: transparent; }
.sofaq :where(a,button):focus-visible { outline: 3px solid var(--sf-accentColor); outline-offset: 5px; border-radius: 3px; }
/* A keyboard underline replaces the large summary focus box, including theme rings. */
.sofaq .sf-item > .sf-question:focus,
.sofaq .sf-item > .sf-question:active { outline: none !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
.sofaq .sf-question:focus-visible .sf-question-text,
.sofaq[data-input="keyboard"] .sf-question:focus .sf-question-text { text-decoration: underline; text-decoration-color: var(--sf-accentColor); text-decoration-thickness: 2px; text-underline-offset: .24em; }
.sofaq[data-input="pointer"] .sf-question:focus .sf-question-text { text-decoration: none; }
.sofaq .sf-inner {
  --sf-t: var(--sf-titleSize); --sf-ct: var(--sf-cardTitleSize); --sf-ft: var(--sf-faqTitleSize);
  --sf-st: var(--sf-stepTitleSize); --sf-qs: var(--sf-questionSize); --sf-bs: var(--sf-bodySize);
  --sf-sd: var(--sf-stepDescriptionSize); --sf-g: var(--sf-gutter); --sf-pp: var(--sf-processPadding);
  --sf-fp: var(--sf-faqPadding); --sf-cp: var(--sf-cardPadding);
  width: calc(100% - 2 * var(--sf-g));
  inline-size: calc(100% - 2 * var(--sf-g));
  /* Keep the user-selected content limit authoritative within full-width themes. */
  max-width: var(--sf-maxWidth) !important;
  max-inline-size: var(--sf-maxWidth) !important;
  margin-left: auto;
  margin-right: auto;
  margin-inline: auto;
  min-inline-size: 0;
}
.sofaq .sf-process { background: var(--sf-processBackground); }
/* Available space grows independently from the fixed typography and spacing. */
.sofaq[data-contentwidth="fluid"] .sf-inner { max-width: 100% !important; max-inline-size: 100% !important; }
.sofaq .sf-process > .sf-inner { padding-block: var(--sf-pp); }
.sofaq .sf-eyebrow { color: var(--sf-accentColor); font-size: var(--sf-labelSize); font-weight: 700; letter-spacing: .085em; line-height: 1.4; text-transform: uppercase; overflow-wrap: anywhere; }
.sofaq .sf-title, .sofaq .sf-faq-title, .sofaq .sf-card-title {
  color: var(--sf-headingColor); font-weight: var(--sf-titleWeight); line-height: var(--sf-titleLineHeight);
  letter-spacing: -.025em; overflow-wrap: anywhere; text-wrap: pretty;
}
.sofaq .sf-title { font-size: var(--sf-t); margin-block: 14px 5px; }
.sofaq .sf-subtitle { font-size: var(--sf-st); color: var(--sf-mutedColor); font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.sofaq .sf-steps { display: flex; gap: var(--sf-stepGap); list-style: none; padding: 5px; margin: var(--sf-introGap) -5px var(--sf-cardGap); overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--sf-highlightColor) transparent; }
.sofaq .sf-step { display: flex; flex: 1 0 0; align-items: center; gap: 24px; min-inline-size: min(240px, 85cqi); margin: 0; padding: 0; }
.sofaq .sf-step-control { display: flex; flex: 0 1 auto; align-items: center; gap: 20px; min-inline-size: 0; text-decoration: none; color: var(--sf-headingColor); background: none; border: 0; padding: 0; font: inherit; text-align: start; box-shadow: none; }
.sofaq a.sf-step-control { cursor: pointer; }
.sofaq .sf-step-number { display: grid; place-items: center; flex: 0 0 auto; inline-size: var(--sf-numberSize); block-size: var(--sf-numberSize); border: 2px solid var(--sf-highlightColor); border-radius: 50%; background: var(--sf-circleBackground); color: var(--sf-headingColor); font-size: calc(var(--sf-numberSize) * .49); line-height: 1; font-weight: 700; box-shadow: inset 0 0 0 3px var(--sf-faqBackground); transition: background var(--sf-stepDuration, var(--sf-duration)), transform var(--sf-stepDuration, var(--sf-duration)); }
.sofaq a.sf-step-control:hover .sf-step-number, .sofaq a.sf-step-control[aria-selected="true"] .sf-step-number { background: var(--sf-buttonBackground); transform: translateY(-1px); }
.sofaq .sf-step-label { min-inline-size: 0; }
.sofaq .sf-step-title { display: block; font-size: var(--sf-st); font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.sofaq .sf-step-description { display: block; font-size: var(--sf-sd); color: var(--sf-mutedColor); line-height: 1.35; overflow-wrap: anywhere; margin-block-start: 2px; }
.sofaq .sf-step-arrow { flex: 1 0 28px; height: 18px; position: relative; color: var(--sf-highlightColor); opacity: .72; margin-inline: 2px 4px; }
.sofaq .sf-step-arrow::before { content: ''; position: absolute; inset-inline: 0 2px; top: 8px; height: 2px; border-radius: 2px; background: currentColor; background: linear-gradient(90deg, transparent, currentColor 18%, currentColor); }
.sofaq:dir(rtl) .sf-step-arrow::before { background: linear-gradient(270deg, transparent, currentColor 18%, currentColor); }
.sofaq .sf-step-arrow::after { content: ''; position: absolute; inset-inline-end: 2px; top: 4px; width: 10px; height: 10px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; border-radius: 1px; transform: rotate(45deg); }
.sofaq[data-displaysize="compact"] .sf-step-control { gap: 14px; }
.sofaq[data-displaysize="compact"] .sf-step { gap: 18px; }
.sofaq:dir(rtl) .sf-step-arrow::after { transform: rotate(-135deg); }
.sofaq .sf-panels { display: grid; gap: 20px; }
.sofaq .sf-card { display: grid; grid-template-columns: minmax(0,var(--sf-imageWidth)) minmax(0,1fr); grid-template-areas: 'media copy'; background: var(--sf-cardBackground); border-radius: var(--sf-radius); overflow: hidden; min-inline-size: 0; }
.sofaq .sf-card[hidden] { display: none; }
.sofaq .sf-card--no-image { grid-template-columns: minmax(0,1fr) !important; grid-template-areas: 'copy' !important; }
.sofaq .sf-media { grid-area: media; min-inline-size: 0; min-block-size: var(--sf-imageMinHeight); position: relative; background: var(--sf-cardBackground); }
.sofaq .sf-media img { position: absolute; display: block; inline-size: 100%; block-size: 100%; max-inline-size: none; object-fit: cover; object-position: var(--sf-focal,50% 50%); }
.sofaq[data-imagefit="contain"] .sf-media img { object-fit: contain; }
.sofaq .sf-caption { position: absolute; left: 14px; right: 14px; bottom: 12px; width: fit-content; max-inline-size: calc(100% - 28px); color: var(--sf-captionColor); background: var(--sf-captionBackground); border-radius: 3px; padding: 4px 9px; font-size: max(11px,calc(var(--sf-labelSize) - 1px)); line-height: 1.3; letter-spacing: .015em; text-transform: uppercase; font-weight: 700; overflow-wrap: anywhere; }
.sofaq .sf-copy { grid-area: copy; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 10px; padding: clamp(20px,2cqi,32px) var(--sf-cp); min-inline-size: 0; color: var(--sf-cardTextColor); }
.sofaq[data-displaysize="compact"] .sf-copy { padding-block: 22px; gap: 8px; }
.sofaq .sf-copy .sf-eyebrow { color: var(--sf-cardAccentColor); }
.sofaq .sf-card-title { font-size: var(--sf-ct); color: var(--sf-cardTextColor); }
.sofaq .sf-body, .sofaq .sf-answer-inner { font-size: var(--sf-bs); line-height: var(--sf-bodyLineHeight); overflow-wrap: anywhere; }
.sofaq .sf-copy .sf-body { max-inline-size: min(100%,var(--sf-textLineWidth)); }
.sofaq .sf-body :where(p,ul,ol) + :where(p,ul,ol), .sofaq .sf-answer-inner :where(p,ul,ol) + :where(p,ul,ol) { margin-block-start: .65em; }
.sofaq :where(.sf-body,.sf-answer-inner) :where(ul,ol) { padding-inline-start: 1.3em; }
.sofaq :where(.sf-body,.sf-answer-inner) a { color: inherit; text-decoration: underline; text-underline-offset: .18em; }
.sofaq .sf-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; max-inline-size: 100%; min-block-size: 44px; padding: 10px 22px; margin-block-start: 3px; border-radius: var(--sf-buttonRadius); border: 1px solid transparent; color: var(--sf-buttonTextColor); background: var(--sf-buttonBackground); font-size: max(14px,calc(var(--sf-bs) - 2px)); line-height: 1.3; font-weight: 650; text-decoration: none; overflow-wrap: anywhere; transition: transform var(--sf-stepDuration, var(--sf-duration)), box-shadow var(--sf-stepDuration, var(--sf-duration)); }
.sofaq .sf-button:hover { transform: translateY(-2px); box-shadow: 0 5px 18px #0002; color: var(--sf-buttonTextColor); }
.sofaq .sf-button:focus-visible { outline-color: var(--sf-cardTextColor); }
.sofaq .sf-link-arrow { flex: 0 0 auto; display: inline-block; transition: transform var(--sf-stepDuration, var(--sf-duration)); }
.sofaq :where(.sf-button,.sf-text-link):hover .sf-link-arrow { transform: translate(2px,-2px); }
.sofaq[data-imageside="right"] .sf-card { grid-template-columns: minmax(0,1fr) minmax(0,var(--sf-imageWidth)); grid-template-areas: 'copy media'; }
.sofaq .sf-faq { background: var(--sf-faqBackground); }
.sofaq .sf-faq > .sf-inner { padding-block: var(--sf-fp); }
.sofaq .sf-faq-layout { display: grid; grid-template-columns: minmax(0,var(--sf-faqIntroWidth)) minmax(0,1fr); gap: var(--sf-columnGap); align-items: start; }
.sofaq .sf-faq-intro { min-inline-size: 0; }
.sofaq .sf-faq-title { font-size: var(--sf-ft); margin-block: 16px 13px; }
.sofaq .sf-text-link { display: inline-flex; gap: 8px; align-items: center; min-block-size: 44px; margin-block-start: 3px; color: var(--sf-accentColor); font-weight: 650; font-size: max(14px,calc(var(--sf-bs) - 1px)); line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
.sofaq .sf-text-link:hover { color: var(--sf-accentColor); text-decoration: underline; text-underline-offset: .2em; }
.sofaq .sf-faq-list { min-inline-size: 0; }
.sofaq .sf-item { margin: 0; border: 0; border-block-start: var(--sf-borderWidth) solid var(--sf-lineColor); background: transparent; color: var(--sf-textColor); padding: 0; }
.sofaq .sf-item:last-child { border-block-end: var(--sf-borderWidth) solid var(--sf-lineColor); }
.sofaq .sf-question { display: grid; grid-template-columns: 44px minmax(0,1fr) var(--sf-iconSize); align-items: baseline; column-gap: 20px; list-style: none; padding: var(--sf-rowPadding) 4px; margin: 0; min-block-size: 48px; cursor: pointer; color: var(--sf-headingColor); background: transparent; transition: background var(--sf-faqDuration, var(--sf-duration)); }
.sofaq .sf-question::-webkit-details-marker { display: none; }
.sofaq .sf-question::marker { content: ''; }
.sofaq .sf-question:hover { background: var(--sf-hoverBackground); }
.sofaq .sf-question-text { font-size: var(--sf-qs); font-weight: var(--sf-questionWeight); line-height: 1.3; letter-spacing: -.02em; overflow-wrap: anywhere; }
.sofaq .sf-faq-number { color: var(--sf-mutedColor); font-size: max(14px,calc(var(--sf-bs) - 1px)); font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.sofaq .sf-faq-icon { width: var(--sf-iconSize); height: var(--sf-iconSize); position: relative; color: var(--sf-highlightColor); align-self: start; margin-block-start: calc((var(--sf-qs) * 1.3 - var(--sf-iconSize)) / 2); }
.sofaq .sf-faq-icon::before, .sofaq .sf-faq-icon::after { content: ''; position: absolute; background: currentColor; border-radius: 1px; left: 0; top: calc(50% - 1px); width: 100%; height: 2px; transition: transform var(--sf-faqDuration, var(--sf-duration)) var(--sf-ease), opacity var(--sf-faqDuration, var(--sf-duration)) var(--sf-ease); }
.sofaq .sf-faq-icon::after { transform: rotate(90deg); }
.sofaq .sf-item[open] > .sf-question:not([aria-expanded="false"]) .sf-faq-icon::after, .sofaq .sf-question[aria-expanded="true"] .sf-faq-icon::after { transform: rotate(0); opacity: 0; }
.sofaq .sf-question[aria-expanded="false"] .sf-faq-icon::after { transform: rotate(90deg); opacity: 1; }
.sofaq[data-faqicon="chevron"] .sf-faq-icon::before { background: transparent; width: 60%; height: 60%; left: 20%; top: 10%; border-right: 2px solid; border-bottom: 2px solid; transform: rotate(45deg); }
.sofaq[data-faqicon="chevron"] .sf-faq-icon::after { display: none; }
.sofaq[data-faqicon="chevron"] .sf-item[open] > .sf-question:not([aria-expanded="false"]) .sf-faq-icon::before { transform: rotate(225deg); top: 30%; }
.sofaq .sf-answer-inner { padding: 0 calc(var(--sf-iconSize) + 24px) calc(var(--sf-rowPadding) + 4px) 68px; margin-block-start: calc(var(--sf-answerGap) - var(--sf-rowPadding)); padding-block-start: var(--sf-rowPadding); }
.sofaq .sf-answer-inner { max-inline-size: calc(var(--sf-textLineWidth) + 68px + var(--sf-iconSize) + 24px); }
.sofaq[data-faqside="right"] .sf-faq-layout { grid-template-columns: minmax(0,1fr) minmax(0,var(--sf-faqIntroWidth)); }
.sofaq[data-faqside="right"] .sf-faq-intro { grid-column: 2; grid-row: 1; }
.sofaq[data-faqside="right"] .sf-faq-list { grid-column: 1; grid-row: 1; }
.sofaq.sf-hide-intro .sf-faq-layout { grid-template-columns: minmax(0,1fr); }
.sofaq.sf-hide-intro .sf-faq-list { grid-column: 1; }
.sofaq.sf-hide-faq-numbers .sf-faq-number, .sofaq.sf-hide-step-numbers .sf-step-number, .sofaq.sf-hide-arrows .sf-step-arrow { display: none; }
.sofaq.sf-hide-faq-numbers .sf-question { grid-template-columns: minmax(0,1fr) var(--sf-iconSize); }
.sofaq.sf-hide-faq-numbers .sf-answer-inner { padding-inline-start: 4px; }
.sofaq .sf-sr { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@container sofaq (max-width: 1100px) {
  .sofaq .sf-inner { --sf-t: var(--sf-titleSizeTablet); --sf-ct: var(--sf-cardTitleSizeTablet); --sf-ft: var(--sf-faqTitleSizeTablet); --sf-st: var(--sf-stepTitleSizeTablet); --sf-qs: var(--sf-questionSizeTablet); --sf-bs: var(--sf-bodySizeTablet); --sf-sd: var(--sf-stepDescriptionSizeTablet); --sf-g: var(--sf-gutterTablet); --sf-pp: var(--sf-processPaddingTablet); --sf-fp: var(--sf-faqPaddingTablet); --sf-cp: var(--sf-cardPaddingTablet); }
  .sofaq .sf-step { gap: 12px; min-inline-size: min(210px,80cqi); }
  .sofaq .sf-step-control { gap: 12px; }
  .sofaq .sf-steps { gap: min(var(--sf-stepGap),24px); }
  .sofaq .sf-faq-layout { gap: min(var(--sf-columnGap),32px); }
}
@container sofaq (max-width: 960px) {
  .sofaq[data-stackat="early"] .sf-faq-layout { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .sofaq[data-stackat="early"] .sf-faq-intro, .sofaq[data-stackat="early"] .sf-faq-list { grid-column: auto; grid-row: auto; }
}
@container sofaq (max-width: 760px) {
  .sofaq .sf-card, .sofaq[data-imageside="right"] .sf-card { grid-template-columns: minmax(0,1fr); grid-template-areas: 'media' 'copy'; }
  .sofaq[data-mobileimage="last"] .sf-card { grid-template-areas: 'copy' 'media'; }
  .sofaq .sf-media { min-block-size: var(--sf-mobileImageHeight); }
  .sofaq .sf-copy { padding: var(--sf-cp); }
  .sofaq:not([data-stackat="late"]) .sf-faq-layout { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .sofaq:not([data-stackat="late"]) .sf-faq-intro, .sofaq:not([data-stackat="late"]) .sf-faq-list { grid-column: auto; grid-row: auto; }
  .sofaq[data-mobilesteps="stack"] .sf-steps { flex-direction: column; gap: 16px; }
  .sofaq[data-mobilesteps="stack"] .sf-step { min-inline-size: 0; }
  .sofaq[data-mobilesteps="stack"] .sf-step-arrow { display: none; }
  .sofaq[data-mobilesteps="scroll"] .sf-step { flex: 0 0 230px; }
  .sofaq[data-mobilesteps="scroll"] .sf-steps { scroll-snap-type: x proximity; padding-block-end: 12px; }
  .sofaq[data-mobilesteps="scroll"] .sf-step { scroll-snap-align: start; }
}
@container sofaq (max-width: 600px) {
  .sofaq .sf-inner { --sf-t: var(--sf-titleSizeMobile); --sf-ct: var(--sf-cardTitleSizeMobile); --sf-ft: var(--sf-faqTitleSizeMobile); --sf-st: var(--sf-stepTitleSizeMobile); --sf-qs: var(--sf-questionSizeMobile); --sf-bs: var(--sf-bodySizeMobile); --sf-sd: var(--sf-stepDescriptionSizeMobile); --sf-g: var(--sf-gutterMobile); --sf-pp: var(--sf-processPaddingMobile); --sf-fp: var(--sf-faqPaddingMobile); --sf-cp: var(--sf-cardPaddingMobile); }
  .sofaq .sf-title { margin-block-start: 12px; }
  .sofaq .sf-steps { margin-block: var(--sf-introGap) var(--sf-cardGap); }
  .sofaq .sf-step-number { inline-size: min(var(--sf-numberSize),48px); block-size: min(var(--sf-numberSize),48px); font-size: 24px; }
  .sofaq .sf-faq-layout, .sofaq[data-faqside="right"] .sf-faq-layout { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .sofaq .sf-faq-intro, .sofaq .sf-faq-list { grid-column: auto !important; grid-row: auto !important; }
  .sofaq .sf-question { grid-template-columns: 28px minmax(0,1fr) var(--sf-iconSize); gap: 10px; }
  .sofaq .sf-answer-inner { padding-inline-start: 42px; padding-inline-end: 10px; }
  .sofaq .sf-button { padding-inline: 16px; }
}
/* Reduced motion also covers CSS hovers and user changes while the page is open. */
@media (prefers-reduced-motion: reduce) {
  .sofaq *, .sofaq *::before, .sofaq *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.sofaq[data-animation="none"] *, .sofaq[data-animation="none"] *::before, .sofaq[data-animation="none"] *::after { animation: none !important; transition: none !important; }
.sofaq[data-animate-faq="false"] .sf-faq-icon::before, .sofaq[data-animate-faq="false"] .sf-faq-icon::after { transition: none; }
@media (forced-colors: active) {
  .sofaq .sf-faq-icon::before, .sofaq .sf-faq-icon::after, .sofaq .sf-step-arrow::before { background: CanvasText; }
  .sofaq .sf-step-arrow { color: CanvasText; }
  .sofaq .sf-button, .sofaq .sf-card { border: 1px solid CanvasText; }
}
@media print {
  .sofaq { container-type: normal; }
  .sofaq .sf-inner { width: 100%; }
  .sofaq .sf-card[hidden] { display: grid !important; }
  .sofaq .sf-card { break-inside: avoid; }
  .sofaq .sf-item { height: auto !important; overflow: visible !important; break-inside: avoid; }
  .sofaq .sf-answer { display: block !important; }
  .sofaq .sf-step-arrow, .sofaq .sf-faq-icon { display: none; }
}
