.page-faq{
  --faq-navy:#0B1F3A;
  --faq-navy-light:#142C4C;
  --faq-cream:#F4EFE6;
  --faq-cream-dark:#E8E1D4;
  --faq-rust:#E05A33;
  --faq-gold:#D4AF37;
  --faq-ink:#1C1815;
  --faq-link-blue:#4A7BA6;
  --faq-gray:#6B6B6B;
  --faq-line:#D8D0C4;
  --faq-border-brown:#B8B2A7;
  --faq-shadow-hard:8px 8px 0 rgba(27,25,23,0.2);
  --faq-shadow-soft:4px 4px 0 rgba(27,25,23,0.12);
  --faq-border-thick:4px solid var(--faq-border-brown);
  --faq-font-head:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --faq-font-body:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --faq-font-data:'Roboto Mono','JetBrains Mono','Courier New',monospace;
  --faq-header-h:64px;
}
.page-faq{
  background:var(--faq-cream);
  color:var(--faq-ink);
  font-family:var(--faq-font-body);
  line-height:1.75;
}
.page-faq .container-wide{
  max-width:var(--content-max);
  margin:0 auto;
  padding:0 20px;
}
.page-faq .faq-hero{
  padding-top:48px;
  padding-bottom:40px;
  display:flex;
  flex-direction:column;
  gap:32px;
}
.page-faq .faq-hero-copy{
  position:relative;
}
.page-faq .breadcrumb{
  font-size:13px;
  color:var(--faq-gray);
  margin-bottom:12px;
}
.page-faq .breadcrumb a{
  color:var(--faq-link-blue);
  text-decoration:none;
}
.page-faq .breadcrumb-sep{
  margin:0 6px;
  color:var(--faq-gold);
}
.page-faq .breadcrumb-current{
  color:var(--faq-navy);
  font-weight:700;
}
.page-faq .section-index,
.page-faq .section-index-light{
  font-family:var(--faq-font-data);
  font-size:13px;
  letter-spacing:2px;
  text-transform:uppercase;
}
.page-faq .section-index{
  color:var(--faq-rust);
  display:block;
  margin-bottom:8px;
  font-weight:700;
}
.page-faq .section-index-light{
  color:var(--faq-gold);
}
.page-faq .faq-page-title{
  font-family:var(--faq-font-head);
  font-size:32px;
  font-weight:900;
  line-height:1.25;
  color:var(--faq-navy);
  margin:0 0 16px;
  letter-spacing:-0.5px;
}
.page-faq .faq-page-lead{
  font-size:16px;
  color:var(--faq-ink);
  max-width:780px;
  margin-bottom:24px;
}
.page-faq .faq-searchbox{
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--faq-cream-dark);
  border:4px solid var(--faq-border-brown);
  box-shadow:var(--faq-shadow-soft);
  padding:8px 14px;
  max-width:560px;
}
.page-faq .faq-searchbox .data-label{
  font-family:var(--faq-font-data);
  font-size:12px;
  letter-spacing:1px;
  color:var(--faq-rust);
  font-weight:700;
  white-space:nowrap;
}
.page-faq .faq-search-input{
  flex:1;
  background:transparent;
  border:none;
  outline:none;
  font-family:var(--faq-font-body);
  font-size:14px;
  color:var(--faq-ink);
  min-width:0;
}
.page-faq .faq-search-input::placeholder{
  color:var(--faq-gray);
}
.page-faq .faq-hero-index{
  background:var(--faq-navy);
  padding:24px;
  border:4px solid var(--faq-navy-light);
  box-shadow:var(--faq-shadow-hard);
}
.page-faq .faq-hero-index .section-index-light{
  display:block;
  margin-bottom:14px;
  font-size:12px;
}
.page-faq .faq-index-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.page-faq .faq-index-list a{
  display:block;
  color:var(--faq-cream);
  text-decoration:none;
  font-size:15px;
  font-weight:500;
  padding:4px 0;
  border-bottom:1px solid rgba(244,239,230,0.15);
  transition:color 0.2s ease,padding-left 0.2s ease;
}
.page-faq .faq-index-list a:hover,
.page-faq .faq-index-list a:focus-visible{
  color:var(--faq-gold);
  padding-left:8px;
  outline:none;
}
.page-faq .faq-layout{
  display:flex;
  flex-direction:column;
  gap:32px;
  padding-bottom:80px;
}
.page-faq .faq-sidebar{
  background:var(--faq-cream-dark);
  border:var(--faq-border-thick);
  box-shadow:var(--faq-shadow-soft);
  padding:20px;
  flex-shrink:0;
}
.page-faq .faq-sidebar-title{
  font-family:var(--faq-font-head);
  font-size:18px;
  font-weight:900;
  color:var(--faq-navy);
  margin:0 0 12px;
  padding-bottom:10px;
  border-bottom:2px solid var(--faq-navy);
}
.page-faq .faq-sidebar-list{
  list-style:none;
  margin:0 0 16px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.page-faq .faq-sidebar-list a{
  display:block;
  padding:7px 8px;
  color:var(--faq-ink);
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  border-left:3px solid transparent;
  transition:background 0.2s ease,border-color 0.2s ease,color 0.2s ease;
}
.page-faq .faq-sidebar-list a:hover,
.page-faq .faq-sidebar-list a:focus-visible{
  background:var(--faq-cream);
  border-left-color:var(--faq-rust);
  color:var(--faq-navy);
  outline:none;
}
.page-faq .faq-sidebar-note{
  border-top:1px dashed var(--faq-border-brown);
  padding-top:12px;
}
.page-faq .faq-sidebar-note p{
  font-size:13px;
  color:var(--faq-gray);
  margin:10px 0 0;
}
.page-faq .faq-panels{
  flex:1;
  min-width:0;
}
.page-faq .faq-group{
  margin-bottom:48px;
}
.page-faq .faq-group-header{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:20px;
  border-bottom:3px solid var(--faq-navy);
  padding-bottom:10px;
}
.page-faq .faq-group-header .section-index{
  font-size:16px;
  margin-bottom:0;
  color:var(--faq-rust);
}
.page-faq .faq-group-title{
  font-family:var(--faq-font-head);
  font-size:24px;
  font-weight:900;
  color:var(--faq-navy);
  margin:0;
}
.page-faq .faq-item{
  background:var(--faq-cream);
  border:3px solid var(--faq-border-brown);
  box-shadow:var(--faq-shadow-soft);
  margin-bottom:14px;
}
.page-faq .faq-item.is-open{
  box-shadow:var(--faq-shadow-hard);
}
.page-faq .faq-toggle{
  display:flex;
  align-items:center;
  width:100%;
  background:transparent;
  border:none;
  cursor:pointer;
  padding:16px 16px;
  text-align:left;
  gap:12px;
  font-family:var(--faq-font-body);
}
.page-faq .faq-toggle:focus-visible{
  outline:3px solid var(--faq-rust);
  outline-offset:-3px;
}
.page-faq .faq-q-num{
  font-family:var(--faq-font-data);
  font-size:13px;
  font-weight:700;
  color:var(--faq-rust);
  background:var(--faq-cream-dark);
  padding:2px 8px;
  border:1px solid var(--faq-border-brown);
  flex-shrink:0;
}
.page-faq .faq-q-text{
  flex:1;
  font-size:16px;
  font-weight:700;
  color:var(--faq-navy);
  line-height:1.5;
}
.page-faq .faq-toggle-icon{
  flex-shrink:0;
  width:20px;
  height:20px;
  position:relative;
  border:2px solid var(--faq-navy);
  transition:background 0.2s ease,transform 0.2s ease;
}
.page-faq .faq-toggle-icon::before,
.page-faq .faq-toggle-icon::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:10px;
  height:2px;
  background:var(--faq-navy);
  transition:transform 0.3s ease;
}
.page-faq .faq-toggle-icon::before{
  transform:translate(-50%,-50%);
}
.page-faq .faq-toggle-icon::after{
  transform:translate(-50%,-50%) rotate(90deg);
}
.page-faq .faq-item.is-open .faq-toggle-icon{
  background:var(--faq-gold);
}
.page-faq .faq-item.is-open .faq-toggle-icon::after{
  transform:translate(-50%,-50%) rotate(0deg);
}
.page-faq .faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.45s ease;
}
.page-faq .faq-item.is-open .faq-answer{
  max-height:800px;
}
.page-faq .faq-answer-inner{
  padding:0 16px 20px;
  border-top:1px dashed var(--faq-border-brown);
}
.page-faq .faq-answer-inner p{
  font-size:15px;
  line-height:1.85;
  margin:14px 0 0;
}
.page-faq .faq-answer-inner .faq-contact-list{
  list-style:none;
  margin:14px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.page-faq .faq-answer-inner .faq-contact-list li{
  font-size:14px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  background:var(--faq-cream-dark);
  padding:8px 12px;
}
.page-faq .faq-answer-inner .faq-contact-list .data-label{
  font-family:var(--faq-font-data);
  font-size:11px;
  color:var(--faq-navy);
  font-weight:700;
  letter-spacing:1px;
}
.page-faq .faq-media-figure{
  margin:20px 0 0;
}
.page-faq .figure-frame{
  position:relative;
  display:block;
  background:var(--faq-navy);
  border:var(--faq-border-thick);
  box-shadow:var(--faq-shadow-soft);
}
.page-faq .figure-frame img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
}
.page-faq .figure-coord{
  position:absolute;
  bottom:8px;
  right:8px;
  font-family:var(--faq-font-data);
  font-size:11px;
  color:var(--faq-gold);
  background:var(--faq-navy);
  padding:2px 6px;
  border:1px solid var(--faq-gold);
}
.page-faq .faq-callout{
  margin-top:24px;
  padding:24px;
  background:var(--faq-navy);
  color:var(--faq-cream);
  border:4px solid var(--faq-navy-light);
  box-shadow:var(--faq-shadow-hard);
  display:flex;
  flex-direction:column;
  gap:16px;
}
.page-faq .faq-callout p{
  margin:0;
  font-size:15px;
}
.page-faq .faq-callout a{
  color:var(--faq-gold);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:4px;
}
.page-faq .faq-callout .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 20px;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  align-self:flex-start;
}
.page-faq .btn-gold{
  background:var(--faq-gold);
  color:var(--faq-navy);
  border:3px solid var(--faq-navy);
  box-shadow:4px 4px 0 var(--faq-navy);
  transition:transform 0.2s ease,box-shadow 0.2s ease;
}
.page-faq .btn-gold:hover,
.page-faq .btn-gold:focus-visible{
  transform:translateY(-2px);
  box-shadow:6px 6px 0 var(--faq-navy);
  outline:none;
}
.page-faq .tag{
  display:inline-block;
  font-family:var(--faq-font-data);
  font-size:11px;
  font-weight:700;
  letter-spacing:0.5px;
  padding:2px 8px;
  text-transform:uppercase;
}
.page-faq .tag-gold{
  background:var(--faq-gold);
  color:var(--faq-navy);
}
@media (min-width:768px){
  .page-faq .faq-page-title{
    font-size:40px;
  }
  .page-faq .faq-hero{
    flex-direction:row;
    justify-content:space-between;
    align-items:flex-start;
    gap:48px;
  }
  .page-faq .faq-hero-copy{
    flex:1.4;
  }
  .page-faq .faq-hero-index{
    flex:1;
    max-width:340px;
  }
  .page-faq .faq-layout{
    flex-direction:row;
    align-items:flex-start;
    gap:40px;
  }
  .page-faq .faq-sidebar{
    width:240px;
    position:sticky;
    top:calc(var(--faq-header-h) + 24px);
  }
  .page-faq .faq-panels{
    flex:1;
  }
  .page-faq .faq-item{
    margin-bottom:16px;
  }
  .page-faq .faq-toggle{
    padding:18px 20px;
  }
  .page-faq .faq-answer-inner{
    padding:0 20px 24px;
  }
}
@media (min-width:1024px){
  .page-faq .faq-page-title{
    font-size:48px;
  }
  .page-faq .faq-hero{
    gap:64px;
  }
  .page-faq .faq-layout{
    gap:56px;
  }
}
.page-faq .faq-search-input::-webkit-search-cancel-button{
  -webkit-appearance:none;
}
