/* Approved FAQ v1, scoped without increasing prototype selector specificity. */
.faq-page { color:#052a5f; background:#fff; font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif; }
.faq-page *, .faq-page *::before, .faq-page *::after { box-sizing:border-box; }
.faq-page :where(p,h1,h2) { margin:0; }
:where(.faq-page) .faq-container { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
:where(.faq-page) .faq-hero { background:#f2f7fd; padding:68px 0 62px; }
:where(.faq-page) .faq-hero__grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; }
:where(.faq-page) .faq-eyebrow { color:#2766b9; font-size:12px; letter-spacing:.18em; margin-bottom:18px!important; }
:where(.faq-page) .faq-hero h1 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:46px; font-weight:600; letter-spacing:.04em; line-height:1.5; }
:where(.faq-page) .faq-hero__headline { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:30px; line-height:1.85; letter-spacing:.045em; }
:where(.faq-page) .faq-intro { padding:48px 0 0; }
:where(.faq-page) .faq-intro>p { font-size:15px; line-height:2; text-align:center; color:#3c536d; }
:where(.faq-page) .faq-index { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:32px auto 0; border-block:1px solid #d4e1ef; }
:where(.faq-page) .faq-index a { display:flex; gap:15px; align-items:center; justify-content:center; padding:22px 16px; color:#052a5f; text-decoration:none; font-size:15px; }
:where(.faq-page) .faq-index a+a { border-left:1px solid #d4e1ef; }
:where(.faq-page) .faq-index__number { color:#2766b9; font-size:12px; letter-spacing:.08em; }
:where(.faq-page) .faq-index a>span:last-child { color:#2766b9; margin-left:10px; }
:where(.faq-page) .faq-content { width:min(900px,100%); margin:62px auto 80px; }
:where(.faq-page) .faq-category { scroll-margin-top:120px; }
:where(.faq-page) .faq-category+.faq-category { margin-top:58px; }
:where(.faq-page) .faq-category h2 { font-size:24px; line-height:1.6; font-weight:600; margin-bottom:23px; letter-spacing:.035em; display:flex; align-items:center; gap:20px; }
:where(.faq-page) .faq-category h2>span { color:#2766b9; font-size:14px; font-weight:400; letter-spacing:.08em; }
:where(.faq-page) .faq-list { border-top:1px solid #ccdae9; }
:where(.faq-page) .faq-row { border-bottom:1px solid #ccdae9; }
:where(.faq-page) .faq-row summary { display:grid; grid-template-columns:22px minmax(0,1fr) 20px; align-items:center; gap:18px; padding:25px 12px; cursor:pointer; list-style:none; font-size:17px; line-height:1.75; font-weight:500; }
:where(.faq-page) .faq-row summary::-webkit-details-marker { display:none; }
:where(.faq-page) .faq-q { color:#2766b9; font-family:Georgia,serif; font-size:23px; font-weight:400; align-self:start; line-height:1.3; }
:where(.faq-page) .faq-toggle { position:relative; width:18px; height:18px; color:#2766b9; }
:where(.faq-page) .faq-toggle::before, :where(.faq-page) .faq-toggle::after { content:""; position:absolute; background:currentColor; top:8px; left:2px; width:14px; height:1.5px; }
:where(.faq-page) .faq-toggle::after { transform:rotate(90deg); }
:where(.faq-page) .faq-row[open] .faq-toggle::after { display:none; }
:where(.faq-page) .faq-row[open] summary { color:#2766b9; }
:where(.faq-page) .faq-answer { display:grid; grid-template-columns:22px minmax(0,1fr); gap:18px; padding:24px 52px 26px 12px; background:#f7fafe; }
:where(.faq-page) .faq-a { color:#6182ac; font-family:Georgia,serif; font-size:23px; line-height:1.5; }
:where(.faq-page) .faq-answer p { color:#334b65; font-size:15px; line-height:2; overflow-wrap:anywhere; }
:where(.faq-page) .faq-consult { margin-top:52px; padding-top:30px; border-top:1px solid #dce7f2; display:flex; justify-content:space-between; align-items:center; gap:24px; }
:where(.faq-page) .faq-consult p { font-size:14px; line-height:1.9; }
:where(.faq-page) .faq-consult button { color:#2766b9; border:1px solid #8eaed7; background:#fff; border-radius:3px; font:inherit; font-size:14px; padding:13px 24px; cursor:pointer; white-space:nowrap; }
:where(.faq-page) .faq-consult button span { margin-left:32px; }
.faq-page :where(summary,a,button):focus-visible { outline:3px solid #2766b9; outline-offset:4px; }
@media (hover:hover) {
 :where(.faq-page) .faq-row summary:hover { background:#f7fafe; }
 :where(.faq-page) .faq-index a:hover, :where(.faq-page) .faq-consult button:hover { background:#f2f7fd; }
}
@media (max-width:959px) {
 :where(.faq-page) .faq-hero { padding:42px 0 38px; }
 :where(.faq-page) .faq-hero__grid { grid-template-columns:1fr; gap:24px; }
 :where(.faq-page) .faq-eyebrow { font-size:11px; margin-bottom:12px!important; }
 :where(.faq-page) .faq-hero h1 { font-size:32px; }
 :where(.faq-page) .faq-hero__headline { font-size:23px; line-height:1.8; letter-spacing:.035em; }
 :where(.faq-page) .faq-intro { padding-top:30px; }
 :where(.faq-page) .faq-intro>p { font-size:14px; text-align:left; line-height:1.9; }
 :where(.faq-page) .faq-pc-break { display:none; }
 :where(.faq-page) .faq-index { grid-template-columns:1fr; margin-top:24px; }
 :where(.faq-page) .faq-index a { justify-content:flex-start; padding:16px 5px; font-size:14px; gap:18px; }
 :where(.faq-page) .faq-index a+a { border-left:0; border-top:1px solid #d4e1ef; }
 :where(.faq-page) .faq-index a>span:last-child { margin-left:auto; }
 :where(.faq-page) .faq-content { margin:40px auto 48px; }
 :where(.faq-page) .faq-category { scroll-margin-top:90px; }
 :where(.faq-page) .faq-category+.faq-category { margin-top:38px; }
 :where(.faq-page) .faq-category h2 { font-size:20px; gap:12px; margin-bottom:18px; letter-spacing:0; }
 :where(.faq-page) .faq-category h2>span { font-size:12px; }
 :where(.faq-page) .faq-row summary { grid-template-columns:20px minmax(0,1fr) 16px; gap:10px; padding:20px 0; font-size:15px; line-height:1.8; }
 :where(.faq-page) .faq-q { font-size:21px; }
 :where(.faq-page) .faq-toggle { width:16px; }
 :where(.faq-page) .faq-toggle::before, :where(.faq-page) .faq-toggle::after { left:1px; }
 :where(.faq-page) .faq-answer { grid-template-columns:20px minmax(0,1fr); gap:10px; padding:18px 12px 21px 0; }
 :where(.faq-page) .faq-answer p { font-size:14px; line-height:1.95; }
 :where(.faq-page) .faq-a { font-size:21px; }
 :where(.faq-page) .faq-consult { display:block; margin-top:32px; padding-top:25px; }
 :where(.faq-page) .faq-consult button { margin-top:15px; }
}
