:root{
  --dg1:#005A45; --dg2:#00402F; --green:#3DB54A; --lgreen:#7FE08A; --pale:#EEF7EF;
  --ink:#1A1A1A; --gray:#F4F5F3; --red:#E60012; --yellow:#F6D400; --note:#555;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--gray);color:var(--ink);font-family:"Noto Sans JP",sans-serif;line-height:1.6;overflow-x:hidden}
img{max-width:100%;display:block}
.num{font-family:Poppins,sans-serif}
.inner{width:100%;max-width:880px;margin:0 auto;padding:0 20px}

/* ===== ヘッダー ===== */
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid #E3E6E1}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:12px;height:56px}
.top__back{display:inline-flex;align-items:center;gap:6px;color:var(--dg1);font-size:13px;font-weight:700;text-decoration:none}
.top__back:hover{text-decoration:underline}
.top__brand{font:700 12px Poppins,"Noto Sans JP",sans-serif;color:var(--note);letter-spacing:.5px}

/* ===== ヒーロー ===== */
.hero{position:relative;background:linear-gradient(180deg,var(--dg1),var(--dg2));color:#fff;text-align:center;padding:44px 20px 96px;overflow:hidden}
.hero__slash{position:relative;font:600 14px Poppins,sans-serif;letter-spacing:1px}
.hero__lead{position:relative;margin:12px 0 0;font-size:16px;font-weight:700}
.hero__title{position:relative;margin:4px 0 0;font-size:44px;font-weight:900;line-height:1.25;color:#fff}

/* ===== 検索・カテゴリ ===== */
.panel{position:relative;margin:-64px auto 0;max-width:880px;background:#fff;border-radius:20px;padding:28px 28px 24px;box-shadow:0 6px 24px rgba(0,64,47,.10)}
.search{position:relative}
.search svg{position:absolute;left:18px;top:50%;transform:translateY(-50%);pointer-events:none}
.search input{width:100%;height:54px;border:2px solid #D7E3D9;border-radius:99px;padding:0 48px 0 50px;font:500 16px "Noto Sans JP",sans-serif;color:var(--ink);background:var(--pale);outline:none;transition:border-color .2s,background .2s}
.search input:focus{border-color:var(--green);background:#fff}
.search__clr{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;border-radius:50%;background:transparent;color:var(--note);font-size:18px;cursor:pointer;display:none}
.search__clr.on{display:block}
.search__hint{margin:8px 4px 0;font-size:12px;color:var(--note)}
.nav{margin-top:18px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.search input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.nav__item{text-align:left;font-family:inherit;border:2px solid transparent;cursor:pointer;display:flex;white-space:nowrap;align-items:center;gap:6px;padding:10px 12px;border-radius:12px;background:var(--pale);color:var(--dg1);font-size:13px;font-weight:700;text-decoration:none;line-height:1.35;transition:transform .2s,box-shadow .2s}
.nav__item svg{flex:none;color:var(--green)}
@media (hover:hover){.nav__item:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,90,69,.12)}}
.nav__item[aria-pressed="true"]{background:var(--dg1);color:#fff;border-color:var(--dg1)}
.nav__item[aria-pressed="true"] svg{color:var(--lgreen)}
.nav__item[aria-pressed="true"] .nav__n{color:var(--dg1)}
.nav__item:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.nav__item--all{justify-content:center}
.nav__n{margin-left:auto;flex:none;min-width:24px;height:24px;border-radius:99px;background:#fff;color:var(--green);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 6px}

/* ===== Q&A ===== */
.body{padding:40px 0 72px}
.tools{display:flex;justify-content:flex-end;margin-bottom:8px}
.tools button{border:none;background:none;color:var(--dg1);font:700 13px "Noto Sans JP",sans-serif;cursor:pointer;padding:6px 4px;text-decoration:underline;text-underline-offset:3px}
.cat{scroll-margin-top:72px}
.cat + .cat{margin-top:44px}
.cat__head{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-size:22px;font-weight:900;color:var(--dg1)}
.cat__icon{flex:none;width:42px;height:42px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center}
.cat__list{display:flex;flex-direction:column;gap:10px}
.qa{background:#fff;border-radius:14px;border:1px solid #E3E6E1;overflow:hidden;transition:box-shadow .2s,border-color .2s}
.qa[open]{border-color:var(--green);box-shadow:0 6px 18px rgba(0,90,69,.10)}
.qa summary{list-style:none;display:flex;align-items:flex-start;gap:14px;padding:18px 20px;cursor:pointer}
.qa summary::-webkit-details-marker{display:none}
.qa summary:focus-visible{outline:3px solid var(--yellow);outline-offset:-3px;border-radius:14px}
.qa__q,.qa__al{flex:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;line-height:1}
.qa__q{background:var(--dg1);color:#fff}
.qa__qt{flex:1;padding-top:3px;font-size:16px;font-weight:700;line-height:1.6}
.qa__tg{flex:none;position:relative;width:28px;height:28px;margin-top:2px;border-radius:50%;background:var(--pale)}
.qa__tg::before,.qa__tg::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--dg1);border-radius:2px;transition:transform .25s}
.qa__tg::after{transform:rotate(90deg)}
.qa[open] .qa__tg::after{transform:rotate(0)}
.qa__a{display:flex;gap:14px;margin:0 20px 20px;padding:16px 16px 16px 14px;background:var(--pale);border-radius:12px}
.qa__al{background:#fff;color:var(--green);border:2px solid var(--green)}
.qa__ab{flex:1;padding-top:3px}
.qa__ab p{margin:0;font-size:15px;line-height:1.85}
.qa__ab p + p{margin-top:8px}
.qa__note{font-size:12px!important;color:var(--note)}
.qa[open] .qa__a{animation:open .3s ease}
@keyframes open{from{opacity:0;transform:translateY(-6px)}}
mark{background:linear-gradient(transparent 55%,var(--yellow) 55%);color:inherit}
.empty{display:none;text-align:center;background:#fff;border-radius:14px;padding:36px 20px;color:var(--note);font-size:14px}
.empty.on{display:block}
.empty b{display:block;margin-bottom:6px;color:var(--dg1);font-size:16px}

/* ===== 締め・フッター ===== */
.closing{background:linear-gradient(180deg,var(--dg1),var(--dg2));color:#fff;text-align:center;padding:56px 20px}
.closing p{margin:0;font-size:15px;font-weight:700;line-height:1.8}
.closing__btn{display:inline-flex;align-items:center;gap:8px;margin-top:20px;background:#fff;color:var(--dg1);font-size:15px;font-weight:900;text-decoration:none;padding:14px 28px;border-radius:99px;transition:transform .2s}
.closing__btn:hover{transform:translateY(-2px)}
.closing__contact:empty{display:none}
.closing__contact{margin-bottom:28px}
.closing__btn--sub{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7);margin-top:0}
/* プレビュー表示 */
.cat__n{margin-left:auto;font-size:13px;font-weight:600;color:var(--note)}
.qa__link{display:inline-block;margin-top:12px;font-size:12px;font-weight:700;color:var(--dg1);text-underline-offset:3px}
.qa__ab p{overflow-wrap:anywhere}
.qa{scroll-margin-top:72px}
.qa:target{border-color:var(--green)}
.footer{background:#fff;text-align:center;padding:40px 20px}
.footer small{display:block;margin-top:10px;font:500 11px Poppins,sans-serif;color:#666}
.totop{position:fixed;right:16px;bottom:16px;z-index:30;width:48px;height:48px;border:none;border-radius:50%;background:var(--dg1);color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.18);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.totop.on{opacity:1;pointer-events:auto}

/* ===== フェードイン ===== */
.js .fade{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.js .fade.is-in{opacity:1;transform:none}

/* ===== SP ===== */
@media (max-width:760px){
  .top__in{height:50px}
  .top__brand{display:none}
  .hero{padding:32px 20px 84px}
  .hero__lead{font-size:13px}
  .hero__title{font-size:30px}
  .panel{margin:-60px 16px 0;padding:18px 14px 16px;border-radius:16px}
  .search input{height:48px;font-size:16px;padding-left:44px}
  .search svg{left:15px}
  .nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
  .nav__item{white-space:normal;font-size:12px;padding:10px;gap:6px}
  .nav__item svg{display:none}
  .nav__item[aria-pressed="true"]{background:var(--dg1);color:#fff;border-color:var(--dg1)}
.nav__item[aria-pressed="true"] svg{color:var(--lgreen)}
.nav__item[aria-pressed="true"] .nav__n{color:var(--dg1)}
.nav__item:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.nav__item--all{justify-content:center}
.nav__n{min-width:20px;height:20px;font-size:11px}
  .body{padding:28px 0 56px}
  .inner{padding:0 16px}
  .cat__head{font-size:18px;gap:10px}
  .cat__icon{width:36px;height:36px}
  .cat__icon svg{width:18px;height:18px}
  .cat + .cat{margin-top:34px}
  .qa summary{padding:14px 14px;gap:10px}
  .qa__q,.qa__al{width:28px;height:28px;font-size:14px}
  .qa__qt{font-size:14px;padding-top:2px}
  .qa__tg{width:24px;height:24px}
  .qa__a{margin:0 12px 14px;padding:12px;gap:10px}
  .qa__ab p{font-size:13px}
  .qa__note{font-size:11px!important}
  .closing{padding:44px 20px}
  .closing p{font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .fade{opacity:1;transform:none}
}
