

.faq-carousel{
  --fcar-gap: clamp(16px, 1.6vw, 26px);
  --fcar-w:   clamp(300px, 30vw, 384px);
  --fcar-h:   clamp(420px, 54vh, 472px);   
  padding-top: clamp(40px, 6vh, 72px);
  padding-bottom: clamp(40px, 6vh, 72px);
  overflow: hidden;               
}


.faq-carousel .fcar-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:24px; flex-wrap:wrap;
  margin-bottom: clamp(20px, 3vh, 32px);
}
.faq-carousel .faq-section-h{ margin:0; }

.fcar-ctl{ display:flex; align-items:center; gap:14px; }
.fcar-count{
  font-variant-numeric: tabular-nums; letter-spacing:.04em;
  font-size:14px; color:var(--text-mute); min-width:6ch; text-align:center;
}
.fcar-count b{ color:var(--ink); font-weight:600; }
.fcar-btn{
  -webkit-appearance:none; appearance:none; cursor:pointer;
  width:44px; height:44px; border-radius:2px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--bg-card,#fff); border:1px solid var(--rule); color:var(--ink);
  transition: border-color .18s, color .18s, background .18s, box-shadow .18s;
}
.fcar-btn:hover{ border-color:var(--gilt); color:var(--gilt-deep); }
.fcar-btn:focus-visible{ outline:2px solid var(--gilt-deep); outline-offset:2px; }
.fcar-btn:active{ background:var(--paper); }
.fcar-btn svg{ width:18px; height:18px; display:block; }


.faq-carousel .fcar-viewport{
  
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  scrollbar-width:none;                 
}
.faq-carousel .fcar-viewport::-webkit-scrollbar{ display:none; }
.faq-carousel .faq-list{
  display:flex; gap:var(--fcar-gap);
  margin:0; padding:0; list-style:none;
}
.faq-carousel .faq-list > .faq-item::before{ content:none; }  


.faq-carousel.is-enhanced .fcar-viewport{ overflow:hidden; scroll-snap-type:none; touch-action:pan-y; transition: height .45s cubic-bezier(.22,.61,.36,1); }
.faq-carousel.is-enhanced.is-dragging{ cursor:grabbing; }
.faq-carousel.is-enhanced.is-dragging .faq-list{ transition:none; user-select:none; }
.faq-carousel.is-enhanced .faq-list{
  transition: transform .52s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}

.faq-carousel.is-enhanced:not(.fcar-ready) .fcar-viewport,
.faq-carousel.is-enhanced:not(.fcar-ready) .faq-list,
.faq-carousel.is-enhanced:not(.fcar-ready) .faq-item{ transition:none !important; }


.faq-carousel .faq-item{
  flex:0 0 var(--fcar-w); width:var(--fcar-w); height:var(--fcar-h);
  scroll-snap-align:center;
  display:flex; flex-direction:column;
  background:var(--bg-card,#fff); border:1px solid var(--rule); border-radius:2px;
  box-shadow: 0 1px 2px rgba(31,63,55,.05), 0 12px 28px -18px rgba(31,63,55,.22);
  padding: clamp(20px, 1.8vw, 28px);
  overflow:hidden;
  transition: box-shadow .25s, border-color .25s, transform .25s, opacity .25s;
}
.faq-carousel.is-enhanced .faq-item.is-active{
  border-color: color-mix(in srgb, var(--gilt) 55%, var(--rule));
  box-shadow: 0 2px 4px rgba(31,63,55,.06), 0 20px 40px -20px rgba(31,63,55,.30);
}

.faq-carousel.is-enhanced .faq-item:not(.is-active){ opacity:.5; transform:scale(.97); }

.faq-carousel .faq-item > summary::before{
  content:""; display:block;
  width:34px; height:2px; background:var(--gilt);
  margin-bottom:14px; flex:0 0 auto;
}


.faq-carousel .faq-item > summary{
  display:block;                  
  list-style:none; cursor:default;
  font-family:var(--font-display);
  font-size: clamp(17px, 1.25vw, 20px); line-height:1.24; font-weight:600;
  letter-spacing:-.01em; color:var(--ink);
  margin:0 0 14px; padding:0;
}
.faq-carousel .faq-item > summary:hover{ color:var(--ink); }   
.faq-carousel .faq-item > summary::-webkit-details-marker{ display:none; }
.faq-carousel .faq-item > summary .faq-toggle{ display:none; }   


.faq-carousel .faq-item::details-content{
  display:flex; flex-direction:column;
  flex:1 1 auto; min-height:0; overflow:hidden;
}


.faq-carousel .faq-item .faq-answer{
  flex:1 1 auto; min-height:0;
  overflow-y:auto; overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin; scrollbar-color: var(--sand,#DCD2BE) transparent;
  font-size: clamp(14px, 1vw, 15px); line-height:1.62; color:var(--text);
  padding-right:6px;
}
.faq-carousel .faq-item .faq-answer::-webkit-scrollbar{ width:6px; }
.faq-carousel .faq-item .faq-answer::-webkit-scrollbar-thumb{ background:var(--sand,#DCD2BE); border-radius:2px; }
.faq-carousel .faq-item[data-overflow="1"] .faq-answer{
  -webkit-mask-image: linear-gradient(180deg,#000 calc(100% - 26px), transparent);
          mask-image: linear-gradient(180deg,#000 calc(100% - 26px), transparent);
}
.faq-carousel .faq-item[data-overflow="1"] .faq-answer.is-end{
  -webkit-mask-image:none; mask-image:none;     
}
.faq-carousel .faq-answer > :first-child{ margin-top:0; }
.faq-carousel .faq-answer > :last-child{ margin-bottom:0; }
.faq-carousel .faq-answer p{ margin:0 0 .7em; }


.faq-carousel .faq-answer ul{ list-style:none; margin:0 0 .4em; padding:0; }
.faq-carousel .faq-answer ul li{ position:relative; padding-left:18px; margin:0 0 .5em; }
.faq-carousel .faq-answer ul li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:9px; height:2px; background:var(--gilt);
}

.faq-carousel .faq-answer ol{ list-style:none; counter-reset:faqnum; margin:0 0 .4em; padding:0; }
.faq-carousel .faq-answer ol li{ position:relative; counter-increment:faqnum; margin:0 0 .5em; padding-left:24px; }
.faq-carousel .faq-answer ol li::before{
  content:counter(faqnum) "."; position:absolute; left:0; top:0;
  color:var(--gilt-deep); font-weight:700; font-variant-numeric:tabular-nums;
}
.faq-carousel .faq-answer li:last-child{ margin-bottom:0; }
.faq-carousel .faq-answer strong{ color:var(--ink); font-weight:600; }


.faq-carousel .faq-item.is-clone{ pointer-events:none; }


@media (max-width:640px){
  
  .faq-carousel{ --fcar-gap:14px; --fcar-w:min(84vw,360px); }
  .faq-carousel .faq-list{ align-items:flex-start; }
  .faq-carousel .faq-item{ height:auto; max-height:min(74vh,520px); }
  .faq-carousel .fcar-head{ align-items:center; }
  .fcar-ctl{ width:100%; justify-content:space-between; }
}


@media (prefers-reduced-motion:reduce){
  .faq-carousel.is-enhanced .faq-list{ transition:none; }
  .faq-carousel.is-enhanced .fcar-viewport{ transition:none; }
  .faq-carousel .faq-item{ transition:none; }
}
