/* --- Google Fonts --- */
@import url(https://fonts.googleapis.com/css?family=Pacifico);
@import url(http://fonts.googleapis.com/earlyaccess/notosansjp.css);
@import url(https://fonts.googleapis.com/css?family=Josefin+Sans);

/* --- Reset --- */
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0;
}
address, caption, cite, code, dfn, em, strong, th, var { font-style: normal; }
ul { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }
caption, th { text-align: left; }
q:before, q:after { content: ''; }
object, embed { vertical-align: top; }
legend { display: none; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
img, abbr, acronym, fieldset { border: 0; }

/* --- Body Background --- */
body:before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100vh;
  background: url(../images/main_bg.jpg) center no-repeat;
  background-size: cover;
}
body {
  font: 16px/2.2 "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 300;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  color: #333;
}
a { color: #0066ff; text-decoration: none; }
a:hover, .active { text-decoration: underline; }
a:active, a:focus, input:active, input:focus { outline: 0; }

/* --- Custom Scrollbar --- */
::-webkit-scrollbar { width: 12px; }
::-webkit-scrollbar:horizontal { height: 12px; }
::-webkit-scrollbar-track { background-color: rgb(100, 100, 100); }
::-webkit-scrollbar-thumb { background: #e1ff00; }
::-webkit-scrollbar-corner, ::-webkit-resizer { background-color: rgb(150, 150, 150); }

/* --- Header --- */
#header {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 568px;
  background: #fff;
}
#header img {
  position: absolute;
  left: 50%;
  width: 1280px;
  height: 568px;
  margin-left: -640px;
}
#slogan object {
  position: absolute;
  top: 50%;
  width: 500px;
  transform: translate(0, -50%);
  color: #fff;
  line-height: 1.2;
  margin-left: 20%;
}
#slogan h1 {
  font-size: 40px;
  font-family: 'Pacifico', cursive;
  margin-bottom: 20px;
  font-weight: normal;
}

/* --- Footer --- */
#footer {
  clear: both;
  padding: 50px 10px 50px 0;
  text-align: center;
  font-size: 12px;
  background: #ccc;
}

/* --- Common --- */
h2 { position: relative; }
h2:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 7px;
  background: repeating-linear-gradient(-45deg, #e1ff00, #e1ff00 2px, #fff 2px, #fff 4px);
  font: 18px/2.2 "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 600;
}
img { width: 100%; height: auto; }
section { clear: both; }
section h2 { font-size: 22px; text-align: center; }
.inner { width: 94%; margin: 0 auto; padding-bottom: 40px; }
.col2 li { display: inline-block; width: 100%; margin: 20px 0; }

/* --- Greeting Section --- */
#greeting { background: #f0f0f0; }
.vision { width: 80%; margin: 0 auto; padding-bottom: 80px; }

/* --- SNS Section --- */
#sns { background: #f0f0f0; }
.wrap { clear: both; width: 100%; background: #f6f6f6; }
.bg { line-height: 0; }
.txt h2 { padding: 0 0 10px !important; }

/* --- About Section --- */
#about { background: #f0f0f0; }
.col3 li { margin-bottom: 50px; }
.col3 img { max-width: 288px; display: block; margin: -5px auto 20px; }

/* --- Access Section --- */
#access { padding-top: 50px; background: #f0f0f0; }
#access dl { line-height: 1.2; }
#access dt {
  clear: left;
  float: left;
  display: block;
  width: 30%;
  margin-right: 10%;
  margin-bottom: 20px;
  text-align: right;
  line-height: 1.6em;
}
#access dd {
  width: 60%;
  float: left;
  text-align: left;
  margin-bottom: 15px;
  line-height: 1.6em;
}
#access header { display: none; }
#map {
  position: relative;
  padding-bottom: 75%;
  height: 0;
  overflow: hidden;
}
#map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}

/* --- Responsive --- */
@media only screen and (min-width: 1200px) {
  .inner { width: 1024px; padding-bottom: 120px; }
  section h2 { padding: 70px 0 5px; margin-bottom: 1em; }
  .txt h2 { padding: 0 0 20px !important; }
}
@media only screen and (min-width: 800px) {
  body { font-size: 16px; }
  a#menu { display: none; }
  .panel { display: block !important; }
  #mainnav {
    background: rgba(255, 255, 255, .3);
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 500;
  }
  #mainnav ul { text-align: right; padding-right: 30px; }
  #mainnav li {
    display: inline-block;
    padding: 45px 10px 20px;
    font-size: 18px;
    font-weight: 500;
  }
  #mainnav a { color: #333; }
  #mainnav a:hover, .active { text-decoration: underline; color: #E0FF02; }
  #mainnav.changeNav { background: rgba(255, 255, 255, .9); border-bottom: 1px solid #d1d1d1; }
  #mainnav.changeNav li { padding: 20px 10px; }
  .txt, .bg { width: 50%; float: left; display: table; background: #f6f6f6; }
  #sns_02 .txt, #sns_02 .bg { background: #f0f0f0; float: right; }
  .vMid, .vMid_2 {
    display: table-cell;
    padding: 0 100px;
    vertical-align: middle;
    text-align: center;
    background: #f6f6f6;
  }
  .vMid_2 { background: #fff; }
  #about { background: #f0f0f0; }
  #about p { text-indent: 1em; margin-bottom: .5em; }
  .testament { display: inline-block; padding-left: 2em; text-indent: -1em; }
  .col3 { text-align: center; }
  .col3 li {
    display: inline-block;
    width: 30%;
    padding: 0 1.5%;
    margin-bottom: 0;
    vertical-align: top;
    text-align: left;
  }
  #access { background: #f0f0f0; padding-top: 120px; }
  #footer { padding: 30px 10px 70px 0; }
}
@media only screen and (min-width: 641px) {
  .col2 li { width: 40%; padding: 0 3%; vertical-align: top; }
}
@media only screen and (max-width: 640px) {
  #header { position: relative; overflow: hidden; width: 100%; height: 400px; background: #ccc; }
  #about p { text-indent: 1em; margin-bottom: .5em; }
  .testament { display: inline-block; padding-left: 2em; text-indent: -1em; }
  #header img { position: absolute; left: 80%; width: 960px; height: 426px; margin-left: -640px; }
  #map iframe { width: 96% !important; left: 2%; }
}
@media only screen and (max-width: 799px) {
  #slogan object { width: 300px; margin-left: 1vh; top: 50%; }
  a#menu { display: inline-block; position: relative; width: 40px; height: 40px; margin: 10px; }
  #menuBtn {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    margin: -1px 0 0 -7px;
    background: #fff;
    transition: .2s;
  }
  #menuBtn:before, #menuBtn:after {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 18px;
    height: 2px;
    background: #fff;
    transition: .3s;
  }
  #menuBtn:before { margin-top: -7px; }
  #menuBtn:after { margin-top: 5px; }
  a#menu .close { background: transparent; }
  a#menu .close:before, a#menu .close:after { margin-top: 0; }
  a#menu .close:before { transform: rotate(-45deg); }
  a#menu .close:after { transform: rotate(-135deg); }
  .panel { width: 100%; display: none; overflow: hidden; position: relative; left: 0; top: 0; z-index: 100; }
  #mainnav { position: absolute; top: 0; right: 0; width: 100%; text-align: right; z-index: 500; }
  #mainnav ul { border-bottom: 1px solid #ccc; background: #fff; text-align: left; }
  #mainnav li a {
    position: relative;
    display: block;
    padding: 15px 25px;
    border-bottom: 1px solid #ccc;
    color: #000;
    font-weight: 400;
  }
  #mainnav li a:before {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    left: 5px;
    width: 6px;
    height: 6px;
    margin: -4px 0 0 0;
    border-top: solid 2px #000;
    border-right: solid 2px #000;
    transform: rotate(45deg);
  }
  .col3 li { margin: 0 auto; display: block; max-width: 288px; }
}
@media only screen and (max-width: 1199px) {
  section h2 { padding: 50px 0 20px 0; margin-bottom: 1em; }
  #greeting h2 { padding: 70px 0 20px; margin-bottom: 1em; }
  .vMid, .vMid_2 { padding: 0 20px; }
}

/* --- Contact Section --- */
.contactTelBox {
  margin-left: auto;
  margin-right: auto;
  background: #f0f0f0;
  padding: 24px;
}
.contactTelBox p { text-align: center; }
a#contactTelArea {
  white-space: nowrap;
  margin: 10px auto;
  display: block;
  font-weight: bold;
  text-decoration: none;
  font-size: 4em;
  color: #006495;
}
@media only screen and (max-width: 799px) {
  a#contactTelArea { font-size: 2.2em; }
}

/* --- Contact Form --- */
.Form {
  margin-left: auto;
  margin-right: auto;
  background: #f0f0f0;
  padding-bottom: 24px;
}
.Form-Item {
  border-top: 1px solid #ddd;
  padding-top: 24px;
  padding-left: 24px;
  padding-bottom: 24px;
  display: flex;
  align-items: center;
}
.Form-Item:nth-child(5) { border-bottom: 1px solid #ddd; }
.Form-Item-Label {
  width: 100%;
  max-width: 248px;
  letter-spacing: 0.05em;
  font-weight: bold;
  font-size: 18px;
}
.Form-Item-Label.isMsg { margin-top: 8px; margin-bottom: auto; }
.Form-Item-Label-Required {
  border-radius: 6px;
  margin-right: 8px;
  padding-top: 8px;
  padding-bottom: 8px;
  width: 48px;
  display: inline-block;
  text-align: center;
  background: #592456;
  color: #fff;
  font-size: 14px;
}
.Form-Item-Label-Required-non {
  margin-right: 8px;
  width: 48px;
  display: inline-block;
}
.Form-Item-Input, .Form-Item-Textarea {
  border: 1px solid #ddd;
  border-radius: 6px;
  margin-left: 40px;
  padding-left: 1em;
  padding-right: 1em;
  flex: 1;
  width: 100%;
  max-width: 650px;
  background: #eaedf2;
  font-size: 18px;
}
.Form-Item-Input { height: 48px; }
.Form-Item-Textarea { height: 216px; }
.Form-Btn {
  border-radius: 6px;
  margin-top: 32px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 20px;
  padding-bottom: 20px;
  width: 280px;
  display: block;
  letter-spacing: 0.05em;
  background: #592456;
  color: #fff;
  font-weight: bold;
  font-size: 20px;
}
@media only screen and (max-width: 1199px) {
  .Form-Item { padding-left: 24px; padding-right: 24px; }
  .Form-Item-Input, .Form-Item-Textarea { margin-right: 40px; max-width: 700px; }
  .Form-Btn { width: 280px; font-size: 20px; }
}
@media only screen and (max-width: 799px) {
  .Form-Item { padding-left: 14px; padding-right: 14px; padding-top: 16px; padding-bottom: 16px; flex-wrap: wrap; }
  .Form-Item-Label { max-width: inherit; display: flex; align-items: center; font-size: 15px; }
  .Form-Item-Label.isMsg { margin-top: 0; }
  .Form-Item-Label-Required { border-radius: 4px; padding-top: 4px; padding-bottom: 4px; width: 32px; font-size: 10px; }
  .Form-Item-Label-Required-non { width: 32px; }
  .Form-Item-Input { margin-left: 0; margin-top: 18px; margin-right: 0; height: 40px; max-width: 700px; font-size: 15px; }
  .Form-Item-Textarea { margin-top: 18px; margin-left: 0; margin-right: 0; height: 200px; max-width: 700px; font-size: 15px; }
  .Form-Btn { margin-top: 24px; padding-top: 8px; padding-bottom: 8px; width: 160px; font-size: 16px; }
}
a[href$=".pdf"]:after {
  content: " ";
  display: inline-block;
  width: 24px;
  height: 24px;
  background: url(../images/PDF_24.png) no-repeat;
}

/* --- aguri.html セクション幅をindex2.htmlに揃える --- */
.trouble-container {
  max-width: 900px;
  margin: 0 auto;
  padding: 2em 1em;
  box-sizing: border-box;
  font-size: 1.05em;
}
@media (max-width: 900px) {
  .trouble-container { max-width: 100%; padding: 1.2em 0.5em; }
}
@media (max-width: 600px) {
  .trouble-container { padding: 0.7em 0.2em; font-size: 0.98em; }
}

/* --- 申請に必要な書類一覧（カード型） 横並び時に2個で幅いっぱい --- */
.document-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  gap: 2em;
  margin-top: 1em;
}
.document-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(142,36,170,0.10);
  border: 2px solid #ce93d8;
  padding: 1.2em;
  font-size: 1.05em;
  transition: box-shadow 0.2s, border-color 0.2s;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  box-sizing: border-box;
  flex: 1 1 calc(50% - 1em);
  max-width: calc(50% - 1em);
  min-width: 320px;
  margin: 0;
}
@media (max-width: 900px) {
  .document-list { gap: 1.5em; }
  .document-card { min-width: 220px; max-width: 100%; flex: 1 1 100%; }
}
@media (max-width: 600px) {
  .document-list { flex-direction: column; align-items: stretch; gap: 1.2em; }
  .document-card { min-width: 0; max-width: 100%; font-size: 0.98em; flex: 1 1 100%; height: auto; }
}
.doc-title {
  font-weight: bold;
  color: #6a1b9a;
  margin-bottom: 0.7em;
  font-size: 1.15em;
  letter-spacing: 0.03em;
}
.doc-detail-list { list-style: none; padding: 0; margin: 0; }
.doc-detail-list li {
  border-left: 4px solid #ce93d8;
  background: #f8f5fa;
  margin-bottom: 0.7em;
  padding-left: 0.7em;
}
.doc-type { font-weight: bold; color: #4a148c; }
.doc-note { color: #6d4c41; font-size: 0.98em; }

/* --- こんな困ったはありませんか？ 本文装飾 --- */
#trouble:nth-of-type(3) .trouble-question {
  background: linear-gradient(90deg, #fffde7 80%, #fff9c4 100%);
  border: 2px dashed #ffd600;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(255,214,0,0.10);
  padding: 1.5em 1em 1.5em 1.5em;
  margin-bottom: 1.5em;
  position: relative;
}
#trouble:nth-of-type(3) .trouble-question strong {
  display: block;
  font-size: 1.25em;
  color: #ff8f00;
  margin-bottom: 0.7em;
  letter-spacing: 0.04em;
  text-shadow: 0 2px 8px #fff9c4;
}
#trouble:nth-of-type(3) .trouble-question ul {
  margin-left: 1.2em;
  margin-bottom: 1em;
}
#trouble:nth-of-type(3) .trouble-question ul li {
  position: relative;
  padding-left: 1.5em;
  margin-bottom: 0.7em;
  font-size: 1.08em;
  color: #795548;
  background: #fffbe5;
  border-radius: 6px;
  box-shadow: 0 1px 4px rgba(255,214,0,0.06);
}
#trouble:nth-of-type(3) .trouble-question ul li:before {
  content: "★";
  position: absolute;
  left: 0.3em;
  top: 0.1em;
  color: #ffd600;
  font-size: 1em;
}
#trouble:nth-of-type(3) .trouble-question p {
  font-size: 1.08em;
  color: #d84315;
  font-weight: bold;
  margin-top: 1em;
  margin-bottom: 0.5em;
  background: #fffde7;
  padding: 0.7em 1em;
  border-radius: 6px;
  box-shadow: 0 1px 4px rgba(255,214,0,0.08);
  border-left: 4px solid #ffd600;
}

/* --- こんな困ったはありませんか？ 以降の本文装飾 --- */
#trouble:nth-of-type(3) .trouble-container > p {
  background: linear-gradient(90deg, #fffde7 80%, #fff9c4 100%);
  border-left: 6px solid #ffd600;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(255,214,0,0.10);
  padding: 1em 1.5em;
  margin-bottom: 1em;
  font-size: 1.08em;
  color: #795548;
  font-weight: 500;
  line-height: 1.8;
  position: relative;
}
#trouble:nth-of-type(3) .trouble-container > p:first-of-type { margin-top: 1em; }
#trouble:nth-of-type(3) .trouble-container > p::before {
  content: "💡";
  position: absolute;
  left: 0.7em;
  top: 1em;
  font-size: 1.2em;
  color: #ffd600;
}

/* --- セクションごとの背景色をすべて白に変更 --- */
#trouble:nth-of-type(1) .trouble-container,
#trouble:nth-of-type(2) .trouble-container,
#trouble:nth-of-type(3) .trouble-container,
#trouble:nth-of-type(4) .trouble-container {
  background: #fff;
  border-left: 8px solid;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  padding: 2em 2em 2em 1.5em;
}
#trouble:nth-of-type(1) .trouble-container { border-left-color: #8bc34a; }
#trouble:nth-of-type(2) .trouble-container { border-left-color: #2196f3; }
#trouble:nth-of-type(3) .trouble-container { border-left-color: #ffd600; }
#trouble:nth-of-type(4) .trouble-container { border-left-color: #8e24aa; }

/* --- その他 aguri.html 用スタイル（必要に応じて追加） --- */
.trouble-question ul,
.trouble-answer ul { margin: 0.5em 0 1em 1.5em; padding: 0; }
.trouble-answer ul li {
  margin-bottom: 1em;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  padding: 1em;
}
.trouble-answer .arrow { font-size: 1.2em; color: #007b7b; font-weight: bold; }
@media (max-width: 600px) {
  .trouble-answer ul li { padding: 0.7em; font-size: 0.98em; }
}
#trouble h3 { margin-top: 2em; margin-bottom: 1em; padding-left: 0; margin-left: 0; }
#trouble ol { margin-left: 1em; padding-left: 0; }
#trouble p,
#trouble ul,
#trouble .trouble-question,
#trouble .trouble-answer { margin-left: 1em; }
@media (max-width: 600px) {
  #trouble ol,
  #trouble p,
  #trouble ul,
  #trouble .trouble-question,
  #trouble .trouble-answer { margin-left: 0.5em; }
}

/* --- aguri.htmlでmain_bg.jpgを無効化 --- */
body.aguri-bg-disable::before {
  display: none !important;
}

/* --- aguri.htmlだけセクション同士の上下に余白を追加 --- */
body.aguri-bg-disable section {
  margin-top: 3em;
  margin-bottom: 3em;
}
body.aguri-bg-disable .trouble-container {
  margin-top: 2em;
  margin-bottom: 2em;
}

/* 洗練された事務所概要レイアウト */
.office-container {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  max-width: 900px;
  margin: 3em auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.08);
  padding: 2em;
}
.office-info, .office-access {
  flex: 1 1 380px;
  min-width: 320px;
  background: #f9f9f9;
  border-radius: 12px;
  padding: 1.5em;
  box-sizing: border-box;
}
.office-info h2, .office-access h2 {
  font-size: 1.4em;
  margin-bottom: 1em;
  border-bottom: 2px solid #e1ff00;
  padding-bottom: 0.5em;
  display: flex;
  align-items: center;
}
.office-info .icon, .office-access .icon {
  font-size: 1.2em;
  margin-right: 0.5em;
}
.office-info dl dt {
  font-weight: bold;
  margin-top: 1em;
  color: #333;
}
.office-info dl dd {
  margin-left: 0.5em;
  margin-bottom: 0.5em;
  color: #555;
}
.tel-btn {
  display: inline-block;
  background: #e1ff00;
  color: #333;
  font-weight: bold;
  padding: 0.4em 1em;
  border-radius: 6px;
  text-decoration: none;
  margin-top: 0.3em;
}
.map-frame {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(33,150,243,0.10);
  margin-bottom: 1em;
}
.map-frame iframe {
  width: 100%;
  height: 220px;
  border: 0;
}
.parking {
  font-size: 1em;
  color: #888;
  margin-top: 0.5em;
}
@media (max-width: 800px) {
  .office-container { flex-direction: column; padding: 1em; }
  .office-info, .office-access { min-width: 0; padding: 1em; }
}

/* ...既存のstyle.css内容... */

/* 事務所概要ページ専用レイアウト（縦並び＆地図大きめ） */
.office-container.vertical {
  display: block;
  max-width: 900px;
  margin: 3em auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.08);
  padding: 2em;
}
.office-info {
  background: #f9f9f9;
  border-radius: 12px;
  padding: 1.5em;
  margin-bottom: 2em;
  box-sizing: border-box;
}
.office-access {
  background: #f9f9f9;
  border-radius: 12px;
  padding: 1.5em;
  box-sizing: border-box;
}
.office-info h2, .office-access h2 {
  font-size: 1.4em;
  margin-bottom: 1em;
  border-bottom: 2px solid #e1ff00;
  padding-bottom: 0.5em;
  display: flex;
  align-items: center;
}
.office-info .icon, .office-access .icon {
  font-size: 1.2em;
  margin-right: 0.5em;
}
.office-info dl dt {
  font-weight: bold;
  margin-top: 1em;
  color: #333;
}
.office-info dl dd {
  margin-left: 0.5em;
  margin-bottom: 0.5em;
  color: #555;
}
.tel-btn {
  display: inline-block;
  background: #e1ff00;
  color: #333;
  font-weight: bold;
  padding: 0.4em 1em;
  border-radius: 6px;
  text-decoration: none;
  margin-top: 0.3em;
}
.map-frame.large {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(33,150,243,0.10);
  margin-bottom: 1em;
  width: 100%;
  max-width: 100%;
}
.map-frame.large iframe {
  width: 100%;
  height: 400px;
  border: 0;
}
.parking {
  font-size: 1em;
  color: #888;
  margin-top: 0.5em;
}

/* aguri.html/事務所概要ページで背景画像を無効化 */
body.aguri-bg-disable::before {
  display: none !important;
}

/* 事務所概要ページのセクション余白 */
body.aguri-bg-disable section {
  margin-top: 3em;
  margin-bottom: 3em;
}
body.aguri-bg-disable .office-container {
  margin-top: 2em;
  margin-bottom: 2em;
}

/* ...既存のstyle.css内容... */

/* ...既存のstyle.css内容... */

/* 事業所概要ページの見出し上の余白をさらに小さく（ゼロに） */
.office-info h2,
.office-access h2 {
  margin-top: 0;      /* 余白を完全になくす */
  margin-bottom: 1em;
  border-bottom: 2px solid #e1ff00;
  padding-bottom: 0.5em;
  display: flex;
  align-items: center;
}

/* 事業所概要・アクセスボックスの余白も調整 */
.office-info,
.office-access {
  margin-top: 0;      /* 上余白をなくす */
  margin-bottom: 2em;
  padding-top: 1em;   /* 内側の余白は少し残す */
  padding-bottom: 1.5em;
}

/* 農地転用に必要となる主な書類 の電球アイコン位置調整 */
#trouble:nth-of-type(3) .trouble-container > p::before {
  content: "💡";
  position: absolute;
  left: -2em;      /* 左にずらして重ならないように */
  top: 1em;
  font-size: 1.2em;
  color: #ffd600;
}

/* アイコンがはみ出す場合は余白を追加 */
#trouble:nth-of-type(3) .trouble-container > p {
  position: relative;
  padding-left: 2em; /* アイコン分の余白を追加 */
}

/* 農地転用に必要となる主な書類 の電球アイコンを枠内左端に配置し、文章と重ならないよう調整 */
#trouble:nth-of-type(3) .trouble-container > p {
  position: relative;
  padding-left: 2.2em; /* アイコン分の余白を確保 */
}

#trouble:nth-of-type(3) .trouble-container > p::before {
  content: "💡";
  position: absolute;
  left: 0.7em;         /* 枠内左端に配置 */
  top: 0.2em;          /* 上端に揃える */
  font-size: 1.2em;
  color: #ffd600;
  line-height: 1;
}

/* 料金表ページ用スタイル（style.cssに追加） */
.price-container {
  max-width: 900px;
  margin: 3em auto;
  padding: 2em 1em;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}
.price-container h2 {
  text-align: center;
  font-size: 2em;
  margin-bottom: 2em;
}
.price-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  justify-content: center;
}
.price-card {
  background: #f9f9f9;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(33,150,243,0.08);
  padding: 1.5em;
  flex: 1 1 380px;
  min-width: 280px;
  max-width: 420px;
  box-sizing: border-box;
}
.price-card h3 {
  font-size: 1.2em;
  margin-bottom: 1em;
  color: #1565c0;
  border-bottom: 2px solid #e1ff00;
  padding-bottom: 0.5em;
}
.price-card table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 0.5em;
}
.price-card th, .price-card td {
  text-align: left;
  padding: 0.6em 0.5em;
  border-bottom: 1px solid #e0e0e0;
  font-size: 1em;
}
.price-card th {
  width: 30%;
  color: #333;
  background: #f3f3f3;
  font-weight: bold;
}
.price-card td {
  color: #555;
}
@media (max-width: 900px) {
  .price-list {
    flex-direction: column;
    gap: 1.5em;
  }
  .price-card {
    max-width: 100%;
    min-width: 0;
  }
}

/* ...既存のstyle.css内容... */

/* 料金表ページのカードを1列表示に統一 */
.price-list {
  display: block;
  gap: 0;
}

.price-card {
  max-width: 900px;
  margin: 2em auto;
  background: #f9f9f9;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(33,150,243,0.08);
  padding: 2em 1.5em;
  box-sizing: border-box;
}

/* ...既存のstyle.css内容... */

/* 料金表テーブルの列幅調整 */
.price-card table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.price-card th,
.price-card td {
  text-align: left;
  padding: 0.6em 0.5em;
  border-bottom: 1px solid #e0e0e0;
  font-size: 1em;
  word-break: break-word;
}

/* 列ごとの幅指定 */
.price-card th:nth-child(1),
.price-card td:nth-child(1) {
  width: 28%;
}
.price-card th:nth-child(2),
.price-card td:nth-child(2) {
  width: 14%;
}
.price-card th:nth-child(3),
.price-card td:nth-child(3) {
  width: 14%;
}
.price-card th:nth-child(4),
.price-card td:nth-child(4) {
  width: 44%;
}

/* ...既存のstyle.css内容... */

/* 相続・遺言関係テーブルだけ実費を広く、備考を狭く */
.price-card:nth-of-type(3) table {
  table-layout: fixed;
}
.price-card:nth-of-type(3) th:nth-child(1),
.price-card:nth-of-type(3) td:nth-child(1) {
  width: 28%;
}
.price-card:nth-of-type(3) th:nth-child(2),
.price-card:nth-of-type(3) td:nth-child(2) {
  width: 14%;
}
.price-card:nth-of-type(3) th:nth-child(3),
.price-card:nth-of-type(3) td:nth-child(3) {
  width: 28%;
}
.price-card:nth-of-type(3) th:nth-child(4),
.price-card:nth-of-type(3) td:nth-child(4) {
  width: 30%;
}

/* 他の料金表テーブルは従来通り */
.price-card table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.price-card th,
.price-card td {
  text-align: left;
  padding: 0.6em 0.5em;
  border-bottom: 1px solid #e0e0e0;
  font-size: 1em;
  word-break: break-word;
}
.price-card th:nth-child(1),
.price-card td:nth-child(1) {
  width: 28%;
}
.price-card th:nth-child(2),
.price-card td:nth-child(2) {
  width: 14%;
}
.price-card th:nth-child(3),
.price-card td:nth-child(3) {
  width: 14%;
}
.price-card th:nth-child(4),
.price-card td:nth-child(4) {
  width: 44%;
}

@media (max-width: 600px) {
  .price-card table,
  .price-card thead,
  .price-card tbody,
  .price-card tr {
    display: block;
    width: 100%;
  }
  .price-card tr {
    margin-bottom: 1.5em;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(33,150,243,0.08);
    padding: 1em 0.7em;
    border: none;
  }
  .price-card th,
  .price-card td {
    display: block;
    width: 100%;
    padding: 0.3em 0.5em;
    border: none;
    font-size: 1em;
  }
  .price-card th {
    font-weight: bold;
    color: #1565c0;
    background: none;
    margin-bottom: 0.2em;
    font-size: 0.98em;
  }
  .price-card td {
    margin-bottom: 0.6em;
    color: #333;
    font-size: 1em;
  }
  .price-card tr:not(:first-child) {
    margin-top: 1em;
  }
  /* ヘッダー行は非表示 */
  .price-card thead {
    display: none;
  }
}

/* ...既存のstyle.css内容... */

/* スマホ表示時の料金表をカード型・項目名付きでメリハリを強化 */
@media (max-width: 600px) {
  .price-card table,
  .price-card thead,
  .price-card tbody,
  .price-card tr {
    display: block;
    width: 100%;
  }
  .price-card tr {
    margin-bottom: 1.5em;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(33,150,243,0.10);
    padding: 1em 0.7em;
    border: none;
    position: relative;
  }
  .price-card th,
  .price-card td {
    display: block;
    width: 100%;
    padding: 0.3em 0.5em;
    border: none;
    font-size: 1em;
  }
  /* 項目名（th）をラベルとして表示 */
  .price-card th {
    font-weight: bold;
    color: #1565c0;
    background: none;
    margin-bottom: 0.2em;
    font-size: 0.98em;
    padding: 0.3em 0.5em 0 0.5em;
  }
  /* 各行の項目名と値をセットで表示 */
  .price-card tr {
    display: grid;
    grid-template-columns: 40% 60%;
    align-items: start;
    gap: 0.5em;
  }
  .price-card th {
    grid-column: 1;
    background: #f3f3f3;
    border-radius: 4px;
    padding: 0.5em;
    margin-bottom: 0;
    font-size: 0.98em;
    color: #1565c0;
    text-align: left;
    font-weight: bold;
  }
  .price-card td {
    grid-column: 2;
    color: #333;
    font-size: 1em;
    background: none;
    margin-bottom: 0;
    padding: 0.5em 0.5em 0.5em 0.5em;
    word-break: break-word;
  }
  /* ヘッダー行は非表示 */
  .price-card thead {
    display: none;
  }
  /* 1行目だけ上余白を追加 */
  .price-card tr:first-child {
    margin-top: 0.5em;
  }
}

/* ...既存のstyle.css内容... */

/* スマホ表示時の料金表を「項目名＋値」の縦並びカード型に変更 */
@media (max-width: 600px) {
  .price-card table,
  .price-card thead,
  .price-card tbody {
    display: block;
    width: 100%;
  }
  .price-card tr {
    display: block;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(33,150,243,0.10);
    margin-bottom: 1.2em;
    padding: 1em 0.7em;
    border: none;
  }
  .price-card th,
  .price-card td {
    display: block;
    width: 100%;
    border: none;
    font-size: 1em;
    padding: 0;
    margin: 0;
  }
  /* ヘッダー行は非表示 */
  .price-card thead {
    display: none;
  }
  /* 各tr内のtdを「項目名＋値」のセットで表示 */
  .price-card tr {
    padding: 1em 0.7em;
  }
  .price-card tr td {
    margin-bottom: 0.7em;
    padding: 0.5em 0.5em;
    background: #f9f9f9;
    border-radius: 4px;
    font-weight: normal;
    color: #333;
    position: relative;
  }
  .price-card tr td[data-label]:before {
    content: attr(data-label) "：";
    display: block;
    font-weight: bold;
    color: #1565c0;
    margin-bottom: 0.2em;
    font-size: 0.97em;
    background: none;
  }
  /* 4項目を縦並びで表示 */
  .price-card tr td {
    margin-bottom: 1em;
  }
  .price-card tr td:last-child {
    margin-bottom: 0;
  }
}

@media (max-width: 600px) {
  .price-card th,
  .price-card td {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .price-card table {
    table-layout: auto !important;
  }
}

/* SNSセクション高さ揃え用 */
/* 追加・修正する部分 */
// filepath: /Users/daisuke-u/Library/Mobile Documents/com~apple~CloudDocs/▼個人仕事/永野さん案件/2025年8月_修正作業/Macからのデータ/css/style.css

#sns .wrap {
  display: flex;
  align-items: stretch;
  gap: 0;
  background: #f6f6f6;
}

#sns .bg {
  flex: 0 0 180px; /* 画像の幅を固定（必要に応じて調整） */
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f6f6f6;
}

#sns .bg img {
  max-width: 100%;
  height: auto;
  display: block;
}

#sns .txt {
  flex: 1;
  display: flex;
  align-items: center;
  background: #f6f6f6;
}

/* タブレット・スマホ対応 */
@media (max-width: 800px) {
  #sns .wrap {
    flex-direction: column;
    align-items: stretch;
  }
  #sns .bg,
  #sns .txt {
    width: 100%;
    justify-content: center;
    align-items: center;
    display: flex;
    background: #f6f6f6;
  }
}

/* 最新情報セクション上下中央揃え */
#news {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}
#news h2 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 80px;
  margin: 0;
  padding: 0;
  text-align: center;
}

/* SNSセクション高さ揃え用（横並び維持＆テキスト上下中央揃え） */
// filepath: /Users/daisuke-u/Library/Mobile Documents/com~apple~CloudDocs/▼個人仕事/永野さん案件/2025年8月_修正作業/Macからのデータ/css/style.css

#sns .wrap {
  width: 100%;
  display: table;
  background: #f6f6f6;
}

#sns .bg, #sns .txt {
  display: table-cell;
  vertical-align: middle;
  width: 50%;
  background: #f6f6f6;
}

#sns .vMid {
  padding: 0 40px;
  text-align: center;
  vertical-align: middle;
}

/* SNSセクションの横幅最大値を事業内容と揃える */
// ...既存のstyle.css...

#sns .inner {
  width: 94%;
  margin: 0 auto;
  padding-bottom: 40px;
}

/* 添付図面・説明を上下で改行表示 */
// filepath: css/style.css

.doc-type,
.doc-note {
  display: block;
  margin-bottom: 2px; /* 必要に応じて余白調整 */
}

/* 追加・修正するCSS */
// filepath: css/style.css

.doc-detail-list li {
  display: block; /* flexやinline-blockを使わない */
}
.doc-type,
.doc-note {
  display: block;
  margin-bottom: 2px;
}

/* .doc-noteを横幅いっぱいに広げる */
// filepath: css/style.css

.doc-note {
  display: block;
  width: 100%;
}

/* 書類リストの見た目調整 */
// filepath: css/style.css

.doc-detail-list li {
  display: block;
  width: 100%;
  background: #f6f6f6;
  margin-bottom: 8px;
  padding: 8px 12px;
  box-sizing: border-box;
}

.doc-type,
.doc-note {
  display: block;
  width: 100%;
}

.doc-note {
  margin-top: 2px;
  color: #666;
}

/* 書類リストのliを幅いっぱいに */
.doc-detail-list li {
  display: block;
  width: 100%;
  background: #f6f6f6;
  margin-bottom: 8px;
  padding: 8px 12px;
  box-sizing: border-box;
}

/* doc-type, doc-noteを幅いっぱいに */
.doc-type,
.doc-note {
  width: 100%;
  margin-bottom: 2px;
}

.document-card {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}

.doc-detail-list {
  width: 100%;
}