/*
Theme Name: Hayabusa Law Office
Theme URI: https://example.com
Description: HP
Version: 1.0
Author: KANJI TAKAHASHI
Author URI: https://gihyo.jp

font-family:"Yu mincho";
*/

/* 1/15 8:41追記
【要修正①】ベース（共通）CSSがほぼ無い
今の style.css は「各ページの部品CSS」中心で、以下のような“土台”がありません：
画像のはみ出し防止（img{max-width:100%}）
コンテナ幅（.section_inner など）
box-sizing統一
フォント指定（コメントに書いてあるだけ）
これが無いと、WordPress標準ブロックやプラグイン（Contact Form7等）が入ったときに、ページごとに表示がバラつきます。

✅ 追加すべき“土台”を一番上（テーマ情報の直下）に入れてください
*/


/* ===== Base ===== */
*, *::before, *::after{ box-sizing: border-box; }
img{ max-width: 100%; height: auto; display: block; }

/*
body{
  margin: 0;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "HGS明朝E", serif;
  color: rgba(0,0,0,.86);
  line-height: 1.85;
}
*/

body {
  font-family:
    "Yu Mincho",
    "游明朝",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  color: #222;
  line-height: 1.8;
}

.content {
  font-size: 16px;
  line-height: 1.9;
}

@media (min-width: 768px) {
  .content {
    font-size: 17px;
  }
}



/* 汎用コンテナ（存在するなら） */
.section_inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

/* 追記ここまで */


/* ===== Office Introduction (Stylish) ===== */
.office-intro{
  padding: clamp(32px, 5vw, 72px) 16px;
  background:
    radial-gradient(1200px 400px at 10% 0%, rgba(0,0,0,.06), transparent 60%),
    radial-gradient(1000px 380px at 90% 10%, rgba(0,0,0,.04), transparent 55%),
    #fff;
}

.office-intro__inner{
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(18px, 3.5vw, 32px);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 20px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 14px 40px rgba(0,0,0,.08);
  backdrop-filter: blur(6px);
}

.office-intro__lead{
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.7;
  letter-spacing: .02em;
  margin: 0 0 18px;
  padding: 14px 16px 14px 18px;
  border-left: 4px solid rgba(0,0,0,.85);
  background: rgba(0,0,0,.03);
  border-radius: 12px;
}

.office-intro__body p{
  font-size: 16px;
  line-height: 1.95;
  letter-spacing: .02em;
  color: rgba(0,0,0,.82);
  margin: 0 0 14px;
}

.office-intro__body p + p{
  margin-top: 10px;
}

.office-intro__quote{
  margin-top: 18px !important;
  padding: 16px 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
  position: relative;
}

.office-intro__quote::before{
  content: "“";
  position: absolute;
  top: -10px;
  left: 12px;
  font-size: 44px;
  line-height: 1;
  opacity: .25;
}

.office-timeline{
  margin-top: clamp(22px, 4vw, 34px);
  padding-top: clamp(18px, 3vw, 24px);
  border-top: 1px solid rgba(0,0,0,.08);
}

.office-timeline__title{
  font-size: clamp(20px, 2.4vw, 26px);
  letter-spacing: .04em;
  margin: 0 0 14px;
}

.office-timeline__list{
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.office-timeline__list::before{
  content: "";
  position: absolute;
  left: 12px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: rgba(0,0,0,.12);
}

.office-timeline__list li{
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 14px;
  padding: 12px 10px 12px 36px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.06);
  background: #fff;
  margin-bottom: 10px;
  box-shadow: 0 10px 22px rgba(0,0,0,.05);
  position: relative;
}

.office-timeline__list li::before{
  content: "";
  position: absolute;
  left: 6px;
  top: 18px;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.85);
  box-shadow: 0 0 0 4px rgba(0,0,0,.10);
}

.office-timeline__date{
  font-weight: 700;
  letter-spacing: .02em;
  color: rgba(0,0,0,.78);
  white-space: nowrap;
}

.office-timeline__text{
  color: rgba(0,0,0,.82);
  line-height: 1.7;
}

/* Responsive */
@media (max-width: 600px){
  .office-timeline__list li{
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .office-timeline__date{
    opacity: .85;
  }
}

/* ===== Fields Page (Stylish add-on) ===== */

.fields-hero__title{
  margin: 0 0 8px;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .04em;
}

.fields-hero__lead{
  margin: 0 0 18px;
  line-height: 1.9;
  opacity: .85;
}

.fields-section{
  margin-top: 22px;
}

.fields-section__title{
  margin: 0 0 12px;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: .04em;
}

.fields-section__panel{
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0,0,0,.05), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
}

.fields-grid{
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.field-card{
  padding: 18px 18px 14px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}

.field-card__title{
  margin: 0 0 8px;
  font-size: 18px;
  letter-spacing: .03em;
}

.field-card__desc{
  margin: 0 0 12px;
  line-height: 1.95;
  opacity: .9;
}

.field-card--wide{
  grid-column: 1 / -1;
}

/* details(開閉) */
.field-details{
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(0,0,0,.08);
}

.field-details summary{
  cursor: pointer;
  font-weight: 700;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
}

.field-details summary::-webkit-details-marker{ display: none; }

.field-details summary::after{
  content: "＋";
  margin-left: auto;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
}

.field-details[open] summary::after{
  content: "－";
}

.field-details ul{
  margin: 10px 0 0;
  padding-left: 1.2em;
}

.field-details li{
  margin: 0 0 8px;
  line-height: 1.85;
  opacity: .92;
}

/* tags */
.field-tags{
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.field-tags li{
  font-size: 12px;
  line-height: 1;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
  font-weight: 600;
}

.fields-note{
  margin-top: 18px;
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
}

/* Responsive */
@media (max-width: 760px){
  .fields-grid{ grid-template-columns: 1fr; }
}

/* ===== FIX: cards appear on right half ===== */
.fields-page .fields-grid{
  width: 100%;
  max-width: 100%;
  justify-content: stretch;
  align-content: start;
  justify-items: stretch;
}

.fields-page .field-card{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  justify-self: stretch !important;
  align-self: stretch !important;
  box-sizing: border-box;
}

/* 念のため：article要素にテーマCSSが当たっている場合を潰す */
.fields-page article{
  float: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ===== Attorneys Page (Stylish add-on) ===== */

.attorneys-hero__title{
  margin: 0 0 8px;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .04em;
}
.attorneys-hero__lead{
  margin: 0 0 18px;
  line-height: 1.9;
  opacity: .85;
}

.attorneys-grid{
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.attorney-card{
  width: 100%;
  margin: 0;
  padding: 18px 18px 16px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  box-sizing: border-box;
}

.attorney-card__head{
  padding: 14px 14px 12px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
  margin-bottom: 14px;
}

.attorney-card__name{
  margin: 0 0 4px;
  font-size: 20px;
  letter-spacing: .03em;
}
.attorney-card__meta{
  margin: 0;
  opacity: .8;
  line-height: 1.6;
}

.attorney-card__sub{
  margin: 14px 0 10px;
  font-size: 16px;
  letter-spacing: .03em;
}

/* Timeline */
.timeline{
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.timeline::before{
  content: "";
  position: absolute;
  left: 12px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: rgba(0,0,0,.12);
}

.timeline li{
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 12px;
  padding: 12px 10px 12px 34px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.06);
  background: #fff;
  margin-bottom: 10px;
  box-shadow: 0 10px 22px rgba(0,0,0,.05);
  position: relative;
}

.timeline li::before{
  content: "";
  position: absolute;
  left: 6px;
  top: 18px;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.85);
  box-shadow: 0 0 0 4px rgba(0,0,0,.10);
}

.timeline__year{
  font-weight: 700;
  white-space: nowrap;
  letter-spacing: .02em;
  opacity: .85;
}
.timeline__text{
  line-height: 1.8;
  opacity: .92;
}

/* Books */
.book-list{
  margin: 0;
  padding-left: 1.2em;
}
.book-list li{
  margin: 0 0 8px;
  line-height: 1.8;
  opacity: .92;
}

@media (max-width: 760px){
  .attorneys-grid{
    grid-template-columns: 1fr;
  }
  .timeline li{
    grid-template-columns: 1fr;
    gap: 6px;
  }
}

/* ===== Access Page (Stylish add-on) ===== */

.access-hero__title{
  margin: 0 0 8px;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .04em;
}
.access-hero__lead{
  margin: 0 0 18px;
  line-height: 1.9;
  opacity: .85;
}

.access-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 10px;
}

.access-card{
  padding: 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}

.access-card__title{
  margin: 0 0 12px;
  font-size: 18px;
  letter-spacing: .03em;
}

/* DL */
.info-dl{
  margin: 0;
}
.info-dl__row{
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(0,0,0,.08);
}
.info-dl__row:first-child{ border-top: none; padding-top: 0; }
.info-dl dt{
  font-weight: 700;
  opacity: .85;
}
.info-dl dd{
  margin: 0;
  line-height: 1.8;
  opacity: .92;
}
.info-link{
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.25);
}
.info-link:hover{ opacity: .8; }

/* Map CTA */
.map-cta{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.08);
}
.map-cta__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  text-decoration: none;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
  font-weight: 700;
}
.map-cta__btn:hover{ opacity: .85; }
.map-cta__note{
  margin: 10px 0 0;
  line-height: 1.8;
  opacity: .8;
}

/* Stations */
.station-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}
.station-list li{
  padding: 12px 12px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(0,0,0,.05), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
}
.station-list__name{
  display: block;
  font-weight: 800;
  letter-spacing: .03em;
}
.station-list__meta{
  display: block;
  margin-top: 4px;
  opacity: .85;
  line-height: 1.7;
}

/* Routes */
.access-section{
  margin-top: 22px;
}
.access-section__title{
  margin: 0 0 12px;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: .04em;
}

.route-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.route-card{
  padding: 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}

.route-card__title{
  margin: 0 0 12px;
  font-size: 17px;
  letter-spacing: .03em;
}

/* Numbered steps */
.route-steps{
  margin: 0;
  padding-left: 1.2em;
}
.route-steps li{
  margin: 0 0 10px;
  line-height: 1.9;
  opacity: .92;
}

/* Responsive */
@media (max-width: 760px){
  .access-grid{ grid-template-columns: 1fr; }
  .route-grid{ grid-template-columns: 1fr; }
  .info-dl__row{ grid-template-columns: 1fr; gap: 4px; }
}

/* ===== Map Embed ===== */
.map-embed{
  margin-top: 14px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  background: rgba(0,0,0,.02);
}

.map-embed iframe{
  width: 100%;
  height: 320px;
  border: 0;
  display: block;
}

@media (max-width: 760px){
  .map-embed iframe{
    height: 280px;
  }
}

/* ===== Recruit Page (Stylish add-on) ===== */

.recruit-hero__title{
  margin: 0 0 8px;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .04em;
}
.recruit-hero__lead{
  margin: 0 0 18px;
  line-height: 1.9;
  opacity: .85;
}

.recruit-grid{
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.recruit-card{
  width: 100%;
  margin: 0;
  padding: 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  box-sizing: border-box;
}

.recruit-card__head{
  padding: 14px 14px 12px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
  margin-bottom: 14px;
}

.recruit-card__title{
  margin: 0 0 6px;
  font-size: 18px;
  letter-spacing: .03em;
}
.recruit-card__meta{
  margin: 0;
  line-height: 1.7;
  opacity: .82;
}

.recruit-sub{
  margin: 14px 0 10px;
  font-size: 16px;
  letter-spacing: .03em;
}

.recruit-list{
  margin: 0;
  padding-left: 1.2em;
}
.recruit-list li{
  margin: 0 0 8px;
  line-height: 1.85;
  opacity: .92;
}

.placeholder{
  opacity: .7;
}

.recruit-tags{
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.recruit-tags span{
  font-size: 12px;
  line-height: 1;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
  font-weight: 600;
}

/* Sections */
.recruit-section{
  margin-top: 22px;
}
.recruit-section__title{
  margin: 0 0 12px;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: .04em;
}

/* Flow */
.recruit-flow{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.recruit-flow li{
  padding: 12px 12px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.05);
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 10px;
  align-items: center;
}
.recruit-flow__num{
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.10);
  font-weight: 800;
}
.recruit-flow__text{
  line-height: 1.6;
  font-weight: 700;
  opacity: .9;
}

.recruit-note{
  margin: 12px 0 0;
  line-height: 1.8;
  opacity: .8;
}

/* Panel + CTA */
.recruit-panel{
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
}

.recruit-panel__text{
  margin: 0 0 10px;
  line-height: 1.9;
  opacity: .9;
}

.recruit-cta{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.08);
}

.recruit-cta__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  border-radius: 14px;
  text-decoration: none;
  background: rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.12);
  font-weight: 800;
}
.recruit-cta__btn:hover{ opacity: .85; }

.recruit-cta__sub{
  margin: 10px 0 0;
  line-height: 1.7;
  opacity: .8;
}

/* FAQ */
.recruit-faq{
  display: grid;
  gap: 10px;
}
.recruit-faq__item{
  padding: 12px 12px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.05);
}
.recruit-faq__item summary{
  cursor: pointer;
  font-weight: 800;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
}
.recruit-faq__item summary::-webkit-details-marker{ display:none; }
.recruit-faq__item summary::after{
  content: "＋";
  margin-left: auto;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
}
.recruit-faq__item[open] summary::after{ content: "－"; }
.recruit-faq__item p{
  margin: 10px 0 0;
  line-height: 1.85;
  opacity: .88;
}

/* Responsive */
@media (max-width: 900px){
  .recruit-flow{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px){
  .recruit-grid{ grid-template-columns: 1fr; }
  .recruit-flow{ grid-template-columns: 1fr; }
}

/* ===== Fees Page (Stylish add-on) ===== */

.fees-hero__title{
  margin: 0 0 8px;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .04em;
}
.fees-hero__lead{
  margin: 0 0 18px;
  line-height: 1.9;
  opacity: .85;
}

.fees-section{
  margin-top: 22px;
}
.fees-section__title{
  margin: 0 0 12px;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: .04em;
}

.fees-panel{
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
}

.fees-list{
  margin: 0;
  padding-left: 1.2em;
}
.fees-list li{
  margin: 0 0 8px;
  line-height: 1.85;
  opacity: .92;
}

.fees-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 12px;
}

.fee-card{
  padding: 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}

.fee-card__title{
  margin: 0 0 8px;
  font-size: 18px;
  letter-spacing: .03em;
}
.fee-card__desc{
  margin: 0 0 12px;
  line-height: 1.9;
  opacity: .88;
}

.fee-dl{
  margin: 0;
}
.fee-dl__row{
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(0,0,0,.08);
}
.fee-dl__row:first-child{ border-top: none; padding-top: 0; }
.fee-dl dt{
  font-weight: 800;
  opacity: .85;
}
.fee-dl dd{
  margin: 0;
  line-height: 1.8;
  opacity: .92;
}

.placeholder{ opacity: .7; }

.fees-note{
  margin: 12px 0 0;
  line-height: 1.8;
  opacity: .8;
}

/* FAQ */
.fees-faq{
  display: grid;
  gap: 10px;
}
.fees-faq__item{
  padding: 12px 12px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.05);
}
.fees-faq__item summary{
  cursor: pointer;
  font-weight: 800;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
}
.fees-faq__item summary::-webkit-details-marker{ display:none; }
.fees-faq__item summary::after{
  content: "＋";
  margin-left: auto;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
}
.fees-faq__item[open] summary::after{ content: "－"; }
.fees-faq__item p{
  margin: 10px 0 0;
  line-height: 1.85;
  opacity: .88;
}

/* CTA */
.fees-cta{
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
  display: grid;
  gap: 12px;
}

.fees-cta__text{
  margin: 0;
  line-height: 1.9;
  opacity: .9;
}
.fees-cta__btns{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.fees-cta__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  border-radius: 14px;
  text-decoration: none;
  background: rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.12);
  font-weight: 800;
}
.fees-cta__btn:hover{ opacity: .85; }

/* Responsive */
@media (max-width: 760px){
  .fees-grid{ grid-template-columns: 1fr; }
  .fee-dl__row{ grid-template-columns: 1fr; gap: 4px; }
  .fees-cta__btns{ flex-direction: column; }
}

/* ===== Old Bar Association Fee Table ===== */

.fees-table-wrap{
  margin-top: 14px;
  overflow-x: auto;
}

.fees-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}

.fees-table thead th{
  padding: 14px 12px;
  background: linear-gradient(135deg, rgba(0,0,0,.08), rgba(0,0,0,.04));
  font-weight: 800;
  text-align: center;
  border-bottom: 1px solid rgba(0,0,0,.10);
}

.fees-table tbody td{
  padding: 14px 12px;
  text-align: center;
  border-top: 1px solid rgba(0,0,0,.08);
  line-height: 1.8;
}

.fees-table tbody tr:first-child td{
  border-top: none;
}

.fees-table tbody tr:nth-child(even){
  background: rgba(0,0,0,.02);
}

/* スマホ対応 */
@media (max-width: 760px){
  .fees-table thead th,
  .fees-table tbody td{
    padding: 12px 8px;
    font-size: 14px;
  }
}

/* ===== Flow Page (Stylish add-on) ===== */

.flow-hero__title{
  margin: 0 0 8px;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .04em;
}
.flow-hero__lead{
  margin: 0 0 18px;
  line-height: 1.9;
  opacity: .85;
}

.flow-cta{
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
  display: grid;
  gap: 12px;
}

.flow-cta__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  border-radius: 14px;
  text-decoration: none;
  background: rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.12);
  font-weight: 800;
}
.flow-cta__btn:hover{ opacity: .85; }

.flow-cta__sub p{
  margin: 0;
  line-height: 1.8;
  opacity: .85;
}

.flow-section{ margin-top: 22px; }
.flow-section__title{
  margin: 0 0 12px;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: .04em;
}

/* Steps */
.flow-steps{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}

.flow-step{
  padding: 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  align-items: start;
}

.flow-step__num{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.12);
  font-weight: 900;
}

.flow-step__title{
  margin: 0 0 8px;
  font-size: 18px;
  letter-spacing: .03em;
}

.flow-step__text{
  margin: 0 0 10px;
  line-height: 1.9;
  opacity: .9;
}

.flow-bullets{
  margin: 0;
  padding-left: 1.2em;
}
.flow-bullets li{
  margin: 0 0 8px;
  line-height: 1.85;
  opacity: .9;
}

/* Panel */
.flow-panel{
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
}

.flow-list{
  margin: 0;
  padding-left: 1.2em;
}
.flow-list li{
  margin: 0 0 8px;
  line-height: 1.85;
  opacity: .92;
}

.flow-note{
  margin: 10px 0 0;
  line-height: 1.8;
  opacity: .8;
}

.placeholder{ opacity: .7; }

/* FAQ */
.flow-faq{
  display: grid;
  gap: 10px;
}
.flow-faq__item{
  padding: 12px 12px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.05);
}
.flow-faq__item summary{
  cursor: pointer;
  font-weight: 800;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
}
.flow-faq__item summary::-webkit-details-marker{ display:none; }
.flow-faq__item summary::after{
  content: "＋";
  margin-left: auto;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
}
.flow-faq__item[open] summary::after{ content: "－"; }
.flow-faq__item p{
  margin: 10px 0 0;
  line-height: 1.85;
  opacity: .88;
}

/* Responsive */
@media (max-width: 760px){
  .flow-step{
    grid-template-columns: 1fr;
  }
  .flow-step__num{
    width: 40px;
    height: 40px;
  }
}

/* ===== Contact Page (Stylish add-on) ===== */

.contact-hero__title{
  margin: 0 0 8px;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .04em;
}
.contact-hero__lead{
  margin: 0 0 18px;
  line-height: 1.9;
  opacity: .85;
}

.contact-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 10px;
}

.contact-card{
  padding: 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  box-sizing: border-box;
}

.contact-card__title{
  margin: 0 0 12px;
  font-size: 18px;
  letter-spacing: .03em;
}

/* DL */
.contact-dl{ margin: 0; }
.contact-dl__row{
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(0,0,0,.08);
}
.contact-dl__row:first-child{ border-top: none; padding-top: 0; }
.contact-dl dt{
  font-weight: 800;
  opacity: .85;
}
.contact-dl dd{
  margin: 0;
  line-height: 1.8;
  opacity: .92;
}

.contact-link{
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.25);
  font-weight: 800;
}
.contact-link:hover{ opacity: .85; }

.contact-sub{
  display: inline-block;
  margin-top: 4px;
  opacity: .75;
}

/* Bullets */
.contact-bullets{
  margin: 0;
  padding-left: 1.2em;
}
.contact-bullets li{
    margin: 0 0 8px;
    line-height: 1.85;
    opacity: .92;
}

/* Mini panel */
.contact-mini{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.08);
}
.contact-mini__title{
  margin: 0 0 8px;
  font-weight: 900;
  letter-spacing: .03em;
}

/* Notes */
.contact-note{
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
}
.contact-note p{
  margin: 0;
  line-height: 1.85;
  opacity: .86;
}

/* Form */
.contact-section{ margin-top: 22px; }
.contact-section__title{
  margin: 0 0 12px;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: .04em;
}

.contact-form{
  padding: 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}

/* 外部フォームが入っても崩れにくくする */
.contact-form input,
.contact-form select,
.contact-form textarea{
  max-width: 100%;
}

.contact-privacy{
  margin: 12px 0 0;
  line-height: 1.8;
  opacity: .8;
}

.placeholder{ opacity: .7; }

@media (max-width: 760px){
  .contact-grid{ grid-template-columns: 1fr; }
  .contact-dl__row{ grid-template-columns: 1fr; gap: 4px; }
}

/* 1/15 8:45 added
【推奨①】トップ（front-page）用のCSSを独立させる
今のファイルは「固定ページ用CSS」はあるのに、トップで使う .section-concept などの定義がありません（＝どこか別のCSSに依存している）。
✅ style.css の末尾にトップ用を足すと、今後崩れにくいです：
*/

/* ===== Front Page (Home) ===== */
.section-concept .section_headerWrapper{
  display: block;
  width: 100%;
  max-width: none;
}
.section-concept .section_body{
  width: 100%;
  max-width: 1100px;
  margin: 24px auto 0;
  padding: 0 16px;
  line-height: 1.9;
}
.section-concept .heading-primary::after{
  width: 100%;
  max-width: 1100px;
}

/* 1/15 8:47 added
【推奨③】重たい box-shadow の統一（デザインの統一感UP）
カードやパネルの影が微妙に違うので、変数風に揃えるとスタイリッシュになります。
*/

:root{
  --card-border: 1px solid rgba(0,0,0,.08);
  --card-shadow: 0 10px 22px rgba(0,0,0,.06);
  --radius-lg: 18px;
}

/* TOP: CONCEPTを縦並び（見出し→本文）にする */
.home .section.section-concept .section_inner{
  display: block;          /* flexを解除 */
}

.home .section.section-concept .section_inner .section_headerWrapper,
.home .section.section-concept .section_inner .section_body{
  width: 100%;
}

.home .section.section-concept .section_inner .section_body{
  padding-left: 0;
  padding-top: 16px;       /* 70pxは大きすぎるので控えめに */
}

/* =========================
   TOP: CONCEPTをNEWSと同じ表示（1カラム）にする
   ========================= */
.home .section.section-concept .section_inner{
  display: block;              /* flex（2カラム）を解除 */
}

.home .section.section-concept .section_inner .section_headerWrapper,
.home .section.section-concept .section_inner .section_body{
  width: 100%;                 /* 50%固定を上書き */
}

.home .section.section-concept .section_inner .section_body{
  padding-left: 0;             /* 2カラム用の余白を解除 */
  padding-top: 0;              /* 70pxのズレを解除 */
  margin-top: 24px;            /* NEWSと同じ“見出し下の余白感”を作る */
}

/* =========================
   TOP: CONCEPTとNEWSの下線の長さをそろえる
   ========================= */
.home .section.section-concept .section_headerWrapper{
  width: 100%;        /* 50%を解除 */
}

.home .section.section-concept .section_header{
  width: 100%;
}

/* =========================
   TOP: CONCEPT「詳細」と NEWS「一覧」を同じ位置（右上）に揃える
   ========================= */

/* 見出し行を「左：見出し / 右：ボタン」にする */
.home .section.section-concept .section_header,
.home .section.section-news .section_header{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

/* 右上ボタン枠（NEWSで使っている想定） */
.home .section.section-concept .section_headerBtn,
.home .section.section-news .section_headerBtn{
  position: static;     /* app.cssの absolute を潰す */
  top: auto;
  right: auto;
  margin: 0;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}

/* 「詳細」「一覧」リンクの見た目と高さを合わせる（.btn想定） */
.home .section.section-concept .section_headerBtn a,
.home .section.section-news .section_headerBtn a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 10px 18px;
  border-radius: 14px;
  text-decoration: none;
}

/* もしCONCEPTの「詳細」が section_btn 側にある場合の救済（右上へ寄せる） */
.home .section.section-concept .section_btn{
  margin-left: auto;
  display: flex;
  justify-content: flex-end;
}

/* =========================
   News & Column Page
   ========================= */

.news-page .news-hero{
  padding-top: 40px;
  padding-bottom: 20px;
}

.news-page .news-hero__header{
  max-width: 900px;
}

.news-page .news-hero__lead{
  margin: 10px 0 0;
  line-height: 1.9;
  opacity: .82;
}

/* toolbar */
.news-page .news-toolbar{
  padding-top: 10px;
  padding-bottom: 10px;
}

.news-page .news-toolbar__row{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* chips */
.news-page .news-chip{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 12px;
  border-radius: 999px;
  text-decoration: none;
  color: #000;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
  font-weight: 800;
  line-height: 1;
}
.news-page .news-chip:hover{ opacity: .85; }
.news-page .news-chip.is-active{
  background: rgba(0,0,0,.10);
}

/* list */
.news-page .news-list{
  padding-top: 20px;
}

/* grid */
.news-page .news-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

/* card */
.news-page .news-card{
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  overflow: hidden;
}

.news-page .news-card__link{
  display: block;
  padding: 18px;
  text-decoration: none;
  color: inherit;
}

.news-page .news-card__meta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  opacity: .82;
  margin-bottom: 10px;
  line-height: 1.6;
  font-size: 14px;
}

.news-page .news-pill{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
  font-weight: 800;
  font-size: 12px;
}

.news-page .news-card__title{
  margin: 0 0 10px;
  font-size: 18px;
  letter-spacing: .03em;
  line-height: 1.5;
}

.news-page .news-card__excerpt{
  margin: 0 0 14px;
  line-height: 1.85;
  opacity: .9;
}

.news-page .news-card__more{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 900;
  text-decoration: none;
}

/* pagination (paginate_links type=list) */
.news-page .news-pagination{
  margin-top: 18px;
}
.news-page .news-pagination ul{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.news-page .news-pagination a,
.news-page .news-pagination span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border-radius: 999px;
  text-decoration: none;
  color: #000;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.10);
  font-weight: 800;
}
.news-page .news-pagination .current{
  background: rgba(0,0,0,.10);
  font-weight: 900;
}

/* empty */
.news-page .news-empty{
  opacity: .8;
}

/* responsive */
@media (max-width: 760px){
  .news-page .news-grid{
    grid-template-columns: 1fr;
  }
}

/* =========================
   共通：セクション見出し下線（ABOUT / NEWS / INFO / ACCESS）
   ========================= */

.section_header .heading-primary{
  position: relative;
  padding-bottom: 14px;
}

/* 下線 */
.section_header .heading-primary::after{
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  max-width: 1100px;   /* ABOUT / NEWS と同じ長さ */
  height: 2px;
  background: rgba(0,0,0,.25);
}

/* 左側の短い強調ライン（ABOUT / NEWS と同じ） */
.section_header .heading-primary::before{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 64px;
  height: 2px;
  background: rgba(0,0,0,.9);
}

.home .section_header{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

/* =========================
   Section Header Component
   ========================= */

.section_header{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

/* 見出し本体 */
.section_heading{
  margin: 0;
  position: relative;
  display: block;
  width: 100%;
  padding-bottom: 14px; /* 下線分 */
}

/* 和文（小さめ） */
.section_heading__jp{
  display: block;
  font-weight: 700;
  letter-spacing: .06em;
  font-size: 14px;
  opacity: .75;
  margin-bottom: 8px;
}

/* 英文（大きめ） */
.section_heading__en{
  display: block;
  font-weight: 900;
  letter-spacing: .06em;
  font-size: clamp(26px, 3.2vw, 46px);
  line-height: 1.05;
}

/* 下線（長い線） */
.section_heading::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width: 100%;
  max-width: 1100px;   /* ここで線の最大長を統一 */
  height: 2px;
  background: rgba(0,0,0,.22);
}

/* 下線（左の濃い短い線） */
.section_heading::before{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width: 64px;
  height: 2px;
  background: rgba(0,0,0,.90);
}

/* 右上ボタン（詳細/一覧） */
.section_headerBtn{
  flex: 0 0 auto;
  margin: 0;
}

/* リンクを“ボタン風”に統一 */
.section_btnLink{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .06em;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.03);
  color: inherit;
  line-height: 1;
}

/* 矢印（CSSで生成：フォント依存しない） */
.section_btnLink::after{
  content:"";
  width: 8px;
  height: 8px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 2px;
}

/* hover */
.section_btnLink:hover{
  opacity: .85;
}

/* スマホ：見出しとボタンを縦に */
@media (max-width: 767px){
  .section_header{
    align-items: flex-start;
    flex-direction: column;
  }
  .section_headerBtn{
    margin-top: 8px;
  }
}

/* Font Awesome 5 Free 指定を FA6 に合わせる（上書き） */
.infoList .infoList_item:before{
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900; /* solid */
}

@media (max-width: 767px){
  .infoList .infoList_item:before{
    content: none !important;
  }
}

/* =========================
   TOP ACCESS（B案）
   ========================= */

.home .section-access_body{
  margin-top: 24px;
}

.section-access_address{
  margin: 0 0 16px;
  line-height: 1.9;
  font-size: 15px;
}

/* スマホでもボタンが自然に */
@media (max-width: 767px){
  .section-access_address{
    font-size: 14px;
  }
}

/* =========================
   TOP: ACCESSを縦並びにする（B案）
   app.css の flex(15%/85%) を解除
   ========================= */

.home .section.section-access .section_inner .section_content{
  display: block;          /* ← flex を解除 */
  width: 100%;
}

.home .section.section-access .section_inner .section_content .section_header{
  width: 100%;             /* ← 15% を解除 */
}

.home .section.section-access .section_inner .section_content .section_body{
  width: 100%;             /* ← 85% を解除 */
  padding: 0;              /* ← 0 20px を解除 */
  margin-top: 24px;        /* ← 見出し下の余白 */
}

/* =========================================
   Global Page Wrapper (Pages / Single)
   フロントページの“余白感・カード感”に統一
   ========================================= */

/* ① コンテンツの横幅・余白（WPの出力差を吸収） */
.page main,
.single main{
  padding: clamp(26px, 4vw, 54px) 0;
}

.page main > .container,
.single main > .container{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

/* テーマ側で container が無い場合でも効く救済 */
.page main > *,
.single main > *{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
}

/* ② ページタイトル（h1）をトップの見出し系に寄せる */
.page .entry-header,
.single .entry-header{
  margin: 0 0 22px;
}

.page .entry-title,
.single .entry-title{
  margin: 0;
  font-weight: 900;
  letter-spacing: .06em;
  font-size: clamp(26px, 3.2vw, 42px);
  line-height: 1.15;
  position: relative;
  padding-bottom: 14px;
}

/* タイトル下線（トップの section_heading と同系統） */
.page .entry-title::after,
.single .entry-title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background: rgba(0,0,0,.22);
}
.page .entry-title::before,
.single .entry-title::before{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:64px;
  height:2px;
  background: rgba(0,0,0,.90);
}

/* ③ 本文エリアを“カード”にして、トップのパネル/カード感を統一 */
.page .entry-content,
.single .entry-content{
  margin-top: 18px;
  background: rgba(255,255,255,.92);
  border: var(--card-border, 1px solid rgba(0,0,0,.08));
  box-shadow: var(--card-shadow, 0 10px 22px rgba(0,0,0,.06));
  border-radius: var(--radius-lg, 18px);
  padding: clamp(18px, 2.6vw, 28px);
}

/* 背景にごく薄いグラデ（frontの雰囲気） */
.page main,
.single main{
  background:
    radial-gradient(1200px 420px at 10% 0%, rgba(0,0,0,.05), transparent 60%),
    radial-gradient(900px 360px at 90% 10%, rgba(0,0,0,.03), transparent 55%),
    #fff;
}

/* =========================================
   Gutenberg (WP blocks) – 見た目の統一
   ========================================= */

/* 見出し */
.entry-content h2{
  font-size: 20px;
  font-weight: 900;
  letter-spacing: .03em;
  margin: 28px 0 14px;
  padding-left: 14px;
  border-left: 3px solid rgba(0,0,0,.90);
}

.entry-content h3{
  font-size: 18px;
  font-weight: 900;
  letter-spacing: .02em;
  margin: 22px 0 10px;
}

.entry-content p{
  margin: 0 0 14px;
  line-height: 1.9;
}

.entry-content ul,
.entry-content ol{
  margin: 0 0 14px;
  padding-left: 1.2em;
}

.entry-content li{
  margin: 0 0 8px;
  line-height: 1.85;
  opacity: .92;
}

/* 引用を“パネル”化（office-intro__quote と同系統） */
.entry-content blockquote{
  margin: 18px 0;
  padding: 16px 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  border: 1px solid rgba(0,0,0,.08);
  position: relative;
}

.entry-content blockquote::before{
  content:"“";
  position:absolute;
  top:-10px;
  left:12px;
  font-size:44px;
  line-height:1;
  opacity:.22;
}

/* テーブル（fees-table の軽量版） */
.entry-content table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.10);
}

.entry-content th,
.entry-content td{
  padding: 12px 10px;
  border-top: 1px solid rgba(0,0,0,.08);
  line-height: 1.8;
}

.entry-content thead th{
  background: rgba(0,0,0,.04);
  font-weight: 900;
  border-top: none;
}

/* 画像・埋め込み */
.entry-content img,
.entry-content iframe{
  border-radius: 14px;
}

/* =========================================
   Buttons – トップの section_btnLink と統一
   ========================================= */

/* “ボタンっぽいリンク”を共通化（ブロックボタン/通常リンクの救済） */
.entry-content .wp-block-button__link,
.entry-content a.button,
.entry-content a.btn,
.entry-content a[href*="contact"],
.entry-content a[href*="お問い合わせ"]{
  border-radius: 999px;
}

/* WP標準のボタンが黒くなりすぎるのをトップ寄せに */
.entry-content .wp-block-button__link{
  background: rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.12);
  color: #000;
  font-weight: 900;
  text-decoration: none;
  padding: 12px 16px;
}
.entry-content .wp-block-button__link:hover{
  opacity: .85;
}

/* =========================================
   Responsive
   ========================================= */
@media (max-width: 767px){
  .page main,
  .single main{
    padding: 22px 0 38px;
  }
  .page .entry-content,
  .single .entry-content{
    padding: 16px;
  }
  .page .entry-title,
  .single .entry-title{
    font-size: 24px;
  }
}


/* -----------------平日 10:00-18:00 ------------------*/

.header_time {
  display: flex;
  align-items: center;
}

.header_time dl {
  display: flex;
  align-items: center;
  gap: 0;
}

.header_time dt {
  margin-right: 3px;
}

.header_time dt,
.header_time dd {
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 1.4;   /* ★ここ重要：1 は使わない */
}

.header_time dt {
  font-weight: 600;
}

.header_time dd {
  white-space: nowrap;
}

/* ================================
   Header Contact
================================ */

.header_contact {
  display: flex;
  align-items: center;
}

.header_contact_link {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 18px;
  border: 1px solid #1f2b45; /* ネイビー系 */
  border-radius: 4px;
  color: #1f2b45;
  text-decoration: none;
  transition: background-color .3s, color .3s;
}

.header_contact_link:hover {
  background-color: #1f2b45;
  color: #fff;
}

/* 営業時間 */
.header_contact_time {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.header_contact_time .label {
  font-size: 12px;
  letter-spacing: 0.05em;
}

.header_contact_time .time {
  font-size: 14px;
  font-weight: 600;
}

/* お問い合わせ */
.header_contact_text {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
}

.header_contact_text i {
  font-size: 16px;
}

/* 「平日」ラベルの背景を完全に透明に */
.header_contact_time .label {
  background-color: transparent;
  color: #1f2b45; /* 文字色はそのまま */
}

.header_contact_time .label {
  padding: 0;
  font-size: 12px;
  line-height: 1.2;
}

/* 通常時：平日はネイビー文字 */
.header_contact_time .label {
  background: transparent;
  color: #1f2b45;
}

/* hover時：ボタンがネイビー反転したら平日も白文字に */
.header_contact_link:hover .header_contact_time .label {
  color: #fff;
}

/* Google Map */
.btn-map {
  color: #1a2a44;
  border: 2px solid #1a2a44;
  background: #fff;
}

.btn-map:hover {
  background: #1a2a44;
  color: #fff;
}

/* メール応募 */
.btn-mail {
  background: #1a2a44;
  color: #fff;
  border: 2px solid #1a2a44;
}

.btn-mail:hover {
  background: #fff;
  color: #1a2a44;
}

.btn-action:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.15);
}

/* 固定ページ本文内の「ボタン用リンク」は通常リンク装飾を無効化 */
.entry-content a.btn-action,
.page .btn-action {
  text-decoration: none !important;
  border-bottom: none !important;
  background-image: none !important;
}

/* ボタンの見た目を安定させる */
.btn-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6em;

  padding: 12px 22px;
  line-height: 1;              /* 下線ズレ/上下ズレ対策 */
  box-sizing: border-box;
  white-space: nowrap;

  border-radius: 999px;
}

/* アイコンが下線の影響を受けるケースの対策 */
.btn-action i {
  text-decoration: none !important;
}

/* フロントページ NEWS カテゴリーラベル */
.card {
  position: relative;
}

.card_label {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
}

.card_label .label {
  display: inline-block;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;

  color: #fff;                 
  background: rgba(34, 65, 99, .85); /* ネイビー寄り */
  border-radius: 4px;
  line-height: 1;
}

/* 投稿ページ本文：フォント強制（上書き対策） */
body.single-post .post_content,
body.single-post .post_content .content,
body.single-post .post_content .content * {
  font-family:
    "Yu Mincho",
    "游明朝",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif !important;
}

.post_nav{
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-top:32px;
  padding-top:20px;
  border-top:1px solid rgba(0,0,0,.12);
}

/* 投稿ページナビゲーション */

.post_nav_prev,
.post_nav_next{
  flex:1;
}

.post_nav_next{
  text-align:right;
}

.post_nav a{
  display:inline-block;
  text-decoration:none;
  padding:10px 14px;
  border:1px solid rgba(0,0,0,.18);
  border-radius:10px;
}