@charset "utf-8";
/* =====================================================================
   よくある質問（/qa 一覧 ＋ TOP抜粋）
   ・アコーディオン部品はグローバルクラス（/qa・TOPで共用）
   ・ページ固有レイアウトは #qa（下層）／.faq-top（TOP）でスコープ
   ・bare な main{} は書かない（TOP抜粋でも読み込むため）
   ===================================================================== */

/* ---- アコーディオン部品（共通） ---- */
.faq-list{ list-style:none; margin:0; padding:0; }
.faq-item{ background:#fff; border:1px solid #e2ddd0; border-radius:6px; overflow:hidden; }
.faq-item + .faq-item{ margin-top:14px; }
.faq-q{ position:relative; display:flex; align-items:center; cursor:pointer; background:#fff; }
.faq-q:focus{ outline:2px solid #A5955F; outline-offset:-2px; }
.faq-a{ display:none; border-top:1px dashed #d9d3c4; background:#fbfaf6; }
.faq-a__inner{ display:flex; align-items:flex-start; }
.faq-a-text{ min-width:0; flex:1; color:#333; line-height:1.9; }
.faq-a-text a{ color:#0D4A3B; text-decoration:underline; }
.faq-badge{ flex:none; display:flex; align-items:center; justify-content:center; font-weight:700; color:#fff; border-radius:4px; font-family:'Sawarabi Mincho',serif; }
.faq-badge-q{ background:#0D4A3B; }
.faq-badge-a{ background:#A5955F; }
.faq-q-text{ flex:1; font-weight:700; color:#222; }
/* ＋／− トグル（CSSのみ） */
.faq-toggle::before,
.faq-toggle::after{ content:""; position:absolute; background:#0D4A3B; transition:transform .25s, opacity .25s; top:50%; left:50%; }
.faq-item.is-open .faq-toggle::after{ transform:translate(-50%,-50%) rotate(90deg); opacity:0; }

/* ---- /qa 下層ページ ---- */
#qa .qa-inner{ margin:0 auto; }
#qa .qa-empty{ text-align:center; color:#666; }

/* ---- TOP抜粋（.faq-top） ---- */
.faq-top{ background:#f4f2ec; }
.faq-top .faq-top-inner{ margin:0 auto; }
.faq-top .faq-top-head{ text-align:center; }
.faq-top .faq-top-ttl .en{ display:block; font-family:'Noto Sans JP',sans-serif; font-weight:700; color:#0D4A3B; line-height:1; letter-spacing:.12em; }
.faq-top .faq-top-ttl .jp{ display:block; color:#333; letter-spacing:.06em; }
.faq-top .faq-top-btn{ text-align:center; }
.faq-top .faq-top-btn a{ display:inline-block; background:#0D4A3B; color:#fff; text-decoration:none; border-radius:4px; transition:opacity .2s; }
.faq-top .faq-top-btn a:hover{ opacity:.8; }

/* ============================ PC ============================ */
@media screen and (min-width: 768px), print {
#qa .qa-inner{ max-width:900px; padding:10px 0 20px; }
.faq-q{ padding:22px 60px 22px 22px; }
.faq-badge{ width:32px; height:32px; font-size:17px; margin-right:16px; }
.faq-q-text{ font-size:17px; line-height:1.6; }
.faq-toggle{ position:absolute; top:0; right:22px; width:20px; height:100%; }
.faq-toggle::before{ width:16px; height:2px; margin:-1px 0 0 -8px; }
.faq-toggle::after{ width:2px; height:16px; margin:-8px 0 0 -1px; }
.faq-a__inner{ padding:22px; }
.faq-a-text{ font-size:16px; }

/* TOP抜粋 PC */
.faq-top{ padding:70px 0; }
.faq-top .faq-top-inner{ max-width:900px; width:92%; }
.faq-top .faq-top-ttl{ margin-bottom:36px; }
.faq-top .faq-top-ttl .en{ font-size:38px; margin-bottom:10px; }
.faq-top .faq-top-ttl .jp{ font-size:20px; }
.faq-top .faq-top-btn{ margin-top:36px; }
.faq-top .faq-top-btn a{ padding:14px 50px; font-size:16px; }
}

/* ============================ SP ============================ */
@media screen and (max-width: 767px) {
#qa .qa-inner{ width:92%; padding:4vw 0 8vw; }
.faq-q{ padding:4vw 11vw 4vw 4vw; }
.faq-badge{ width:7vw; height:7vw; font-size:4vw; margin-right:3vw; }
.faq-q-text{ font-size:4vw; line-height:1.6; }
.faq-toggle{ position:absolute; top:0; right:4vw; width:5vw; height:100%; }
.faq-toggle::before{ width:4vw; height:2px; margin:-1px 0 0 -2vw; }
.faq-toggle::after{ width:2px; height:4vw; margin:-2vw 0 0 -1px; }
.faq-a__inner{ padding:4vw; }
.faq-a-text{ font-size:3.8vw; }

/* TOP抜粋 SP */
.faq-top{ padding:12vw 0; }
.faq-top .faq-top-inner{ width:90%; }
.faq-top .faq-top-ttl{ margin-bottom:7vw; }
.faq-top .faq-top-ttl .en{ font-size:8vw; margin-bottom:2vw; }
.faq-top .faq-top-ttl .jp{ font-size:4.2vw; }
.faq-top .faq-top-btn{ margin-top:7vw; }
.faq-top .faq-top-btn a{ padding:3.5vw 12vw; font-size:3.8vw; }
}
