/* ===============================
   base_style.css  （PC基準・メディアクエリなし）
   レイヤー順: base < components < compat
   =============================== */
@layer base, components, compat;
/* ---------- base: Reset & Tokens ---------- */
@layer base {
  /* 最小限のリセット */
  *, *::before, *::after { box-sizing: border-box; }
  html, body { margin:0; padding:0; }
  img, svg, video { max-width:100%; height:auto; }
  ul,ol { margin:0; padding:0; list-style:none; }

  :root{
    /* 色 */
    --brand:#3fa782;
    --ink:#000;
    --bg:#f9fbf8;
    --muted:#e0e0e0;
    --panel:#fff;

    /* タイポ（PC基準） */
    --fs-xs:12px;
    --fs-sm:14px;
    --fs-md:16px;
    --fs-lg:18px;
    --fs-xl:20px;
    --fs-2xl:28px;
    --fs-3xl:32px;

    /* サイズ・余白 */
    --h-45:45px;
    --h-50:50px;
    --radius-sm:.5rem;
    --radius-md:.6rem;
    --gap-xs:.25rem;
    --gap-sm:.5rem;
    --gap-md:1rem;
    --gap-lg:1.25rem;

    /* 枠線など */
    --bd:1px solid #000;
    --shadow:2px 2px 8px rgba(0,0,0,.2);

    --header-h: 68px;
  }

  html { scroll-behavior:smooth; }
  body {
    color:var(--ink);
    background:var(--bg);
    font:300 var(--fs-lg)/1.6 'ipaexg', system-ui, -apple-system, sans-serif;
    width:100%;
    -webkit-text-size-adjust:100%;
    -webkit-overflow-scrolling:touch;
    overflow-x:hidden;
  }
  a { text-decoration:none; color:inherit; }
  main { width:100%; }
}

/* ---------- components: 共通UI（PC基準） ---------- */
@layer components {
  /* ヘッダー/ナビ（PCでは常時横並び） */
  .l-header{
    position:fixed; inset:0 0 auto 0; height:68px; background:#fff; z-index:999;
    display:block;
  }
  .p-header_inner{
    height:100%; padding:0 40px; display:flex; align-items:center; justify-content:space-between;
  }
  .p-header_hamburger{ display:none; } /* ハンバーガーはモバイルでのみ出す（mobile.css側） */

  .p-header_nav{
    position:static; width:auto; height:auto; opacity:1; background:transparent;
    display:flex; align-items:center; justify-content:center; transform:none; transition:none;
  }
  .p-nav_inner{ position:static; height:auto; margin:0; font-size:var(--fs-md); }
  .p-nav_list{ display:flex; gap:var(--gap-md); margin-right:2.5%; padding:0; }
  .p-nav_item{
    font-size:13px; font-weight:bold; color:#000; text-align:center; height:20px; white-space:nowrap;
  }
  .p-nav_item + .p-nav_item{ border-left:1px solid #093; padding-left:2em; margin-left:2em; }

footer .p-nav_link{
  display: inline-block;       /* テキストの実高さにフィット */
  padding: 0!important;
  line-height: 1.4;            /* 行間を普通に */
  font-size: inherit;
}

a.p-nav_link:hover,
a.p-nav_link:focus,
a.p-nav_link:active {
  color: #000!important;
  text-decoration: none!important;
}

  /* セクションタイトル */
  .step_title, .step_title_sub{
    font-size: clamp(28px, 2.2vw, 48px);
    color:#fff; font-weight:bold; text-align:center; margin:30px 20px 10px;
  }
  .ribbon-caption{ font-size:16px; margin-left:25px; }


  /* 共通フォームレイアウト */
  .form-section{ display:flex; align-items:center; gap:var(--gap-sm); margin-top:10px; }
  .head-label{ font-size:24px; margin:.2rem 0 0 0; }
  .explan{ margin-top:.5rem; }
  .explan-area{ font-size:15px; }

  /* グリッド行（PCは2〜3列） */
  .form-row{ display:grid; grid-template-columns: 320px 1fr; gap:var(--gap-md); align-items:start; }
  .form-row-3{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:var(--gap-md); }

  /* ラベル＆入力 */
  .label{
    display:flex; align-items:center; justify-content:flex-end;
    min-height:var(--h-50); padding:.4rem .8rem; background:var(--muted); border:var(--bd);
    border-right:none; border-top-left-radius:var(--radius-sm); border-bottom-left-radius:var(--radius-sm);
    font-size:15px; font-weight:bold;
  }
  .input{
    min-height:var(--h-50); padding:.5rem .75rem; border:var(--bd); background:#fff;
    border-top-right-radius:var(--radius-sm); border-bottom-right-radius:var(--radius-sm);
    font-size:15px;
  }
  /* 幅の段階（ページ毎のピクセル指定をやめる） */
  .input--sm{ width:220px; }
  .input--md{ width:320px; }
  .input--lg{ width:480px; }
  .input--xl{ width:900px; }

  /* 単位付きインプット（例：口/千円/日など） */
  .input-group{ display:flex; align-items:center; gap:0; }
  .input-group .input{ border-right:none; border-radius: var(--radius-sm) 0 0 var(--radius-sm); text-align:right; }
  .input-group .unit{
    min-height:var(--h-50); padding:.5rem .75rem; border:var(--bd); background:var(--muted);
    border-left:none; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; display:flex; align-items:center; justify-content:center;
  }

  /* ボタン */
  .button-row{ margin:40px 0 10px; display:flex; justify-content:center; gap:140px; }
  .button-position,
  .button-position_sub,
  .button-position_userinfo{
    border:none; border-radius:25px; background:#fff; color:#000; cursor:pointer;
    box-shadow:var(--shadow); transition:background-color .3s ease, color .3s ease;
  }
  .button-position{ width:150px; height:70px; font-size:24px; padding:10px 20px; }
  .button-position_sub{ width:170px; height:70px; font-size:24px; padding:10px 20px; }
  .button-position_userinfo{ width:300px; height:70px; font-size:24px; padding:10px 20px; }
  .button-position:hover,
  .button-position_sub:hover,
  .button-position_userinfo:hover{ background:#5a189a; color:#fff; }

  /* 汎用ユーティリティ */
  .mx-5vw{ margin-inline:5vw; }
  .mb-lg{ margin-bottom:1rem; }
  .center{ display:flex; justify-content:center; align-items:center; }

  /* フッター */
  footer{ width:95%; max-width:1100px; margin:0 auto 50px; }
  footer h1{ font-weight:bold; }
  footer ul{ display:flex; margin:1em 0; }
  footer li{ font-size:.7em; font-weight:bold; }

  /* 自由入力欄 */
  .etc-textbox{
    width:1100px; height:150px; padding:10px; font-size:15px; border:1px solid #ccc; border-radius:20px; resize:vertical; line-height:1.6; box-sizing:border-box;
  }

  /* 大きめの自由入力欄 */
  .limited-textbox{
    width:1100px; height:500px; padding:10px; font-size:15px; border:1px solid #ccc; border-radius:20px; resize:vertical; line-height:1.6; box-sizing:border-box;
  }

  .radio_button{
  	transform: scale(1.5); margin-right:10px !important;
  }
  .rule-textbox{
    width:500px; height:100px; padding:10px; font-size:15px; border:1px solid #ccc; border-radius:20px; resize:vertical; line-height:1.6; box-sizing:border-box;
  }

  /* 吹き出し/補助ラベル系（元CSSの見た目を大枠で維持） */
  .section-line{ width:100%; height:2.5rem; background:lightcoral; border-radius:.3rem; display:flex; justify-content:center; align-items:center; }
  .section-line-blue{ width:100%; height:2.5rem; background:lightblue; border-radius:.3rem; display:flex; justify-content:center; align-items:center; }
  .border-chara{ font-size:20px; font-weight:bold; }

  /* ヘッダーの白帯 */
  header h1{ font-size:1.2em; font-weight:bold; z-index:1; }
}

.top_btn {
  background: #3fa782;
  text-align: center;
  padding: 1em 0;
  display: block;
  color: #fff!important;
  font-weight: bold;
  cursor: pointer;
  margin: 1em auto;
  position: relative;
  width: 80%;
}

.top_btn::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.3em 0 0.3em 0.6em;
  border-color: transparent transparent transparent #fff;
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%)
}

/* ---------- compat: 既存HTMLクラスの最低限ブリッジ ---------- */
@layer compat {
  /* ラベルの色違い（緑/青/赤） */
  .name-label,
  .product-name-label,
  .product-staff-label,
  .product-social-label{
    composes: label;
    background-color: var(--muted);
  }
  .name-label{ background:#228b22; color:#fff; border-color:#000; }
  .label-adress,
  .office_address_label{ background:#336fc2; color:#fff; }

  /* 汎用テキスト入力（旧クラス名を新inputへ寄せる） */
  .text-secound, .text-third, .product-name-text, .product-name-text_hin,
  .office_address_text, .region-text {
    composes: input;
  }
  .product-name-text{ width:900px; }
  .text-third{ width:1170px; }
  .region-text{ width:950px; height:45px; border-radius:5px; }

  /* サイドの説明塊 */
  .explanation{ margin:20px 0 10px; }

  /* 既存の「幅が大きい入力」系 */
  .mail-text, .data_title-text { composes: input; width:800px; border-radius:5px; }

 a { text-decoration:none; color:inherit; }


 .black_a { text-decoration:none!important; color:inherit!important; }

}

body {
  font-size: 110%!important;
}
/* アニメ弱化：OS設定を尊重 */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}


/* --- ヘルプの「？」ボタン --- */
.question-button {
  position: relative;
  width: 20px; height: 20px;
  border-radius: 50%;
  background-color: #808080; color: #fff;
  font-size: 15px; font-weight: bold;
  border: none; cursor: pointer;
  display: flex; justify-content: center; align-items: center;
  box-shadow: 0 1px 3px rgba(0,0,0,.3);
  transition: background-color .3s, transform .2s;
  margin: auto 5px;
}
.question-button:hover { background:#606060; transform: scale(1.05); }
.question-button:active { transform: scale(0.95); }

/* --- ポップアップ（ツールチップ/説明） --- */
.popup {
  display: none; position: fixed; z-index: 1000;
  background:#ccc; border: 1.5px solid #eee; padding: 5px;
  box-shadow: 0 6px 15px rgba(0,0,0,.3); border-radius: 8px;
}
.popup-content{
  background:#f9f9f9; padding: 5px 15px; border:1px solid #ddd; border-radius:5px;
  max-width:100%; width:300px; margin:0 auto; font-size:14px; line-height:1.6; color:#333;
}
.close{
  color:#555; float:right; font-size:18px; font-weight:bold; cursor:pointer; transition: color .3s;
}
.close:hover,.close:focus{ color:#000; text-decoration:none; }

/* --- 画面専用/印刷専用の可視制御（ベース） --- */
.screen-only{ visibility: visible; }
.pdf-only{ visibility: hidden; display: none; }

/* --- 汎用ユーティリティ --- */
.item-center{ align-content:center; padding-top:5px; padding-bottom:0; }
.input-right{ margin-left:auto; }
.input_lb{ align-content:center; padding:0 5px; }
.hidden{ display:none !important; }
.thick-border{ border:2px solid #808080; }
.padding-0{ padding:0 !important; }
.padding-5{ padding:5px !important; }
.txt_excerpt{ overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.download-btn{
  display:block; margin:0 50px 5px auto; padding:5px 10px; font-size:16px; font-weight:bold;
  background:#0099f4; color:#fff; border:1px solid #aaa; border-radius:5px; text-decoration:none; text-align:center;
  box-shadow:0 4px 6px rgba(0,0,0,.1); transition:background-color .3s, transform .2s;
}
.download-btn:hover{ background:#007fd0; }

/* 一時保存（右上固定） */
.tempSavebtn-sticky{
  position: fixed; top:105px; right:10px; padding:6px 40px; z-index:1000;
}

/* 画像上にボタンを重ねるとき（ホーム画面系で使用） */
.image-container{ position:relative; width:100%; max-width:800px; margin:0 auto; display:flex; justify-content:center; }
.responsive-image{ margin:100px; height:auto; display:block; }
.overlay-button{
  position:absolute; top:70%; left:70%; transform:translate(-50%,-50%);
  padding:10px 20px; background:#FF9900; color:#fff; border:none; cursor:pointer; border-radius:5px; font-size:40px; white-space:nowrap;
}
.overlay-button:hover{ background:#E68A00; color:#fff; text-decoration:none; }

/* 入力ボックスの文字色（Bootstrapの上書き） */
.form-control{ color:#000 !important; }

/* 画面内アンカーのヘッダー被り回避 */
.offset{ padding-top:100px; margin-top:-100px; }

.page-hero{
  position: relative;
  padding: 80px 0 50px;
  font-size: 15px;
}

.page-hero--green{
  background: #28a745;
  color: #fff;
}
.page-hero--olive{
  background: #969828;
  color: #fff;
}

.nav-steps {
     list-style: none;
     padding: 0;
     margin: 0;
     border-radius: 0px;
     overflow: hidden;
     border: 1px solid #ccc;
 }
.nav-button-wrapper {
     margin: 0;
 }
.nav-button-wrapper label {
     display: flex;
     align-items: center;
     background-color: #f5f0e6;
     padding: 12px 16px;
     border-top: 1px solid #ddd;
     gap: 10px;
     margin: 0;
     border-radius: 0;
 }
.nav-button-wrapper:first-child label {
     border-top: none;
 }
.nav-button-wrapper label.active {
     background-color: #FF9999;
     color: black;
 }
.nav-button {
     text-decoration: none;
     color: #333;
     flex: 1;
     font-size: 15px;
 }
.nav-button.active {
     font-weight: bold;
     color: black;
     text-decoration: underline;
 }
.side-menu {
     width: 395px;
     background-color: #f8f9fa;
     padding: 25px;
     height: 65vh;
     margin-bottom: 10px;
     overflow-y: auto;
     box-sizing: border-box;
     scrollbar-gutter: stable;
     margin-top: -10px;
 }


.p-nav_link {
  color: #000;
  display: block;
  padding: 20px 10px;
  width: 100%;
}
.p-nav_list .eye-catch2 .p-nav_link {
  padding: 5px 10px;
}
header h1 {
  font-size: 1.2em;
  font-weight: bold;
  z-index: 1;
}

.b_frame {
	border:1px solid #ccc!important;
}
.unit_center{
    display: flex; align-items: center;
    padding: .375rem .75rem;
    line-height: 1.5;
    border: 1px solid transparent;
    background: transparent;
    border-radius: .375rem 0 0 .375rem;
    white-space: nowrap;
  }
.pad-1em { padding-left: 1em; }
.pad-2em { padding-left: 2em; }
.u-me-3  { margin-inline-end: 1rem; }

.row_ml_9 {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: 9px;
}
#fv-contents1 {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}
#fv-contents1 > div {
    width: 100%;
    position: relative;
}
#fv-contents1 > div > img {
    width: 100%;
    height: auto;
    display: block;
}
.btn-start {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
}
.btn-start .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #FFD700;
    padding: 10px 25px;
    border-radius: 20px;
    text-decoration: none;
    transition: background-color 0.3s ease;
    line-height: 1;
}
.btn-start .btn:hover {
    background-color: #FFC700;
}
.btn-start .btn img {
	display: block;
	width: auto;
	height: 40px;
	max-width: 150px;
}
#fv-news {
	margin-top: 0;
	padding-bottom: 2%;
}
#fv-news h2 {
	text-align: center;
	font-weight: bold;
	padding: 1em 0;
}
#fv-news .news-inner {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	font-size: .8em;
}
#fv-news .news-contents {
	border: solid 3px #3fa782;
	padding: 1.5em 0;
	background: #fff;
	min-height: 100px;
	max-height: none;
	overflow: visible;
}
.news-contents dl a {
	display: flex;
	align-items: flex-start;
	margin: 0 5%;
	padding: .5em 0;
	line-height: 2;
	text-decoration: none;
	color: inherit;
	border-bottom: solid 2px #3fa782;
	padding-bottom: .5em;
}
.news-contents dt {
	font-weight: bold;
	flex-shrink: 0;
	margin-right: 1em;
}
.news-contents dd {
	font-weight: bold;
	border-bottom: solid 2px #3fa782;
	padding-bottom: .5em;
	flex: 1;
	margin-bottom:0px!important;
}
.news-inner span {
	display: inline-block;
	vertical-align: middle;
	color: #fff;
	line-height: 1;
	width: .7em;
	height: .7em;
	border: 0.1em solid currentColor;
	border-left: 0;
	border-bottom: 0;
	box-sizing: border-box;
	margin-left: 1em;
	transform: translateX(-25%) rotate(45deg);
}
#fv-area {
	background: #fff;
	padding: 40px 20px 20px;
	text-align: center;
}
#fv-area h2 {
	font-size: 2em;
	font-weight: bold;
	margin: 0;
	padding: 0;
}
#fv-contents2 {
	background: #fff;
	padding: 40px 20px;
	max-width: 1200px;
	margin: 0 auto;
}
#fv-first-container {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 60px;
}
#fv-first-container > div {
	flex: 1;
	text-align: center;
	padding: 20px;
}
#fv-first-container img {
	width: 100%;
	max-width: 300px;
	height: 200px;
	object-fit: contain;
	border: 1px solid #ddd;
	margin-bottom: 15px;
}
#fv-first-container > div > p:nth-child(2) {
	font-size: 1.1em;
	font-weight: bold;
	margin: 15px 0 10px;
	color: #333;
}
#fv-first-container > div > p:nth-child(3) {
	font-size: 0.9em;
	line-height: 1.6;
	color: #666;
	text-align: left;
}
#fv-second-conteiner {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 20px;
}
#fv-second-conteiner h2 {
	font-size: 1.8em;
	font-weight: bold;
	color: #000;
	margin: 60px 0 30px;
	padding: 0;
	border: none;
}
#fv-second-conteiner > div {
	margin-bottom: 60px;
}
#fv-second-conteiner > div > p:first-child {
	font-size: 1em;
	font-weight: bold;
	margin: 0 0 15px 0;
	color: #000;
}
#fv-second-conteiner > div > p:nth-child(2) {
	font-size: 0.9em;
	line-height: 1.8;
	color: #666;
	margin-bottom: 30px;
}
#fv-second-conteiner img {
	width: 100%;
	max-width: 700px;
	height: auto;
	display: block;
	margin: 30px auto;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.btn-teikan {
	text-align: center;
	margin-top: 40px;
}
.btn-teikan .btn {
	display: inline-block;
	background-color: #FFA500;
	color: #000;
	font-weight: bold;
	font-size: 1.1em;
	padding: 18px 50px;
	border-radius: 30px;
	text-decoration: none;
	transition: background-color 0.3s ease;
	box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.btn-teikan .btn:hover {
	background-color: #FF8C00;
}
#fv-contents3 {
	background: #f9f9f9;
	padding: 60px 20px;
	text-align: center;
}
#fv-contents3 h2 {
	font-size: 1.8em;
	font-weight: bold;
	color: #000;
	margin: 0 0 40px 0;
}
#fv-contents3 .btn {
	display: inline-block;
	font-weight: bold;
	font-size: 1.1em;
	padding: 18px 50px;
	border-radius: 30px;
	text-decoration: none;
	transition: all 0.3s ease;
	box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.btn-checklist {
	margin: 0 0 30px 0;
}
.btn-checklist .btn {
	background-color: #FF6B7A;
	color: #fff;
}
.btn-checklist .btn:hover {
	background-color: #FF5566;
}
.btn-register {
	margin: 0;
}
.btn-register .btn {
	background-color: #FFD700;
	color: #000;
}
.btn-register .btn:hover {
	background-color: #FFC700;
}

.page-hero.hero-bar{
  display: grid;
  grid-template-columns: 1fr auto 1fr; /* 左スペーサ / 見出し / 右ボタン */
  align-items: center;                  /* 垂直センターで右下落ち防止 */
  gap: .5rem;

  /* ヒーローの大きすぎる余白をこのバーだけ上書き */
  padding: 16px 12px;

  isolation: isolate; /* スタッキング文脈を作る */
  z-index: 0;
}

/* 見出しは中央カラムに固定、デフォルト余白を消す */
.hero-bar .step_title_sub{
  grid-column: 2;
  justify-self: center;
  margin: 0;
}

/* フォームは右カラム・右寄せ。不要な text-align/position は付けない */
.hero-bar .hero-logout{
  grid-column: 3;
  justify-self: end;
  margin: 0;
}

/* 余白の最終調整（見出しサイズが大きい場合） */
.hero-bar .step_title_sub + .hero-logout{
  margin-left: .5rem;
}

.l-header{
  height: var(--header-h);
}


/* アンカーで飛んだ時にヘッダーに隠れない用 */
.page-hero{ scroll-margin-top: calc(var(--header-h) + 8px); }

.contentwrap {
	margin: 80px auto
}

.sum_red{
	background-color: #f8d7da!important;
}

#news {
  background: #f2f2f2;
  margin-top: 0;
  padding-bottom: 2%;
}
#news h2 {
  text-align: center;
  font-weight: bold;
  color: #3fa782;
  padding: 1em 0;
}
#news .news_inner {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  font-size: .8em;
}
#news .news_inner .btn {
  color: #fff;
  font-weight: bold;
  display: block;
  margin: .5em 0 1em auto;
  background: #3fa782;
  border-radius: 15px;
  width: 90px;
  height: 1.8em;
  text-align: center;
  padding-left: 1em;
}
#news .news_contents {
  border: solid 3px #3fa782;
  padding: 1.5em 0;
  background: #fff;
  height: 320px;
  overflow: auto;
}
.news_contents dl a {
  display: flex;
  flex-wrap: wrap;
  width: 90%;
  padding: .5em 5%;
  line-height: 2;
}
.news_contents dt {
  font-weight: bold;
}
.news_contents dd {
  font-weight: bold;
  border-bottom: solid 2px #3fa782;
  padding-bottom: .5em;
  margin-bottom:0px!important;
}
.news_inner span {
  display: inline-block;
  vertical-align: middle;
  color: #fff;
  line-height: 1;
  width: .7em;
  height: .7em;
  border: 0.1em solid currentColor;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  margin-left: 1em;
  transform: translateX(-25%) rotate(45deg);
}
.info_news .like_a {
  display: block;
  width: 100%;
  padding: 1em;
  border: none;
  background: none;
  text-align: left;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.info_news .like_a dl {
  display: flex;
  gap: 1em;
  margin: 0;
}

.info_news .like_a dt {
  white-space: nowrap;
  flex-shrink: 0;
}

.info_news .like_a dd {
  margin: 0;
  flex: 1;
}
.info_news .like_a {
  -webkit-appearance: none;
  appearance: none;
  border: none;
  background: none;
  width: 100%;
  padding: 1em 0;
  text-align: left;
  cursor: pointer;
}

.info_news .like_a:focus {
  outline: none;
}

.info_news .like_a::-moz-focus-inner {
  border: 0;
}

/*--------------------- info_01----------------------------------------------*/
.main_contents {
  margin: 2em auto;
  max-width: 1000px;
  padding: 2em;
  /*font-size: .8em;*/
  background: #fff;
}
.main_contents h1 {
  /*font-size: 1.5em;*/
  border-bottom: solid 1px #3fa782;
  font-weight: bold;
}
.main_contents .time {
  text-align: right;
}
.main_contents p, .main_q p {
  margin: 1em 0;
  overflow-wrap: break-word;
  line-height: 1.8;
}
 .main_q a {
    text-decoration:none!important;
    color:inherit!important;
}
.main_contents p a {
  text-decoration: underline;
  color: #1a0dab;
}
/*--------------------- Q&A----------------------------------------------*/
.main_q {
  margin: 2em auto;
  width: 78%;
  max-width: 1000px;
  padding: 2em;
  font-size: .8em;
  background: #d7e5f2;
}
.main_qa {
  margin: 2em auto;
  width: 86%;
  max-width: 1000px;
  padding: 7%;
  font-size: .8em;
  background: #fff;
}
.main_q p {
  border-bottom: dashed 2px #3fa782;
  padding: 1.8em 0;
}
.main_qa .q {
  color: #3fa782;
  font-weight: bold;
  font-size: 1.15em;
  padding-top: 52px;
  margin-left: 2.5em;
  position: relative;
}
.main_qa .a {
  font-size: 1.15em;
  margin-top: .8em;
  margin-left: 2.5em;
  position: relative;
}
.main_qa .q::before {
  content: "Q";
  color: #fff;
  background: #3fa782;
  padding: .2em .5em;
  margin-right: .5em;
  margin-left: -2em;
  position: absolute;
  left: -1em;
}
.main_qa .a::before {
  content: "A";
  color: #fff;
  background: #000;
  padding: .2em .5em;
  margin-left: -2em;
  position: absolute;
  left: -1em;
}
/*--------------------- sitepolicy----------------------------------------------*/
#sitepolicy {
  margin: 2em auto;
  max-width: 1000px;
  padding: 2em;
  font-size: .8em;
  background: #fff;
}
#sitepolicy h2 {
  border-bottom: solid 2px #D6D6D6;
  position: relative;
  font-size: 1.5em;
  font-weight: bold;
}
#sitepolicy h2::after {
  content: "";
  display: block;
  line-height: 0;
  overflow: hidden;
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 311px;
  border-bottom: 2px solid #3fa782
}
#sitepolicy p {
  line-height: 1.8;
  margin: 2em 0;
}
#sitepolicy h3 {
  font-size: 1.3em;
  font-weight: bold;
}
 #sitepolicy a {
  text-decoration:none!important; color:inherit!important;
}
.bottomcut {
	margin-bottom:0px;
	font-size: 90%;
}


@media screen and (min-width:768px) {
  .pc_none {
    display: none
  }
  .sp_none {
    display: block
  }
  .pc_noneIB {
    display: none
  }
  .sp_noneIB {
    display: inline-block
  }
  header .btn-trigger {
    display: none;
  }
  body {
    min-width: 1100px;
  }
  .p-header_hamburger {
    display: none;
  }
  .p-nav_inner {
    margin-right: auto;
    margin-left: auto;
    max-width: initial;
    width: 100%;
    height: auto;
    position: relative;
    top: 0;
  }
  .p-header_nav {
    position: static;
    opacity: 1;
    /*height: inherit;*/
    width: initial;
  }
  .p-nav_list {
    padding-right: 0;
    padding-left: 0;
    display: flex;
    margin-right: 2.5%;
  }
  .p-nav_item:nth-child(2), .p-nav_item:nth-child(3), .p-nav_item:nth-child(4), .p-nav_item:nth-child(5), .p-nav_item:nth-child(6)  {
    border-left: solid 1px #3fa782;
    margin-left: 2em;
  }
  .l-header {
    background: #fff;
    height: 68px;
    position: fixed;
  }
  .p-header_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: inherit;
    padding: 0 40px;
  }
  .p-nav_item {
    position: relative;
    font-size: .8em;
    color: #000;
    font-weight: bold;
    text-align: center;
    height: 20px;
  }

  .p-nav_item a{
    text-decoration:none!important;
    color:inherit!important;
  }
  .p-nav_link {
    color: #000;
    padding: 0 5px 0;
    margin-left: 10px;
  }
  .p-nav_link:nth-child(2), .p-nav_link:nth-child(3) {
    border-left: solid 1px #3fa782;
    margin-left: 2em;
  }
  .eye-catch .p-nav_link {
    background: url(/img/keiei/mail_icon.png) no-repeat left 15% center;
    background-size: 24px auto;
    background-color: #3fa782;
    color: #fff;
    height: 1.8em;
    border-radius: 100px;
    margin-left: 20px;
    padding: .3em .2em .3em 2.6em;
    margin-top: -.4em;
  }
  .p-nav_link span {
    display: inline-block;
    vertical-align: middle;
    color: #fff;
    line-height: 1;
    width: .8em;
    height: .8em;
    border: 0.1em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    margin-left: .8em;
    transform: translateX(-25%) rotate(45deg);
  }
  header .p-nav_list .eye-catch2 {
    display: none;
  }

  #contents1 {
    padding: 68px 0 0;
    margin-top: 0;
  }
  #news .news_contents {
    height: 150px;
  }
  .news_contents dt, .news_contents dd {
    border-bottom: solid 2px #3fa782;
  }
  .news_contents dt {
    width: 20%;
  }
  .news_contents dd {
    width: 80%;
  }
  #nav_area {
    margin: 10px auto;
  }
  #nav_area h2 {
    font-size: 2.8em;
    padding-top: 70px;
  }
  #nav_area ul {
    margin: 5% 0;
  }
  #nav_area ul li {
    width: calc(100% / 3 - 3.75%);
    margin: 5% 1.25%;
  }
  #nav_area ul li .number {
    width: 100px;
    height: auto;
    margin-top: -2.8em;
  }
  #nav_area ul li .catch {
    font-size: 1.6em;
  }
  #nav_area ul li .description {
    font-size: 1.2em;
  }
  #nav_area ul li .illust {
    width: 260px;
  }
  #nav_area ul li div {
    width: 2em;
    height: 2em;
  }
  #first_conteiner, #third_conteiner {
    padding: 50px;
  }
  #first_conteiner img.number, #second_conteiner img.number, #third_conteiner img.number {
    width: 100px;
    height: auto;
    top: -2.2em;
  }
  .table-wrap {
    overflow: hidden;
  }
  .table {
    width: 100%;
    white-space: normal;
    border-collapse: collapse;
  }
  #first_conteiner h2, #third_conteiner h2, #contents3 h2, #user_registration h2 {
    font-size: 1.5em;
    margin-bottom: .5em;
    margin-top: 2.5%;
  }
  #first_conteiner .catch, #first_conteiner h3, #third_conteiner h3 {
    font-size: 1.5em
  }
  #second_conteiner .inner, #third_conteiner .inner {
    display: flex;
    flex-direction: row-reverse;
  }
  #third_conteiner .analysis {
    width: 60%;
    margin: -15% auto 0 15%;
  }
  #contents3 {
    margin: 5% auto;
    padding: 20px 0 50px;
  }
  #contents3 .eye-catch {
    width: 10em;
  }
  /*--------------------- info ----------------------------------------------*/
  #info_contents1 h2 {
    font-size: 1.8em;
    margin: 30px 20px 10px;
  }
  .info_news {
    width: 1000px;
    margin: 5% auto;
    font-size: .9em;
  }

  .top_btn {
    display: block;
    width: 380px;
    margin: 5% auto;
    border-radius: 25px;
  }

  .main_contents, .main_q {
    font-size: .9em;
  }
  .main_contents h1 {
    font-size: 1.8em;
    margin: 30px 20px 10px;
  }
  .main_q p {
    padding: 1.4em 0;
  }
  .main_qa {
    width: 960px;
    padding: 46px;
  }
  .main_qa .q, .main_qa .a {
    font-size: 1.2em;
  }
  .main_qa .q {
    padding-top: 70px;
  }
  /*--------------------- sitepolicy----------------------------------------------*/
  #sitepolicy h2 {
    font-size: 1.8em;
  }
  #sitepolicy h3 {
    font-size: 1.5em;
  }
}
/*--------------------- step12 ----------------------------------------------*/
/* セクション */
.section-mb {
    margin-bottom: 15px;
}

.section-header {
    background-color: #f0f0f0;
    padding: 8px;
    font-weight: bold;
    border-left: 4px solid #4a90e2;
}

.section-content {
    padding: 8px 12px;
}

.section-item {
    margin-bottom: 5px;
}

/* テーブル */
.table-common {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
    border: 1px solid #000;
}

.table-header {
    background-color: #f0f0f0;
}

.table-header-dark {
    background-color: #d0d0d0;
}

.table-row-subtotal {
    background-color: #f9f9f9;
}

.table-cell {
    padding: 5px;
}

.table-cell-right {
    padding: 5px;
    text-align: right;
}

.table-cell-center {
    padding: 5px;
    text-align: center;
}

.table-cell-indent {
    padding: 5px;
    padding-left: 20px;
}

.table-cell-alert {
    padding: 5px;
    text-align: right;
    background-color: #FFFF00;
}

.table-cell-w40 {
    width: 40%;
}

.table-cell-w30 {
    width: 30%;
}

.table-cell-w20 {
    width: 20%;
}

.table-cell-w50 {
    width: 50%;
}

.table-cell-w70 {
    width: 70%;
}

/* ユニット表示 */
.unit-text {
    text-align: right;
    margin-top: -10px;
    margin-bottom: 20px;
}

/* 損益計算の特殊レイアウト */
.pl-detail-table {
    width: 100%;
    border: none;
}

.pl-detail-half {
    width: 50%;
    vertical-align: top;
    padding: 0;
}

.pl-detail-border-left {
    border-left: 1px solid #000;
}

.pl-spacer {
    padding: 5px;
    height: 30px;
}
