@charset "UTF-8";
@import url("https://use.fontawesome.com/releases/v5.15.4/css/all.css");

/*-------------------------------------------------------------
///////////////////////////////////////////////////////////////
基本
///////////////////////////////////////////////////////////////
--------------------------------------------------------------*/

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--f-sans);
    background: var(--nara-white);
    color: var(--nara-shikkoku);
    font-family: Helvetica, Arial, Verdana, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
    font-size: 17px;
    line-height: 1.85;
  }

:root {
    --nara-cha:              #7B5C3A;
    --nara-cha-light:        #C8A882;
    --nara-cha-pale:         #F2EBE0;
    --nara-moegi:            #3A6B4A;
    --nara-moegi-light:      #7FAF8A;
    --nara-moegi-pale:       #E8F2EB;
    --nara-kakitsubata:      #4A3A6B;
    --nara-kakitsubata-light:#8A7FAF;
    --nara-kakitsubata-pale: #EEE8F2;
    --nara-shikkoku:         #2A2520;
    --nara-usuzumi:          #6A6460;
    --nara-washi:            #F7F3EE;
    --nara-white:            #FDFAF6;
    --f-round: 'M PLUS Rounded 1c', 'Noto Sans JP', sans-serif;
    --f-sans:  'Noto Sans JP', sans-serif;
    --f-serif: 'Noto Serif JP', serif;
}
 .site-wrap { 
    /* max-width: 1200px;  */
    margin: 0 auto; 
}

a {
    color: #0000ff;
    text-decoration: underline;
}
.contact-note a,
.ci-val a {
  color: #f1c40f;
}
a:hover {
    text-decoration: none;
}
a img:hover {
    filter: brightness(90%) contrast(120%);
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* SP、PC表示切り替え */
.sp_on {
    display: block; /* SPのみ表示 */
}
@media (min-width: 1024px) {
	.sp_on {
        display: none;
    }
}

.pc_on {
    display: none;
}
@media (min-width: 768px) {
	.pc_on {
        display: block; /* PCのみ表示 */
    }
}

/* ページトップへもどる */
.page_top {
    width: 40px;
    height: 40px;
    right: 10px;
    bottom: 55px;
    position: fixed;
    border: 1px solid var(--nara-moegi);
    background: var(--nara-moegi);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}
@media (min-width: 768px) {
    .page_top {
        right: 20px;
        bottom: 20px;
    }
}
.page_top::before {
    content: "";
    display: block;
    width: 5px;
    height: 5px;
    border-top: 1px solid #FFFFFF;
    border-right: 1px solid #FFFFFF;
    transform: rotate(-45deg);
}



  /* ─────────────────────────────
     HERO
  ───────────────────────────── */
.site-header .logo {
  display: none;
}
.hero {
  background: #478b2f;
  overflow: hidden;
  position: relative;
  padding: 50px 0 0;
}

/* 全体のレイアウト（PCサイズ基準） */
.hero-kv {
  display: flex; 
  max-width: 1200px;
  align-items: flex-start; 
  gap: 220px;
  margin: 0 auto;
  padding: 0;
}

/* 左側ブロック */
.hero-kv .top_visual_left {
  flex: 1;
  max-width: 686px;
}
.hero-kv .top_jigyo {
  width: 100%;
  height: auto;
  display: block;
}

/* 右側ブロック（ここがポイント！） */
.hero-kv .top_visual_right {
  position: relative; /* ボタンの配置基準にする */
  width: 251px;       /* 枠の幅を画像のサイズに固定 */
  flex-shrink: 0;
}
.hero-kv .top_kyufu {
  width: 100%;
  height: auto;
  display: block;
}

/* ボタンの配置（画像の上に重ねる） */
.btn_flyer {
  display: block;
  position: absolute;   /* 右側ブロックを基準に絶対配置 */
  bottom: 97px;         /* ★下からの位置（デザインに合わせて微調整してください） */
  left: 50%;
  transform: translateX(-50%); /* 左右中央揃え */
  
  background: #cf361a;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-size: clamp(0.85rem, 0.8rem + 0.2vw, 0.95rem); /* 画像内に収まるよう少し小さめに調整 */
  padding: 8px 12px;
  width: 200px;         /* ★画像内に収まる幅に調整 */
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  z-index: 10;
}

.btn_flyer:hover {
  opacity: 0.85;
  cursor: pointer;
}

/* --- スマホ・タブレット用のレスポンシブ対応 --- */
@media (max-width: 767px) {
  .hero-kv {
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }
  .hero-kv .top_visual_left {
    width: 100%;
  }
  .hero-kv .top_visual_right {
    width: 80%; /* スマホ画面に合わせて適度な大きさに */
    max-width: 295px;
  }
  .btn_flyer {
    bottom: 110px;
  }
}
  .hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(200,168,130,0.18);
    border: 0.5px solid rgba(200,168,130,0.4);
    color: var(--nara-cha-light);
    font-family: var(--f-round);
    font-size: 12px;
    padding: 5px 16px;
    letter-spacing: 0.1em;
    margin-bottom: 22px;
  }
  .hero-title {
    font-family: var(--f-round);
    font-size: 32px;
    font-weight: 700;
    color: var(--nara-washi);
    line-height: 1.55;
    letter-spacing: 0.06em;
    margin-bottom: 26px;
  }
  .hero-tagline {
    font-family: var(--f-sans);
    font-size: 16px;
    color: rgba(247,243,238,0.68);
    line-height: 2;
    margin-bottom: 36px;
    max-width: 520px;
  }
  .hero-cta-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }

  .btn-primary-hero {
    background: var(--nara-moegi);
    color: #fff;
    border: none;
    padding: 16px 40px;
    font-size: 17px;
    font-family: var(--f-round);
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.08em;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border-radius: 36px;
    transition: background 0.2s, transform 0.15s;
    box-shadow: 0 3px 10px rgba(58,107,74,0.22);
  }
  .btn-primary-hero:hover { background: #2e5a3c; transform: translateY(-1px); }

  .btn-outline-hero {
    background: transparent;
    color: var(--nara-cha-light);
    border: 0.5px solid rgba(200,168,130,0.5);
    padding: 11px 22px;
    font-size: 14px;
    font-family: var(--f-round);
    font-weight: 500;
    cursor: pointer;
    letter-spacing: 0.06em;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: border-color 0.2s, color 0.2s;
  }
  .btn-outline-hero:hover { border-color: var(--nara-cha-light); color: var(--nara-washi); }

  .hero-summary {
    flex-shrink: 0;
    width: 252px;
    background: rgba(255,255,255,0.04);
    border: 0.5px solid rgba(255,255,255,0.1);
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  .hero-summary-label {
    font-family: var(--f-round);
    font-size: 12px;
    font-weight: 500;
    color: var(--nara-cha-light);
    letter-spacing: 0.1em;
    border-bottom: 0.5px solid rgba(200,168,130,0.2);
    padding-bottom: 12px;
  }
  .hero-summary-item { display: flex; flex-direction: column; gap: 5px; }
  .hero-summary-item .key {
    font-family: var(--f-round);
    font-size: 12px;
    color: rgba(247,243,238,0.45);
    letter-spacing: 0.06em;
  }
  .hero-summary-item .val {
    font-size: 22px;
    font-family: var(--f-round);
    font-weight: 700;
    color: var(--nara-washi);
    letter-spacing: 0.02em;
  }
  .hero-summary-item .val .unit {
    font-size: 13px;
    font-weight: 400;
    color: rgba(247,243,238,0.55);
    margin-left: 4px;
  }

  .contner {
    width: 1200px;
    padding: 30px;
    margin: 0 auto;
  }
  @media (max-width: 767px) {
    .contner {
      width: 100%;
    }
  }

  /* ─────────────────────────────
     PERIOD BAND
  ───────────────────────────── */
  /* .period-band {
    background: var(--nara-moegi);
    padding: 16px 52px;
    display: flex;
    align-items: center;
    gap: 24px;
  }
  .period-band .label {
    font-family: var(--f-round);
    font-size: 12px;
    color: rgba(255,255,255,0.65);
    letter-spacing: 0.1em;
    white-space: nowrap;
  }
  .period-band .dates {
    font-family: var(--f-round);
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.04em;
  }
  .period-band .sep { width: 1px; height: 26px; background: rgba(255,255,255,0.25); } */

  /* ─────────────────────────────
     ANCHOR NAV
  ───────────────────────────── */
 .anchor-nav {
  background: var(--nara-moegi);
  height: 50px;
  align-items: center;
  margin: 0 auto;
}
.anchor-nav nav {
  max-width: 1200px;
  display: flex;
  justify-content: center;
  margin: 0 auto;
}
.anchor-nav a {
  display: grid;
  width: 180px;
  height: 50px;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-family: var(--f-round);
  font-size: 13px;
  font-weight: 500;
  align-items: center;
  border-right: 0.5px solid #fff;
  transition: color 0.2s, background 0.2s;
  letter-spacing: 0.06em;
  padding: 0 15px; 
}
.anchor-nav a:first-child {
  border-left: 0.5px solid #fff;
}
.anchor-nav a:last-child {
  border-right: 0.5px solid #fff;
}
.anchor-nav a:hover { 
  background: var(--nara-cha-pale); 
  color: var(--nara-cha); 
}
  
@media screen and (max-width: 767px) {
  .anchor-nav {
    width: 100%;
    height: auto; /* 高さを自動にして、縦並びの要素が収まるようにする */
  }
  
  .anchor-nav nav {
    width: 100%;
    flex-direction: column;
    gap: 0; /* 縦並びの時は枠線を綺麗に繋げるため、隙間（gap）を0にします */
    padding: 0; /* 横幅いっぱいに広げるためパディングをリセット */
  }
  
  .anchor-nav a {
    display: flex;          /* gridからflexに変更し、中央寄せを制御しやすく */
    justify-content: center; /* 左右中央寄せ */
    align-items: center;     /* 上下中央寄せ */
    width: 100%;             /* 横幅いっぱいに広げる */
    height: 54px;            /* スマホで押しやすい高さに変更（お好みで調整可能） */
    box-sizing: border-box;
    padding: 0 15px;
    
    /* PC用の左右の線をリセットし、下線（border-bottom）に変更 */
    border-left: none !important;
    border-right: none !important;
    border-bottom: 0.5px solid rgba(255, 255, 255, 0.4); /* 控えめな白い下線 */
  }

  /* 最初の要素の「上の線」を設定 */
  .anchor-nav a:first-child {
    border-top: 0.5px solid rgba(255, 255, 255, 0.4);
    border-left: none; /* PC用の設定をリセット */
  }

  /* 最後の要素の下線を調整（お好みで消すことも可能） */
  .anchor-nav a:last-child {
    border-right: none; /* PC用の設定をリセット */
  }
}

  /* ─────────────────────────────
     NEWS
  ───────────────────────────── */
  .news-section {
    max-width: 850px;
    background: #fff;
    padding: 32px;
    border-bottom: 0.5px solid rgba(123,92,58,0.12);
    margin: 50px auto;
  }
  .news-inner {
    display: flex;
    gap: 36px;
    align-items: center;
  }
  .news-heading {
    min-width: 80px;
    line-height: 1.4;
    font-family: var(--f-round);
    font-size: 14px;
    font-weight: 700;
    color: var(--nara-cha);
    letter-spacing: 0.12em;
    white-space: nowrap;
    text-align: center;
    padding-top: 2px;
  }
  .news-heading span {
    color: var(--nara-usuzumi);
    font-size: 13px;
    font-weight: normal;
  }
  .news-list {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 12px;
    border-left: 1px solid var(--nara-cha-light);
    padding-left: 30px;
  }
  .news-item {
    display: flex;
    gap: 20px;
    align-items: baseline;
    border-bottom: 1px solid var(--nara-cha-light);
  }
  .news-date {
    font-family: var(--f-round);
    color: var(--nara-usuzumi);
    font-size: 14px;
    white-space: nowrap;
    letter-spacing: 0.04em;
  }
  .news-text { font-size: 15px; color: var(--nara-shikkoku); }
@media screen and (max-width: 767px) {
  .news-item {
    display: block;
  }
  .news-list {
    border-left: none;
    padding-left: 0;
  }
  .news-list span {
    display: block;
  }
}

  /* ─────────────────────────────
     SECTION COMMON
  ───────────────────────────── */
  .section {
    padding: 72px 10px;
    border-bottom: 0.5px solid rgba(42,37,32,0.07);
  }
  .section:last-child { border-bottom: none; }

  /* セクションヘッド：中央揃え */
  .section-head {
    text-align: center;
    margin-bottom: 12px;
  }
  .section-title {
    font-family: var(--f-round);
    font-size: 26px;
    font-weight: 700;
    color: var(--nara-shikkoku);
    letter-spacing: 0.1em;
    display: block;
  }
  .section-en {
    font-family: var(--f-round);
    font-size: 12px;
    color: var(--nara-usuzumi);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    display: block;
    margin-top: 6px;
  }
  /* 中央揃え用ルール線 */
  .section-rule {
    width: 36px;
    height: 2px;
    background: var(--nara-moegi);
    margin: 0 auto 40px;
  }

  /* ─────────────────────────────
     GAIYO
  ───────────────────────────── */
  .gaiyo-body {
    font-size: 16px;
    line-height: 2.1;
    color: var(--nara-shikkoku);
    margin-bottom: 40px;
    margin-left: auto;
    margin-right: auto;
  }
  .specs-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 横並び2カラム */
    gap: 1px; /* 境界の白い線を再現 */
    background-color: #fff; /* 隙間の線の色 */
    width: 100%;
    margin: 0 auto;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    box-sizing: border-box;
  }
  .specs-grid *, .specs-grid *::before, .specs-grid *::after {
    box-sizing: border-box;
  }
  .spec-item {
    display: flex;
    align-items: stretch; /* 左右の高さの揃え */
    background-color: #fff;
  }
  .spec-item dt {
    font-family: var(--f-round);
    flex: 0 0 140px; /* タイトルエリアの幅（画像の比率に合わせて調整） */
    background-color: #386B52; /* 深緑 */
    color: #ffffff;
    font-weight: bold;
    font-size: 16px;
    line-height: 1.4;
    padding: 20px 15px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;

    /* 背景アイコンの共通設定 */
    background-repeat: no-repeat;
    background-position: center bottom 15px; /* 下部中央に配置 */
    background-size: 70px auto;
  }
  /* 各dt個別の背景アイコン設定 */
  .item-target dt {
    background-image: url('../images/tbl_icon1.png');
    background-size: 80px auto;
  }
  .item-amount dt {
    background-image: url('../images/tbl_icon2.png');
    background-size: 65px auto;
  }
  .item-employee dt {
    background-image: url('../images/tbl_icon3.png');
    background-size: 90px auto;
  }
  .spec-item dd.f16 {
    font-size: clamp(0.875rem, 0.818rem + 0.242vw, 1rem);
  }
  .item-condition dt {
    background-image: url('../images/tbl_icon4.png');
    background-size: 70px auto;
  }

  .spec-item dd {
    flex: 1;
    min-height: 220px;
    background-color: #F4EFEB; /* 薄ベージュ */
    color: #333333;
    font-size: 14px;
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 25px 15px;
    margin: 0;
  }
  /* リストやテキストの微調整 */
.spec-item dd ul {
  margin: 0 0 15px 0;
  padding-left: 20px;
}

.spec-item dd li {
  margin-bottom: 5px;
  font-weight: bold;
}

.spec-item dd p {
  margin: 0 0 10px 0;
}
.spec-item dd p:last-of-type {
  margin-bottom: 0;
}

.bold-text {
  font-weight: bold;
}

/* 注釈テキスト（小さく、やや薄い色） */
.spec-item dd small {
  display: block;
  font-size: 12px;
  color: #666666;
  line-height: 1.4;
  margin-top: 10px;
}

/* 強調文字のカラー設定 */
.highlight-red {
  color: #D3381B; /* 強調の赤 */
  font-size: clamp(1.25rem, 1.159rem + 0.45vw, 1.5rem);
  font-weight: bold;
  margin: 0 4px;
  vertical-align: middle;
}
.highlight-orange {
  color: #E65518; /* 3.9%のオレンジ */
  font-size: clamp(1.25rem, 1.205rem + 0.23vw, 1.375rem);
  font-weight: bold;
  margin: 0 2px;
}

.sub-text {
  font-size: 12px;
  color: #333;
  font-weight: normal;
}

/* レスポンシブ対応：画面が狭いときは1カラムにする場合 */
@media (max-width: 768px) {
  .specs-grid {
    grid-template-columns: 1fr;
  }
}

  .spec-item dd small {
    display: block;
    font-size: 13px;
    color: var(--nara-usuzumi);
    margin-top: 8px;
    line-height: 1.8;
  }

  /* ─────────────────────────────
     SHINSEI
  ───────────────────────────── */
  .shinsei-section { background: var(--nara-moegi-pale); }

  .shinsei-note {
    color: #dc3200;
    text-align: center;
    font-size: clamp(1rem, 0.955rem + 0.23vw, 1.125rem);
    margin-bottom: 10px;
  }

  /* 申請ボタンブロック：中央・縦並び */
  .shinsei-btn-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin-bottom: 10px;
  }
  .btn-apply {
    background: #dc3200;
    color: #fff;
    border: none;
    padding: 10px 72px;
    font-size: 20px;
    font-family: var(--f-round);
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.1em;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    border-radius: 44px;
    transition: background 0.2s, transform 0.15s;
    box-shadow: 0 4px 14px rgba(58,107,74,0.22);
  }
  .btn-apply:hover {
    filter:alpha(opacity=85);
    -moz-opacity:0.85;
    -khtml-opacity: 0.85;
    opacity:0.85;
    cursor:pointer;
    transform: translateY(-2px);
  }

  .btn-manual {
    background: transparent;
    color: var(--nara-moegi);
    border: 2px solid rgba(58,107,74,0.45);
    font-size: 15px;
    font-family: var(--f-round);
    font-weight: 600;
    cursor: pointer;
    letter-spacing: 0.06em;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: border-color 0.2s, background 0.2s;
    padding: 11px;
  }
  .btn-manual:hover { background: rgba(58,107,74,0.06); border-color: var(--nara-moegi); }

  .period-box {
    border: 0.5px solid rgba(58,107,74,0.3);
    background: var(--nara-white);
    display: flex;
    gap: 20px;
    align-items: center;
    margin-bottom: 40px;
  }
  .period-box .pbl {
    width: 180px;
    background: var(--nara-moegi);
    color: #fff;
    font-family: var(--f-round);
    font-size: clamp(1rem, 0.977rem + 0.11vw, 1.063rem);
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.1em;
    white-space: nowrap;
    padding: 15px 10px;
  }
  .period-box .pbv {
    font-family: var(--f-round);
    font-size: clamp(0.813rem, 0.631rem + 0.91vw, 1.313rem);
    font-weight: 700;
    color: #dc3200;
    line-height: 1.4;
  }
  @media (max-width: 768px) {
     .period-box {
        display: block;
        gap: 10px;
     }
     .period-box .pbl {
      width: 100%;
        padding: 10px;
     }
     .period-box .pbv {
        padding: 15px 10px;
     }
  }

  .doc-heading {
    font-family: var(--f-round);
    font-size: 16px;
    font-weight: 700;
    color: var(--nara-shikkoku);
    letter-spacing: 0.08em;
    margin-bottom: 16px;
    border-left: 3px solid var(--nara-moegi);
    padding-left: 14px;
  }
  .doc-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
  .doc-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: 15px;
    padding: 14px 18px;
    background: var(--nara-white);
    border-left: 2px solid var(--nara-moegi-light);
    line-height: 1.8;
  }
  .doc-list li i { color: var(--nara-moegi); margin-top: 2px; flex-shrink: 0; font-size: 18px; }
  .doc-list li a {
    color: var(--nara-moegi);
    text-decoration: none;
  }

  /* ─────────────────────────────
     FAQ
  ───────────────────────────── */
  .faq-group { margin-bottom: 36px; }
  .faq-group-title {
    font-family: var(--f-round);
    font-size: 15px;
    font-weight: 700;
    color: var(--nara-moegi);
    background: var(--nara-moegi-pale);
    padding: 12px 22px;
    letter-spacing: 0.08em;
    border-left: 3px solid var(--nara-moegi);
  }
  .faq-item { border-bottom: 0.5px solid rgba(42,37,32,0.08); overflow: hidden; }
  .faq-q {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 22px;
    cursor: pointer;
    gap: 14px;
    background: var(--nara-white);
    transition: background 0.15s;
    user-select: none;
  }
  .faq-q:hover { background: var(--nara-washi); }
  .faq-q .q-mark {
    font-family: var(--f-round);
    font-size: 17px;
    font-weight: 700;
    color: var(--nara-cha);
    flex-shrink: 0;
  }
  .faq-q .q-text { flex: 1; font-size: 16px; color: var(--nara-shikkoku); line-height: 1.7; }
  .faq-q .chevron { color: var(--nara-usuzumi); font-size: 16px; transition: transform 0.2s; flex-shrink: 0; }
  .faq-q.open .chevron { transform: rotate(180deg); }
  .faq-a {
    display: none;
    padding: 18px 22px 18px 52px;
    font-size: 15px;
    line-height: 2;
    color: var(--nara-usuzumi);
    background: var(--nara-washi);
    border-left: 3px solid var(--nara-cha-light);
  }
  .faq-a.open { display: block; }
  .faq-a .a-mark {
    font-family: var(--f-round);
    font-size: 17px;
    font-weight: 700;
    color: var(--nara-moegi);
    margin-right: 8px;
  }

  /* ─────────────────────────────
     FUBI
  ───────────────────────────── */
  .fubi-section { background: var(--nara-kakitsubata-pale); }
  .fubi-item { margin-bottom: 20px; border: 0.5px solid rgba(74,58,107,0.15); background: var(--nara-white); }
  .fubi-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 22px;
    cursor: pointer;
    font-family: var(--f-round);
    font-size: 16px;
    font-weight: 700;
    gap: 14px;
    background: var(--nara-white);
    transition: background 0.15s;
    user-select: none;
  }
   @media (max-width: 768px) {
      .fubi-header {
        display: block;
      }
   }
  .fubi-header:hover { background: var(--nara-washi); }
  .fubi-header .tag {
    font-family: var(--f-round);
    font-size: 12px;
    font-weight: 500;
    background: var(--nara-kakitsubata-pale);
    color: var(--nara-kakitsubata);
    border: 0.5px solid rgba(74,58,107,0.2);
    padding: 4px 12px;
    letter-spacing: 0.06em;
    white-space: nowrap;
  }
  .fubi-header .fubi-right { display: flex; align-items: center; gap: 12px; }
  .fubi-header .fubi-icon { color: var(--nara-usuzumi); font-size: 16px; transition: transform 0.2s; }
  .fubi-header.open .fubi-icon { transform: rotate(180deg); }
  .fubi-body {
    display: none;
    padding: 18px 22px;
    font-size: 15px;
    line-height: 2;
    color: var(--nara-usuzumi);
    background: var(--nara-washi);
    border-top: 0.5px solid rgba(74,58,107,0.1);
  }
  .fubi-body.open { display: block; }

  /* ─────────────────────────────
     CONTACT
  ───────────────────────────── */
  .contact-section { background: #478b2f; }
  .contact-section .section-title { color: var(--nara-washi); }
  .contact-section .section-en   { color: rgba(247,243,238,0.4); }
  .contact-section .section-rule { background: var(--nara-washi); }
  .contact-section p {
    /* color: rgba(247,243,238,0.68); */
    font-size: 16px;
    line-height: 2;
    margin-bottom: 32px;
    text-align: center;
  }
  .contact-btn {
    display: flex;
    width: fit-content;
    margin: 0 auto 44px;
    align-items: center;
    gap: 10px;
    background: var(--nara-cha);
    color: #fff;
    padding: 16px 40px;
    font-family: var(--f-round);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: background 0.2s;
    border: none;
  }
  .contact-btn:hover { background: #6A4E30; }
  .contact-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    border-top: 0.5px solid rgba(255,255,255,0.08);
    padding-top: 36px;
    max-width: 680px;
    margin: 0 auto;
  }
  .ci-label {
    font-family: var(--f-round);
    font-size: 12px;
    color: var(--nara-cha-light);
    letter-spacing: 0.1em;
    display: block;
  }
  .ci-val {
    font-family: var(--f-round);
    font-size: 16px;
    font-weight: 700;
    color: var(--nara-washi);
    display: block;
  }
  .ci-note {
    font-family: var(--f-round);
    font-size: 13px;
    font-weight: 500;
    color: var(--nara-washi);
    display: block;
  }
  .contact-note {
    font-family: var(--f-round);
    font-size: 13px;
    /* color: rgba(247,243,238,0.38); */
    line-height: 1.8;
    margin-top: 28px;
    text-align: center;
  }
  .cont_flex {
    display: flex;
    justify-content: center;
  }
  .cont_flex .contact-btn {
    margin: 0 20px;
  }
   @media (max-width: 768px) {
    .cont_flex {
        display: block;
      }
    .cont_flex .contact-btn {
      width: 100%;
      padding: 10px 20px;
      margin: 0 auto 10px;
    }
   }

  /* ─────────────────────────────
     FOOTER
  ───────────────────────────── */
  .site-footer {
    background: #1a1714;
    padding: 22px 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .site-footer .fl {
    font-family: var(--f-round);
    font-size: 13px;
    color: rgba(247,243,238,0.32);
    letter-spacing: 0.06em;
  }
  .site-footer .fr { display: flex; gap: 22px; }
  .site-footer .fr a {
    font-family: var(--f-round);
    font-size: 13px;
    color: rgba(247,243,238,0.32);
    text-decoration: none;
  }
  .site-footer .fr a:hover { color: rgba(247,243,238,0.65); }

  /* ─────────────────────────────
     RESPONSIVE
  ───────────────────────────── */
  @media (max-width: 768px) {
    .site-header { padding: 0 18px; height: auto; flex-direction: column; align-items: flex-start; }
    .site-header .logo { padding: 13px 0 8px; }
    .site-header nav { width: 100%; overflow-x: auto; padding-bottom: 2px; }
    .site-header nav a { padding: 0 11px; height: 42px; font-size: 12px; }
    .hero { padding: 44px 24px 40px; }
    .hero-kv { flex-direction: column; gap: 36px; }
    .hero-summary { width: 100%; }
    .period-band { padding: 14px 24px; flex-wrap: wrap; gap: 8px; }
    .news-section { padding: 24px 24px; }
    .news-inner { flex-direction: column; gap: 14px; }
    .section { padding: 52px 24px; }
    .specs-grid { grid-template-columns: 1fr; }
    .btn-apply { padding: 18px 44px; font-size: 18px; }
    .contact-info-grid { grid-template-columns: 1fr; }
    .site-footer { flex-direction: column; gap: 12px; align-items: flex-start; padding: 22px 24px; }
  }

  
/* アイコン
--------------------------*/

.exlink::after {
    content: "\f360";
    font-family: "Font Awesome 5 Free";
    font-size: 0.85em;
    font-weight: 900;
    margin-left: .5em;
}

.download:before {
    content: '\f019';
    /* ダウンロードのアイコン */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: .5em;
    margin-right: .5em;
}

.pdf:after {
    content: '\f1c1';
    /* PDFファイルの後（fa-file-pdf） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.word:after {
    content: '\f1c2';
    /* WORDファイルの後（fa-file-word） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.ppt:after {
    content: '\f1c4';
    /* PPTファイルの後（fa-file-powerpoint） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.excel:after {
    content: '\f1c3';
    /* Excelファイルの後（fa-file-excel） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.mail:after {
    content: '\f0e0';
    /* メールアイコン（fa-envelope） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.cipher a:before {
    content: '\f023';
    /* 暗号通信の前（fa-lock） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: .5em;
}

.check::before {
    content: '\f00c';
    /* チェックマーク（fa-check） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: .3em;
}

/*罫線*/

hr {
    border: none;
    border-top: 1px solid #ccc;
}

hr.hr-full {
    margin: 0 .75em 1.5em;
    box-shadow: 1px 1px 1px rgba(0, 71, 157, 0.2);
}

/* ハイライト */
.text-highlight {
    background: linear-gradient(transparent 40%, #f6ff5f 40%);;
}

.inline {
    display: inline;
}

/*文字詰め*/

.feature {
    font-feature-settings: "palt";
}

/*囲み*/

.enclosure01 {
    border: 1px;
    border-style: solid;
    padding: 0.75em 1em;
}

.enclosure02 {
    display: inline-block;
    border: 1px;
    border-style: solid;
    padding: .5em 1em;
}

.enclosure-style01 {
    border-color: #DDDDDD;
    background: #FFFFFF;
}

.enclosure-style02 {
    border: 3px solid rgba(245, 200, 200, 0.4);
    background: rgba(245, 200, 200, 0.1);
}
.enclosure-style03 {
	border: 3px solid #ff0000;
	background: #FFFFFF;
	border-radius: 10px;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
}
  
/*リストスタイル*/
.list-style01 {
    margin-left: 2em;
    margin-right: 2em;
    font-size: clamp(0.875rem, 0.818rem + 0.242vw, 1rem);
}

.list-style01 li {
    margin-bottom: 0.3em;
}

.list-style {
    list-style-position: outside;
    padding-left: 1.8em;
}

.list-style > * + * {
    margin-top: 0.25em;
}

.list-disc {
    list-style-type: disc;
}

.list-num {
    list-style-type: decimal;
}

.list-num2 {
    list-style-type: decimal-leading-zero;
}

/* 方法1: text-indent と padding-left の組み合わせ */
.asterisk {
    padding-left: 1.2em;
    text-indent: -0.9em;
}

/* 方法2: table レイアウトを使用 */
.kome_ja > * {
    display: table;
    width: 100%;
}

.kome_ja > *:before {
    display: table-cell;
    content: "※";
    width: 1em;
}
/* 英語　* */
.kome_en > * {
    display: table;
    width: 100%;

    &:before {
        display: table-cell;
        content: "*";
        width: 1em;
    }
}

/*表組み*/
.tbl-sp {
    overflow-x: auto;
}

.tbl-sp table {
    min-width: 690px;
}
.tbl-width100 {
    width: 100%;
}

.tbl-width50 {
    width: 50%;
}

.tbl-style01 thead th {
    background-color: #ddd;
    border: 1px #cccccc;
    border-style: solid;
    padding: 0.5em;
}

.tbl-style01 tbody th,
.tbl-style01 tbody td {
    border: 1px #cccccc;
    border-style: solid;
}

.tbl-style01 tbody th {
    background-color: #eeeeee;
    padding: 0.5em;
}
.tbl-style01 tbody td {
    background-color: #ffffff;
    padding: 1.5em;
}
.tbl-style01.cfa-table tbody td {
    padding: 0.5em 1.5em;
}

.tbl-style02 tbody th,
.tbl-style02 tbody td {
    border: 1px #ffffff;
    border-style: solid;
}

.tbl-style02 tbody th {
    background-color: #ffffff;
    padding: 0.5em;
}

.tbl-style02 tbody td {
    background-color: #ffffff;
    padding: 0.5em;
}

.th-c-m th {
    text-align: center;
    vertical-align: middle;
}

.th-l-m th {
    text-align: left;
    vertical-align: middle;
}

.th-l-t th {
    text-align: left;
    vertical-align: top;
}

.td-c-m td {
    text-align: center;
    vertical-align: middle;
}

.td-l-m td {
    text-align: left;
    vertical-align: middle;
}

.td-l-t td {
    text-align: left;
    vertical-align: top;
}


ul.indent2em li {
	text-indent: -2em;
	padding-left: 2em;
}
.indent1em {
	text-indent: -1em;
	padding-left: 1em;
}
.indent2em {
	text-indent: -2em;
	padding-left: 2em;
}
.indent3em {
	text-indent: -3em;
	padding-left: 3em;
}
.indent4em {
	text-indent: -4em;
	padding-left: 4em;
}
.indent5em {
	text-indent: -5em;
	padding-left: 5em;
}
.indent6em {
	text-indent: -6em;
	padding-left: 6em;
}
.indent7em {
	text-indent: -7em;
	padding-left: 7em;
}
.indent8em {
	text-indent: -8em;
	padding-left: 8em;
}
.indent9em {
	text-indent: -9em;
	padding-left: 9em;
}
.indent10em {
	text-indent: -10em;
	padding-left: 10em;
}

.color_green {
  color: var(--nara-moegi);
}

.template {
  max-width: 700px;
	border: 1px solid var(--nara-moegi);
	background:rgba(255,255,255,0.7); 
	border-radius: 3px;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
  padding: 20px;
  margin: 20px auto;
}
.template .text {
  margin-left: 20px;
}
.template p {
    font-size: 14px;
}
.template p.sText {
    font-size: 13px;
}
.img_file {
  width: 50px;
  height: 50px;
  vertical-align: top!important;
}

@media (max-width: 768px) {
  .template {
    width: 100%;
  }
  .template.flex {
    display: block;
  }
  .template .text {
    margin: 20px 0 0 0;
  }
}