/* =========================================================
   Aofuji Global Stylesheet  (mobile‑first)
   ---------------------------------------------------------
   1. Root & Reset
   2. Utilities
   3. Layout / Components
   4. Media Queries 768 / 992 / 1080
   ========================================================= */

/* ---------- 1. Root & Reset ---------- */
:root {
  --aofuji-green: #28933a;
  --aofuji-green-light: #38b34a;
}

* , *::before , *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Noto Sans JP', sans-serif, "メイリオ", "Hiragino Kaku Gothic Pro", Meiryo,
               "ヒラギノ角ゴ Pro W3", "MS PGothic", "MS UI Gothic", Helvetica, Arial !important;
  font-weight: 300;
  margin: 0;
}

img { max-width: 100%; height: auto; border: 0; }

/* Links */
a {
  color: #000;
  text-decoration: none;
  transition: color .2s ease, background-color .2s ease;
}
a:hover { color: var(--aofuji-green); background: #fff; }

/* Headings & Text */
h1,h2,h3,h4,h5,h6,
.form-label,
.form-check-label { font-family:'Noto Sans JP',sans-serif; font-weight:500;}

.aofuji-h1 { font-size: 24px; line-height: 33px; font-weight: 500; color:#000; margin:0 0 7px 0; padding:0; }

p { margin: 0; font-size: 18px; font-weight: 400; color:#000; }

/* ---------- 2. Utilities ---------- */
.gfont        {font-family:'Noto Sans JP',sans-serif;font-weight:700;}
.green        {color:var(--aofuji-green);}
.white        {color:#FFF;}
.gray         {color:#666;}
.red          {color:#F00;}
.bold         {font-weight:bold;}
.green.bold   {margin: 0 0 5px 0;}
.small {
  font-size: 15px !important;
  vertical-align: baseline; line-height:18px!important;
}
.font18 {font-size:18px;}

.small12       {font-size:12px!important; display:inline-block; line-height:15px;}

.small-list    {line-height: 22px!important;}

/* ---------- 3. Layout / Components ---------- */

/* Wrapper */
.wrap { padding:10px; background:#FFF; }

/* Header（モバイル時：ロゴ左・ハンバーガー右） */
.header, .menubar { display: flex; flex-direction: row; align-items: center; justify-content: space-between; height: 100px; }
.aofuji-logo { width: 180px!important; height: auto!important; margin-left:20px; }
#menu01 { position: absolute; right: 30px; top: 50px; transform: translateY(-50%); z-index: 101; }

/* Hamburger */
#hanburger { display:none; }
.menu-trigger {position:relative; width:32px; height:24px; background:none; border:none; cursor:pointer; z-index:101;}
.menu-trigger span {position:absolute; left:0; width:100%; height:3px; background:#000; border-radius:2px; transition:.1s;}
.menu-trigger span:nth-of-type(1){top:0;}
.menu-trigger span:nth-of-type(2){top:10px;}
.menu-trigger span:nth-of-type(3){bottom:0;}
/* animation */
#hanburger:checked + label span:nth-of-type(1){transform:translateY(10.5px) rotate(45deg);} 
#hanburger:checked + label span:nth-of-type(2){opacity:0;} 
#hanburger:checked + label span:nth-of-type(3){transform:translateY(-10.5px) rotate(-45deg);} 
#hanburger:checked ~ .global_menu{opacity:1;visibility:visible;}

/* Global menu */
.global_menu {
  visibility:hidden; opacity:0; transition:opacity .4s;
  position:fixed; inset:0; padding:135px 20px 20px; background:#fff; overflow-y:auto; text-align:center; z-index:99;
}
/* TOPボタンの表示制御（スマホ時のみメニュー開閉時に表示） */
#hanburger:checked ~ .global_menu .global_menu__contact {
  display: block;
}
.global_menu a {
  display:block; height:60px; line-height:60px; border:1px solid #444; margin-bottom:5px;
  font-size:16px; color:#111; background:#fff;
}
.global_menu a:hover {color:#28933a!important; text-decoration:none!important;}
.global_menu a.global_menu__top {background:#fff; border-radius:4px; padding:0; color:#111!important;}
.global_menu a.global_menu__top:hover {background: #fff!important; color: #28933a!important;}
.global_menu a.global_menu__contact {background:var(--aofuji-green); border-radius:4px; padding:auto 12px; color:#fff!important;}
.global_menu a.global_menu__contact:hover {background: var(--aofuji-green-light)!important; color: #fff!important;}


/* Main boxes */


/* --- aofujiトップ画像 --- */
.aofuji-top { width: 100%; height: auto; display: block; margin: 0 auto 24px auto; }
.aofuji-top-title { position: absolute; top: 33%; left: 0; width: 100%; text-align: center; color: #fff; font-size: 16px; font-weight: bold; letter-spacing: 0.1em; text-shadow: 0 2px 8px rgba(0,0,0,0.4); z-index: 2; pointer-events: none; }
.aofuji-top-content { position: relative; }

/* Footer */
footer { background: var(--aofuji-green); color: #fff; border-bottom:12px solid #000; margin:60px 0 0 0;}
.footer-logo { width:150px; height:auto;}
.footer-logo-png { width:60px; height:auto; margin-bottom:6px;}
.footer-container {display:flex; flex-direction:column; align-items:center;}
.links { display:flex; flex-direction:column; align-items:center; line-height:24px; }
.links a { color:#fff; margin:10px 10px 0 8px; }

.copyright { background:var(--aofuji-green); text-align:center; padding:40px 0 30px 0;}
.copyright p { margin:0; font-size:13px; color:#FFF; }
.small-copy {font-size:10px;}

/* Contact form elements */
input[type="radio"], input[type="checkbox"] {
  appearance:none; width:16px; height:16px; margin:5px 0 0;
  border:2px solid var(--aofuji-green); border-radius:50%; cursor:pointer;
}
input[type="radio"]:checked,
input[type="checkbox"]:checked { background:var(--aofuji-green); }
input[type="radio"]:checked::before {content:""; display:block; width:8px; height:8px; margin:2px; background:#fff; border-radius:50%;}


/* 2カラムメインレイアウト */
.aofuji-main-row {
  display: flex;
  flex-direction: column;
  margin:0 auto;
  gap: 55px;
  max-width: 1280px;
  padding-left: 10px;
  padding-right: 10px;
}

.aofuji-main-left { flex: 2 1 0; min-width: 0; height: auto; padding:0;}
.aofuji-main-right { flex: 1 1 0; min-width: 0; height: auto; padding:0;}

.aofuji-main-left p, .aofuji-main-right p { text-align: left; }

.btn {font-size:18px!important; margin-top:10px;}
.btn-contact { background: var(--aofuji-green); color: #fff!important; border-radius: 4px; padding: 8px 20px; font-weight: bold; border: none; transition: background 0.3s, color 0.3s; }
.btn-contact:hover { background: var(--aofuji-green-light); color: #fff!important; }

.btn-aofuji-small {
  background: var(--aofuji-green, #28a745);
  color: #fff;
  border: none;
  border-radius: 0.4em;
  padding: 8px 10px;
  font-size: 15px!important;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  transition: background 0.2s, box-shadow 0.2s;
 width:auto;
 height:40px;
 margin:0 2px 5px 0;
}
.btn-aofuji-small:hover, .btn-aofuji:focus {
  background: var(--aofuji-green-light, #218838);
  color: #fff!important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.13);
}

.btn-aofuji {
  background: var(--aofuji-green, #28a745);
  color: #fff;
  border: none;
  border-radius: 0.4em;
  padding: 0.7em 2.2em;
  font-size: 1.1rem;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  transition: background 0.2s, box-shadow 0.2s;
 width:100%;
}
.btn-aofuji:hover, .btn-aofuji:focus {
  background: var(--aofuji-green-light, #218838);
  color: #fff!important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.13);
}

/* 青富士の緑色ボタン（ホバー効果なし） */
.btn-aofuji-green {
  background: var(--aofuji-green);
  color: #fff;
  border: none;
  padding: 2px 6px 3px;
  font-size: 13px;
  font-weight: 300;
  border-radius: 1px;
  cursor: default;
  margin-right: 6px;
}

.btn-outline-aofuji {
  color: var(--aofuji-green, #28a745);
  border: 1.5px solid var(--aofuji-green, #28a745);
  background: #fff;
  font-size: 16px;
  padding: 7px;
  margin:5px 5px 2px 0;
  cursor: default;
}



.logo-note { width: 140px; height: auto; display: block; margin: 0 0 10px 0; }
.logo-note-aofuji { 
  width: 40px; 
  height: auto; 
  margin: 0 0px 0 0; 
  flex-shrink: 0;
}

/* note画像を含む段落にflexboxを適用 */
p:has(.logo-note-aofuji) {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

/* aofuji-border: 共通のグリーンボーダー用 */
.aofuji-border {
  border: 1px solid #CCC;
  margin: 20px 0;
}

.aofuji-border-tenten {
  border: 1px dotted #CCC;
  margin: 10px 0;
}

.aofuji-img { width: 100%; height: auto; display: block; margin: 0 auto 20px; }

/* 主な業務領域リスト用 */
.aofuji-list {
  list-style: none;
  padding-left: 0;
  margin: 0 0 24px 0;
}
.aofuji-list li {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 500;
}

.aofuji-list-small {
  list-style: none;
  padding-left: 0;
}
.aofuji-list-small li {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin-bottom: 0px;
  font-size: 18px;
  font-weight: 500;
}

.aofuji-list-icon {
  width: auto;
  height: 15px;
  margin-top: 5px;
  flex-shrink: 0;
}

.list-mo {margin-top: 10px!important;}

.table.aofuji-company-table {
  border-collapse: collapse;
  border-left: none;
  border-right: none;
}
.table.aofuji-company-table th,
.table.aofuji-company-table td {
  border-left: none;
  border-right: none;
}
.table.aofuji-company-table th {
  width: 6em;
  min-width: 4em;
  max-width: 7em;
  white-space: nowrap;
  font-weight: 400;
  font-size: 15px;
}
.table.aofuji-company-table td {
  font-size: 16px; font-weight: 400;
}
.table.aofuji-company-table tbody tr:hover {
  background: #f2f2f2;
}

/* 料金テーブル用スタイル（company.htmlの表に合わせる） */
.table.aofuji-price-table {
  border-collapse: collapse;
  border: none;
}
.table.aofuji-price-table th,
.table.aofuji-price-table td {
  border: none;
  border-bottom: 1px solid #dee2e6;
  padding: 8px 12px;
}
.table.aofuji-price-table th {
  font-weight: 400;
  font-size: 15px;
  background: transparent;
}
.table.aofuji-price-table td {
  font-size: 16px; 
  font-weight: 400;
}
/* 参考金額列（2列目）の幅を統一し、右寄せにする */
.table.aofuji-price-table th:nth-child(2),
.table.aofuji-price-table td:nth-child(2) {
  width: 120px;
  min-width: 120px;
  max-width: 120px;
  text-align: right;
  white-space: nowrap;
  padding-right: 15px;
}
/* ホバー時の色変更を無効化 */
.table.aofuji-price-table tbody tr:hover {
  background: transparent;
}



.form-label {
  font-size: 19px; padding-top:10px;
}

.form-select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.form-select:focus {
  border-color: #86b7fe;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25);
  transition: box-shadow 0.2s, border-color 0.2s;
}

.form-check-input {
  vertical-align: middle;
  margin-top: -3px!important; /* 必要に応じて数値を調整 */
}

/* プルダウン＋テキストエリアのセット用 */
.aofuji-form-group {
  margin-bottom: 10px; /* 必要に応じて調整 */
}
.aofuji-form-group .form-select {margin-bottom: 6px; /* プルダウン下の余白 */}

.thanks-text { font-size: 17px; font-weight: 400; color: #000; text-align: center; margin: 300px auto; }

.step-img { width: 150px; height: auto; display: block; margin-left:-18px; }

/* ---------- 4. Media queries ---------- */
@media (min-width:768px) {
  .wrap { padding:40px; }
  .mobile-only { display:none; }
  .desktop-only { display:block; }
  .links { flex-direction:row; line-height:40px; }
  .links a { margin:10px 20px; }
}

@media (min-width:992px) {
  /* Logo & header */
  .aofuji-logo { width:320px; height:60px; margin-left:40px; }
  #menu01 { display:none; }
  /* Global menu desktop mode */
  .global_menu {
    position:static; padding:0 32px 0 0; height:auto; visibility:visible; opacity:1;
    display:flex; flex-direction:row; align-items:center; justify-content:flex-end; background:none; box-shadow:none;}
  .global_menu a { display:inline-block; height:auto; line-height:1.2; border:none; background:none; margin:0 24px 0 0; }
  .global_menu a:last-child { margin-right:0; }
  /* PC表示時はTOPボタンを非表示 */
  .global_menu a.global_menu__top { display:none; }
  .global_menu a.global_menu__contact {padding:8px 12px;}

  .aofuji-top-title { top:40%; font-size: 40px; }
  .aofuji-main-row { flex-direction: row; padding-left: 40px; padding-right:40px; }
}

@media (min-width:1080px) {
}

@media (min-width: 1350px) {
}
