@charset "UTF-8";
/*!
Theme Name: haruka
*/
html{
    scroll-behavior:smooth;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body { 
    font-family: 'Noto Serif JP', serif; 
    line-height: 1.6; 
	padding-top: 80px;
}
a { text-decoration: none; color: #fff; }
ul { list-style: none; }
img {
    display: block;
}
.header {
    display: flex;
    align-items: center;
    background-color: #314a84;
    height: 80px;
    padding: 0 40px;
margin:0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;

    z-index: 1000;
}
/* ロゴ調整 */
.logo { margin-right: auto; z-index: 1001; margin-top: 40px; }
.logo img { height: 140px; display: block; background: #fff; padding: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }

/* PC用ナビゲーション */
.nav { display: flex; align-items: center; margin-left: 40px; }
.nav-list { display: flex; align-items: center; gap: 30px; color: #fff; font-weight: bold; }
.nav-item { position: relative; padding: 30px 0; cursor: pointer; }

/* アコーディオン */
.accordion { display: none; position: absolute; top: 80px; left: 0; background: #fff; color: #333; width: 160px; box-shadow: 0 4px 6px rgba(0,0,0,0.2); z-index: 1000; }
.nav-item:hover .accordion { display: block; }
.accordion li a { display: block; padding: 10px 15px; border-bottom: 1px solid #eee; color: #333;}

/* ハンバーガーボタン（重要：PCでは非表示、スマホで表示） */
.hamburger { display: none; cursor: pointer; width: 30px; height: 24px; position: relative; margin-left: 20px; }
.hamburger span { display: block; width: 100%; height: 3px; background-color: #fff; position: absolute; }
.hamburger span:nth-child(1) { top: 0; }
.hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.hamburger span:nth-child(3) { bottom: 0; }

/* Header Buttons */
.header-btns { display: flex; gap: 0; margin:0 20px; padding:0;}
	.header-btns img { height: 80px; }

/* お問い合わせと無料査定部分 */
.header_btn_text{
    display:none;
}
@media (max-width: 1024px) {
.header-btns{
    width:100%;
    display:flex;
    flex-direction:column;
    gap:12px;
    margin:0;
    padding:0;
    box-sizing:border-box;
}

/* 画像は非表示 */
.header_btn_img{
    display:none;
}

/* テキストボタンを表示 */
.header_btn_text{
    display:flex;
    align-items:center;
    justify-content:center;
    height:50px;
    text-decoration:none;
    font-size:16px;
    font-weight:700;
    color:#fff;
    border-radius:4px;
}

/* お問い合わせ */
.header_btn_text.contact{
    background:#314a84;
}

/* 無料査定 */
.header_btn_text.assessment{
    background:#c79a55;
}

.header_btn_text:hover{
    opacity:.8;
}

}
/* --- Responsive (Mobile) --- */
@media (max-width: 1024px) {
    /* ハンバーガーを表示 */
    .hamburger { display: block; }
    /* PCのナビを隠す */
    .nav {
        display: none;
        position: absolute;
        top: 80px;
        left: 0;
        width: 100%;
        background: #2c3e50;
        flex-direction: column;
        align-items: center;
        padding: 20px 0;
    }
    .nav.active { display: flex; }
    .nav-list { flex-direction: column; width: 100%; gap: 0; }
    .nav-item { width: 100%; padding: 15px 20px; text-align: center; }
    .accordion { position: static; width: 100%; background: #34495e; color: #fff; }
    .header-btns { flex-direction: column; margin-left: 0; margin-top: 10px; }
    .header-btns img { height: 60px; }
}


/*-------------------------------
ボタンエリア
--------------------------------*/
.cta-wrap {
  display: flex;
  justify-content: center;
  padding: 40px 0;
}
/*背景　金色*/
.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 28px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 18px;
  letter-spacing: 0.35em;
  color: #fff;
  text-decoration: none;
  padding: 20px 40px;
background-color:#9b7941;
  border: none;
  position: relative;
  transition: gap 0.3s ease;
}

/* 矢印の線 */
.cta-btn::after {
  content: "";
  display: inline-block;
  width: 90px;
  height: 1px;
  background-color: #fff;
  flex-shrink: 0;
}

.cta-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 40px;
  width: 8px;
  height: 1px;
  background-color: #fff;
  transform-origin: right center;
  transform: translateY(1px) rotate(45deg);
}


/*背景紺*/
.cta-btn02 {
  display: inline-flex;
  align-items: center;
  gap: 28px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 18px;
  letter-spacing: 0.35em;
  color: #fff;
  text-decoration: none;
  padding: 20px 40px;
  background-color: #3d4b7a;
  border: none;
  position: relative;
  transition: gap 0.3s ease;
}

/* 矢印の線 */
.cta-btn02::after {
  content: "";
  display: inline-block;
  width: 90px;
  height: 1px;
  background-color: #fff;
  flex-shrink: 0;
}

.cta-btn02::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 40px;
  width: 8px;
  height: 1px;
  background-color: #fff;
  transform-origin: right center;
  transform: translateY(1px) rotate(45deg);
}

.cta-btn:hover,
.cta-btn02:hover{
  opacity: 0.6;
  gap: 36px;
}

/* FV全体の設定 */
.fv{
    position:relative;
    width:100%;
    height:100vh;
    overflow:hidden;

}

/* 動画下部のグラデーション */
.fv::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:30%;            
    background:linear-gradient(to bottom, rgba(0,0,0,0) 0%, #e5ddda 100%);
    z-index:2;               
    pointer-events:none;    
}

.fv-video{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;       /* 縦横比を保ちつつ枠いっぱいに表示 */
    object-position:center; /* 見せたい位置に応じて center/top/bottom等に変更可 */
}



/* コンテンツの左寄せ設定 */
.fv-content {
    margin-left: 10%; /* 左端から10%の余白 */
    color: #fff;
    max-width: 600px;
}

.fv-content h1 {
    font-size: 3.5rem;
    line-height: 1.3;
    margin-bottom: 20px;
}

.fv-content p {
    font-size: 1.2rem;
    margin-bottom: 30px;
}

/* ボタンのスタイル */
.btn-assessment {
    display: inline-block;
    padding: 20px 40px;
    background-color: #fff;
    color: #314a84;
    font-weight: bold;
    border-radius: 5px;
    transition: 0.3s;
}

.btn-assessment:hover {
    background-color: #f0f0f0;
}

/* -------------------
スクロールアニメーション
------------------- */


.fade-left{
    opacity:0;
    transform:translateX(-60px);
    transition:.8s;
}

.fade-right{
    opacity:0;
    transform:translateX(60px);
    transition:.8s;
}

.fade-up{
    opacity:0;
    transform:translateY(60px);
    transition:.8s;
}

.fade-left.is-active,
.fade-right.is-active,
.fade-up.is-active{
    opacity:1;
    transform:none;
}

/* -------------------
コンテンツ
 -------------------*/

.container{
	width: 100%;
	max-width:1000px;
	margin: 0 auto;
	padding: 0;
	text-align: center;
	}

/* -------------------
HARUKAだからできること
 -------------------*/

.top_selection01{
 position:relative;
overflow:hidden; 
    padding: 80px 0 0 0;
    text-align: center;
  
}

.top_selection01 .container{
    position:relative;
    z-index:1;
}

.top_selection01 h2 { font-size: 2.5rem; color: #314a84; margin-bottom: 10px; }
.top_selection01 h2 span { display: block; font-size: 1.5rem; font-weight: normal; color:#75675e; }
.top_selection01 .catch { margin-bottom: 40px; font-weight: bold; }

.text-content { 
  
  margin: 40px auto; 
  text-align: left; 
  background-color: rgba(249, 245, 242, 0.8); 
  padding: 30px; /* ボックス内の余白 */
  border-radius: 8px; /* 角丸（お好みで調整） */
}
.text-content p { 
  margin-bottom: 20px;
  color: #47423e; 
}
.text-content p:last-child {
  margin-bottom: 0; /* 最後の段落の下マージンをリセット */
}

/* 
.text-content { max-width: 800px; margin: 40px auto; text-align: left; }
.text-content p { margin-bottom: 20px; }
*/
/* 流れるテキスト（Marquee） */
.marquee-wrapper{
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  margin: 50px 0 0 0;
padding: 0;
}

.marquee{
  display: inline-block;
  animation: scrollText 20s linear infinite;
}

.marquee span{
  font-family: "Noto Sans JP", sans-serif;
  font-size: 100px;
  font-weight: 700;
  color:#f0f1f4!important;
  padding: 0 50px;
}


.marquee02{
  display: inline-block;
  animation: scrollText 20s linear infinite;
}

.marquee02 span{
  font-family: "Noto Sans JP", sans-serif;
  font-size: 100px;
  font-weight: 700;
  color:#f0f1f4;             
  padding: 0 50px;
}

@keyframes scrollText{
  from{
    transform: translateX(0);
  }
  to{
    transform: translateX(-50%);
  }
}

/* SP */
@media (max-width: 768px){
  .marquee span{
    font-size: 50px;
    -webkit-text-stroke: 2px #fff;
  }
}

/* -------------------
弁護士事務所の方へ
 -------------------*/
 .top_selection02{ position:relative; }  

.bg-fixed{
    position:sticky;
    top:0;
    height:100vh;
    height:100dvh;
    margin-bottom:calc(-100vh);
    margin-bottom:calc(-100dvh);
    z-index:-1;
    pointer-events:none;
    background-image:url("img/top/legalreal_back.png");
    background-size:cover;
    background-position:center top;
    background-repeat:no-repeat;
  }
  .bg-fixed::after{
    content:"";
    position:absolute;
    inset:0;
    background:
      linear-gradient(180deg, rgba(9,16,32,.5) 0%, rgba(12,21,42,.86) 32%, rgba(14,24,47,.95) 60%, var(--navy-900) 100%);
  }

  /* ---------- INTRO COPY ---------- */
  .intro{
    position:relative;
    min-height:420px;
    padding:96px 24px 84px;
    text-align:center;
  }
  .intro h2{
    font-size:clamp(28px,4.6vw,44px);
    letter-spacing:.14em;
	color: #fff;
    margin:0 0 14px;
    font-weight:700;
  }
.intro h2 .en{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px; /* 文字と線の間隔 */
  font-size:15px;
  margin-top:14px;
  font-weight:400;
}

.intro h2 .en::before,
.intro h2 .en::after{
  content:"";
  width:20px;      /* 線の長さ */
  height:1px;      /* 線の太さ */
  background:#fff; /* 線の色 */
}
  .intro p{
    max-width:520px;
    margin:28px auto 0;
    font-size:14px;
    line-height:2;
    color:#e7e6e1;
  }

  /* ---------- QUESTION BAR ---------- */
  .question-wrap{ padding:0 20px; margin-top:-34px; position:relative; z-index:2; }
  .question{
    max-width:760px;
    margin:0 auto;
    background:var(--paper);
    border-radius:10px;
    padding:30px 20px;
    text-align:center;
  }
.question h3{
  position: relative;
  margin: 0 auto 30px;
  padding: 18px 30px;
  display: inline-block;
  background: #fff;
  border-radius: 10px;
  font-size: clamp(17px,2.6vw,24px);
  font-weight: 700;
  letter-spacing: .06em;
  text-align: center;
}

/* 下向きの三角 */
.question h3::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -14px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 14px solid transparent;
  border-right: 14px solid transparent;
  border-top: 14px solid #fff;
}

  /* ---------- SERVICE COLUMNS ---------- */
  .services{
    max-width:1080px;
    margin:0 auto 0;
    padding:0 20px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap: 20px;
  }
  .service-col{
    background: rgba(0, 0, 0, 0.3);
    color:#fff;
    padding:30px 24px 34px;
  }
  .service-col h4{
    margin:0 0 16px;
    font-size:19px;
    letter-spacing:.03em;
    padding-bottom:14px;
    border-bottom:1px solid #fff;
    display:block;
    color:#fff;
  }
  .service-col ul{
    list-style:none;
    margin:0;
    padding:0;
    font-family:"Noto Sans JP","Hiragino Sans",sans-serif;
    font-size:14px;
    line-height:1.9;
    color:#fff;
  }
  .service-col li{ display:flex; gap:10px; align-items:flex-start; margin-bottom:8px; }
  .service-col li i{ color:#fff; width:16px; margin-top:4px; }

  /* ---------- OUTSOURCE CHOICE ---------- */
  .section-title{ text-align:center; padding:50px 20px 10px; }
.section-title h3{
  position: relative;
  display: inline-block;
  font-size: clamp(22px,3.6vw,32px);
  line-height: 1.6;
  margin: 0;
  color: #fff;
  font-weight: 700;
  padding-bottom: 20px; /* 下線との余白 */
}

.section-title h3::before{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 60px;
  height: 5px;
  background: #fff;
  border-radius: 999px;
}


  .flow{
    max-width:1000px;
    margin:56px auto 0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .flow-row{
    display:grid;
    grid-template-columns:130px 1fr 56px 1fr;
    align-items:stretch;
    gap:0;
  }
  .flow-tag{
    background: rgba(154, 120, 69, 0.6);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
    letter-spacing:.1em;
    font-weight:700;
  }
  .flow-problem{
    background: rgba(255, 255, 255, 0.6);
    color:#1c1c1c;
    display:flex;
    align-items:center;
    padding:14px;
    font-size:18px;
    line-height:1.6;
  }
  .flow-arrow{ display:flex; align-items:center; justify-content:center; padding:6px; }
  .flow-arrow img{ width:100%; }
  .flow-solution{
    color:#fff;
    display:flex;
    align-items:center;
    padding:14px 22px;
    font-size:18px;
    line-height:1.8;
  }
  @media (max-width:640px){
    .flow-row{ grid-template-columns:1fr; }
    .flow-tag{ padding:8px; }
    .flow-arrow{ transform:rotate(90deg); padding:8px 0; width:36px; margin:0 auto; }
  }

  /* ---------- VALUE BLOCK ---------- */
.value-block{
  margin-top: 96px;
  padding: 70px 20px 60px;
  text-align: center;
}

.value-balloon{
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 70px;
  background: #333;
  color: #fff;
  padding: 30px 40px;
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
  box-sizing: border-box;
}

/* 三角 */
.value-balloon::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -18px;
  transform: translateX(-50%);
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-top: 18px solid #333;
}

.value-eyebrow{
  display: inline-block;
  margin-bottom: 18px;
  padding: 8px 24px;
  background: #fff;
  color: #333;
  font-size: 16px;
  letter-spacing: .2em;
}

.value-balloon h3{
  margin: 0;
  color: #fff;
  font-size: clamp(20px,3vw,30px);
  line-height: 1.8;
}
  /* 3カラム */
.value-cols{
  width: 100%;
  max-width: 1000px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 10px;
margin: 60px auto 0;
}

.value-col{
  position: relative;
  background:rgba(255,255,255,.1);
padding: 70px 10px 60px;
  text-align: center;
  overflow: hidden;
}

/* 内側の細い枠 */
.value-col::before{
  content: "";
  position: absolute;
  top: 8px;
  left: 8px;
  right: 8px;
  bottom: 8px;
  border-top: 1px solid rgba(255,255,255,.85);
  pointer-events: none;
}

/* アイコン */
.value-col img{
  width: 140px;
  height: 140px;
  object-fit: contain;
  margin: 0 auto 35px;
  display: block;
}

/* タイトル */
.value-col h5{
  margin: 0 0 30px;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(30px,3vw,40px);
  font-weight: 500;
  line-height: 1.2;
}

/* 説明 */
.value-col p{
  margin: 0;
  color: #fff;
  font-size: 18px;
  line-height: 1.8;
  font-family: "Noto Serif JP", serif;
}

/* タブレット */
@media (max-width:1024px){

  .value-cols{
    gap:20px;
  }

  .value-col{
    padding:50px 25px;
  }

  .value-col img{
    width:110px;
    height:110px;
  }

  .value-col h5{
    font-size:36px;
  }

  .value-col p{
    font-size:17px;
  }

}

/* スマホ */
@media (max-width:768px){

  .value-cols{
    grid-template-columns:1fr;
    gap:25px;
  }

  .value-col{
    padding:45px 25px;
  }

  .value-col img{
    width:90px;
    height:90px;
    margin-bottom:25px;
  }

  .value-col h5{
    font-size:32px;
    margin-bottom:18px;
  }

  .value-col p{
    font-size:16px;
    line-height:1.8;
  }

}

  /* ---------- CASES ---------- */
  .cases-title{ text-align:center; padding:20px 20px 8px; }

  .cases-title h2{
    font-size:clamp(28px,4.6vw,44px);
    letter-spacing:.14em;
	color: #fff;
    margin:0 0 14px;
    font-weight:700;
  }
  .cases-title h2 .en{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px; /* 文字と線の間隔 */
  font-size:15px;
  margin-top:14px;
  font-weight:400;
}

  .cases-title h2 .en::before,
  .cases-title h2 .en::after{
  content:"";
  width:20px;      /* 線の長さ */
  height:1px;      /* 線の太さ */
  background:#fff; /* 線の色 */
}



  .cases-grid{
    max-width:980px;
    margin:56px auto 0;
    padding:0 20px 90px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
  }
  .case-card{
    position:relative;
    aspect-ratio:1/1;
    overflow:hidden;
  }
  .case-card img.illustration{
    width:100%; height:100%; object-fit:cover; display:block;
  }
 
  .closing-copy{
    max-width:900px;
    margin:0 auto;
    padding:0 20px;
    text-align:center;
    font-family:"Noto Sans JP",sans-serif;
  }
  .closing-copy p{
    font-size:16px;
	text-align:left; 
    line-height:2;
    color:#d7d6d1;
    margin:0 0 6px;
  }


  @media (max-width:640px){
    .services{ grid-template-columns:1fr; }
    .cases-grid{ grid-template-columns:repeat(2,1fr); }
  }




/*-------------------------------
ボタンエリア
--------------------------------*/
.cta-wrap {
  display: flex;
  justify-content: center;
  padding: 40px 0;
}

.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 28px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 18px;
  letter-spacing: 0.35em;
  color: #fff;
  text-decoration: none;
  padding: 20px 40px;
background-color:#9b7941;
  border: none;
  position: relative;
  transition: gap 0.3s ease;
}

/* 矢印の線 */
.cta-btn::after {
  content: "";
  display: inline-block;
  width: 90px;
  height: 1px;
  background-color: #fff;
  flex-shrink: 0;
}

/* 矢印の先(斜め線1本だけ、右上向き) */
.cta-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 40px;
  width: 8px;
  height: 1px;
  background-color: #fff;
  transform-origin: right center;
  transform: translateY(1px) rotate(45deg);
}

.cta-btn:hover {
  opacity: 0.6;
  gap: 36px;
}

/*-------------------------------
topの一般売却をご検討の方へ
--------------------------------*/

.top_selection03{
    background-image: url('img/top/general_back.png');
    background-size: cover;
    padding:100px 0 0 0;
    text-align: center;
	background-position: center center;
    overflow: hidden;
	
  }


 .top_generalreal{ 
	 width: 100%;
	 max-width: 1000px;
	 margin: 0 auto;
	 padding:20px 0 100px 0; 
	 text-align:center; 
}

.top_generalreal h2{
    font-size:clamp(28px,4.6vw,44px);
    letter-spacing:.14em;
	color:#344a84;
    margin:0 0 14px;
    font-weight:700;
  }
.top_generalreal h2 .en{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px; /* 文字と線の間隔 */
  font-size:15px;
  margin-top:14px;
  font-weight:400;
}

.top_generalreal h2 .en::before,
.top_generalreal h2 .en::after{
  content:"";
  width:20px;      /* 線の長さ */
  height:1px;      /* 線の太さ */
  background:#344a84; /* 線の色 */
}



.top_generalreal h3{
    position:relative;
    width:100%;
    margin:70px auto 50px;
    padding:20px;
    background:#314a84;
    color:#fff;
    font-size:clamp(28px,2.5vw,48px);
    font-weight:500;
}

.top_generalreal h3::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-24px;
    transform:translateX(-50%);
    border-left:24px solid transparent;
    border-right:24px solid transparent;
    border-top:24px solid #314a84;
}

.generalreal_box_area{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px 22px;
    max-width:1050px;
    margin:0 auto 70px;
}

.generalreal_item{
    position:relative;
    background:rgba(255,255,255,.9);
    color:#314a84;
    padding:26px 30px 26px 90px;
    font-size:clamp(24px,2vw,42px);
    font-family:"Noto Serif JP",serif;
    text-align:left;
}
.generalreal_item::before{
    content:"";
    position:absolute;
    left:30px;
    top:50%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    background:url(img/top/check.png) center center / contain no-repeat;
}

/* ==========================================================
   top_selection04 : HARUKAが選ばれる7つの理由
   ========================================================== */

.top_selection04 {
  background-color: #fff;
  padding: 50px 0 0 0;
}

.top_reasonbese {
  margin: 0 auto;
background-color: #e9edf2;
border-radius: 100px 0 0 0;
}

.top_reasonarea,
.top_news,
.top_column{
  position: relative;
  max-width: 1000px;
 margin: 0 auto;
padding: 100px 0;
text-align: center;
}

/* ------------------ 見出し ------------------ */

.top_reasonarea h2, 
.top_news h2,
.top_column h2{
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 40px;
  font-weight: 700;
  color: #1f2d5c;
  letter-spacing: 0.08em;
  margin: 0 0 60px;
  display: flex;
  flex-direction: column;
 text-align: left;
}

.top_reasonarea h2 span,
.top_news h2 span,
.top_column h2 span{
  display: inline-flex;
  align-items: center;
  font-family: "Georgia", serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.2em;
  color: #1f2d5c;
  margin-bottom: 14px;
}

/* 右に伸びる線 */
.top_reasonarea h2 span::after,
.top_news h2 span::after,
.top_column h2 span::after{
  content: "";
  display: inline-block;
  width: 60px;
  height: 1px;
  background-color: #1f2d5c;
  margin-left: 16px;
}

/*------------------ メインビジュアル(reason01) ------------------ */
 
.top_reasonarea_a {
  position: relative;
  max-width: 1000px;
  margin: 0 0 80px;
}
 
.top_reasonarea_a img {
  display: block;
  width: 100%;
  height: auto;
}
 
/* ------------------ 6項目グリッド ------------------ */
 
.top_reasonarea_b {
  max-width: 1000px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px 40px;
}
 
.top_reasonarea_item {
  position: relative;
}
 
.top_reasonarea_item img {
  display: block;
  width: 100%;
  height: auto;
}
 
/* ------------------ レスポンシブ ------------------ */
 
@media (max-width: 1024px) {
  .top_reasonarea_b {
    grid-template-columns: repeat(2, 1fr);
  }
}
 
@media (max-width: 600px) {
  .top_selection04 {
    padding: 60px 0;
  }
 
  .top_reasonbese {
    padding: 0 20px;
  }
 
  .top_reasonarea h2 {
    font-size: 28px;
  }
 
  .top_reasonarea_b {
   grid-template-columns: repeat(2, 1fr);
    gap: 50px 0;
  }
}


/* ==========================================================
   top_selection05 : メッセージ
   ========================================================== */

.top_selection05 {
    position: relative;
    padding: 100px 0 0;
    background-color: #fff;
    overflow: hidden;
}

/* メッセージエリア */
.top_message_area {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 60px;
    max-width: 1000px;
    margin: 0 auto 50px;
}

.top_message_photo {
    position: relative;
    z-index: 2;
}


.top_message_photo img {
    position: relative;
    width: 520px;
    height: auto;
    display: block;
    z-index: 2;
}

/* テキスト部分の調整 */
.top_message_txt {
    position: relative;
    z-index: 3;
    writing-mode: vertical-rl;
    height: 600px;
    padding-top: 20px;
}

.top_message_txt h2 {
    font-size: 2.5rem;
    line-height: 1.6;
    margin-bottom: 0;
    margin-right: 30px;
    color: #333;
}

.top_message_txt p {
    font-size: 1rem;
    line-height: 2.2;
    color: #555;
    margin: 0;
}

/* =========================================================
   右下の背景動画
========================================================= */

.top_message_video {
    position: absolute;
    right:50px;
    bottom:40px;
    width: 480px;
    height: 360px;
    z-index: 1;
    overflow: hidden;
    opacity: 0.65;
    pointer-events: none;
}

.top_message_video video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* 動画を少し淡くするための白いグラデーション */
.top_message_video::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(255,255,255,1) 0%,
        rgba(255,255,255,0.25) 45%,
        rgba(255,255,255,0) 100%
    );
}


/* レスポンシブ対応 (必要に応じて) */
@media screen and (max-width: 768px) {
    .top_selection05 {
        padding: 60px 20px 0;
    }

    .top_message_area {
        flex-direction: column;
        align-items: center;
        gap: 30px;
        padding: 0;
        margin-bottom: 40px;
    }

    .top_message_photo img {
        width: 100%;
        max-width: 500px;
    }

    .top_message_txt {
        writing-mode: horizontal-tb;
        width: 100%;
        height: auto;
        padding-top: 0;
    }

    .top_message_txt h2 {
        font-size: 1.8rem;
        line-height: 1.6;
        margin: 0 0 25px;
    }

    .top_message_txt p {
        font-size: 1rem;
        line-height: 2;
    }


    /* スマホでは右下に小さく */
    .top_message_video {
        right: -100px;
        bottom: 0;
        width: 350px;
        height: 260px;
        opacity: 0.35;
    }
}

/* ==========================================================
   top_selection06 : お客様の声
   ========================================================== */

.top_selection06{
    padding:80px 0;
    background:#f7f7f7;
}

.top_voice{
    width:100%;
    max-width:1000px;
    margin:0 auto;
    padding:0 20px;
    text-align:center;
}

/* タイトル */
.top_voice h2{
    font-size:clamp(28px,4.6vw,44px);
    letter-spacing:.14em;
    color:#344a84;
    margin:0 0 14px;
    font-weight:700;
}

.top_voice h2 .en{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    margin-top:14px;
    font-size:15px;
    font-weight:400;
}

.top_voice h2 .en::before,
.top_voice h2 .en::after{
    content:"";
    width:20px;
    height:1px;
    background:#344a84;
}

/* --------------------------
   グリッド
-------------------------- */
.voice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:40px;
    margin-top:50px;
}

.voice-link{
    display:block;
    color:inherit;
    text-decoration:none;
}

/* --------------------------
   カード
-------------------------- */
.voice-lawyer,
.voice-general{
    width:100%;
    min-height:377px;
    padding:35px;
    background:#fff;
    border:2px solid #d8c8a0;
    position:relative;
    box-sizing:border-box;
    text-align:left;
    transition:.3s;
}

.voice-lawyer::before,
.voice-general::before{
    content:"";
    position:absolute;
    inset:10px;
    border:1px solid #d8c8a0;
    pointer-events:none;
}

.voice-link:hover .voice-lawyer,
.voice-link:hover .voice-general{
    transform:translateY(-6px);
    box-shadow:0 10px 25px rgba(0,0,0,.08);
}

/* --------------------------
   カテゴリー
-------------------------- */
.cat_lawyer,
.cat_general{
    display:inline-block;
    padding:6px 14px;
    font-size:12px;
    color:#fff;
    margin-bottom:20px;
    letter-spacing:.05em;
}

.cat_lawyer{
    background:#5f7d6c;
}

.cat_general{
    background:#c98f6b;
}

/* --------------------------
   ヘッダー
-------------------------- */
.voice-header{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:15px;
}

.voice-header h3{
    flex:1;
    margin:0;
    font-size:22px;
    line-height:1.5;
    color:#333;
    text-align:left;
}

.voice-photo{
    width: 100px;
    height: 100px;
    object-fit: cover;
    flex-shrink: 0;
    border-radius: 6px; 
}

/* --------------------------
   名前
-------------------------- */
.voice_author{
    margin:0 0 18px;
    font-size:14px;
    color:#888;
    text-align:left;
}

/* --------------------------
   本文
-------------------------- */
.voice_description{
    font-size:15px;
    line-height:2;
    color:#444;
    text-align:left;
}

/* --------------------------
   スマホ
-------------------------- */
@media (max-width:768px){

    .top_selection06{
        padding:60px 0;
    }

    .voice-grid{
        grid-template-columns:1fr;
        gap:25px;
    }

    .voice-lawyer,
    .voice-general{
        min-height:auto;
        padding:25px 20px;
    }

    .voice-lawyer::before,
    .voice-general::before{
        inset:6px;
    }

    .voice-header{
        gap:15px;
    }

    .voice-header h3{
        font-size:18px;
    }

    .voice-photo{
        width:65px;
        height:65px;
    }

    .voice_author{
        font-size:13px;
    }

    .voice_description{
        font-size:14px;
        line-height:1.9;
    }
}
/* ==========================================================
   top_selection07 : 物件情報
   ========================================================== */
/*
.top_selection07{
    background-image: url('img/top/property.png');
    background-size: cover;
    padding:100px 0 ;
    text-align: center;
	background-position: center center;
    overflow: hidden;
	}
*/

.top_selection07 {
    position: relative;
    padding: 100px 0;
    text-align: center;
    overflow: hidden;
}

/* 背景動画 */
.top_selection07-video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
    z-index: 0;
}

/* 動画の上にコンテンツを表示 */
.top_selection07-content {
    position: relative;
    z-index: 1;
}

.top_selection07::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1;
}

.top_selection07-content {
    position: relative;
    z-index: 2;
}
/* ------------------ 見出し ------------------ */

.top_property {
width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
	text-align: center;
}
.top_property h2{
    font-size:clamp(28px,4.6vw,44px);
    letter-spacing:.14em;
	color: #fff;
    margin:0 0 14px;
    font-weight:700;
  }
.top_property h2 .en{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px; /* 文字と線の間隔 */
  font-size:15px;
  margin-top:14px;
  font-weight:400;
}

.top_property .en::before,
.top_property .en::after{
  content:"";
  width:20px;      /* 線の長さ */
  height:1px;      /* 線の太さ */
  background:#fff; /* 線の色 */
}



/*========================================
TOP PROPERTY SLIDER
========================================*/


.slider-wrapper {

    position: relative;

    width:100%;

    max-width:1000px;

    margin:0 auto;

    padding:5% 0;

    display:flex;

    align-items:center;

}




/* 横スライド */

.property-container {


    display:grid;

    grid-auto-flow:column;

    grid-auto-columns:calc((100% - 40px) / 3);

    gap:20px;

    width:100%;

    padding:0 60px;


    overflow-x:auto;

    scroll-behavior:smooth;


    scrollbar-width:none;


}


.property-container::-webkit-scrollbar{

    display:none;

}





/* カード */

.property {


    display:flex;

    flex-direction:column;

    gap:10px;

    background:#fff;

    padding:15px;

    border:1px solid #ddd;


}





.property__header{


    display:flex;

    flex-direction:column;

    gap:5px;


}




.label-中古物件{


    display:inline-block;

    align-self:flex-start;

    background:#364a74;

    color:#fff;

    font-size:12px;

    padding:3px 8px;


}




.property-title{

    font-size:16px;

    margin:0;

    text-align:left;

    color:#333;

}





.property__image-wrapper{


    width:100%;

    aspect-ratio:16 / 9;

    overflow:hidden;


}



.property__image{


    width:100%;

    height:100%;

    object-fit:cover;


}





.property__details{


    display:flex;

    flex-direction:column;

    gap:8px;

    font-size:14px;


}




.detail-row{


    display:flex;

    align-items:flex-start;

    gap:10px;


}



.staff_detail-label{


    background:#364a74;

    color:#fff!important;

    padding:10px;

    min-width:50px;

    text-align:center;

    flex-shrink:0;


}





/* 矢印 */

.slider-btn{


    position:absolute;

    top:50%;

    transform:translateY(-50%);


    width:40px;

    height:40px;


    background:#e0f7fa;


    border:none;

    cursor:pointer;


    font-size:20px;


    display:flex;

    align-items:center;

    justify-content:center;


    z-index:5;


}



.prev{

    left:0;

}



.next{

    right:0;

}







/*==============================
SP
==============================*/


@media(max-width:767px){


.property-container{


    grid-auto-columns:100%;


    padding:0 45px;


}



.slider-btn{


    width:35px;

    height:35px;

}


}

/* ==========================
   NEWS
========================== */
.top_selection08{
width:100%;
padding: 0 0 5% 0;
}
.news_area{
    max-width: 1000px;
    margin: 0 auto;
}
.news_item{
    display: flex;
    align-items: center;
    gap: 60px;
    min-height: 70px;
    padding: 0 65px;
    margin-bottom: 10px;
    background: #f4f4f4;
    text-decoration: none;
    transition: .3s;
}

.news_item:hover{
    background: #efefef;
}

.news_date{
    flex-shrink: 0;
    width: 160px;
    color: #2b468d;
    font-size: 22px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 500;
    letter-spacing: .03em;
}

.news_title{
    color: #2b468d;
    font-size: 22px;
    line-height: 1.8;
    letter-spacing: .08em;
}

/* スマホ */
@media screen and (max-width:768px){

.news_item{
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    min-height: auto;
    padding: 25px;
}

.news_date{
    width: auto;
    font-size: 18px;
}

.news_title{
    font-size: 18px;
}
	}


/*========================================
COLUMN
========================================*/

.column_area{

    max-width:1000px;
    margin:0 auto;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}


/*----------------------------------------
card
----------------------------------------*/

.column_item{

    display:block;

    text-decoration:none;

    color:inherit;

}


.column_img {
    overflow: hidden;
    border-radius: 40px;
}

.column_img img {
    width: 100%;
    display: block;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: .5s;
}


.column_item:hover .column_img img{

    transform:scale(1.06);

}


/*----------------------------------------
content
----------------------------------------*/

.column_content{

    position:relative;

    margin:-40px 20px 0 -10px;

    padding:20px;

    background:#f2f2f2;

    border-radius:20px;

    min-height:220px;

    z-index:2;

    text-align:left;

}



.column_category{

    display:inline-block;

    background:#2d4d91;

    color:#fff;

    font-size:10px;

    padding:5px 10px;

    margin-bottom:18px;

}



.column_title{

    color:#222;

    font-size:16px;

    font-weight:bold;

    line-height:1.8;

    letter-spacing:.05em;

    margin:0;

    padding-right:50px;

}

.column_text{

    color:#222;

    font-size:12px;

    font-weight:500;
    padding-top:10px;
    padding-right:50px;

}


/*----------------------------------------
arrow
----------------------------------------*/

.column_arrow{

    position:absolute;

    right:25px;

    bottom:25px;

    width:56px;

    height:56px;

    border-radius:50%;

    background:#fff;

    box-shadow:0 2px 5px rgba(0,0,0,.1);

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:24px;

    color:#2d4d91;

    transition:.3s;

}


.column_item:hover .column_arrow{

    background:#2d4d91;

    color:#fff;

}



/*========================================
responsive
========================================*/


@media(max-width:768px){


.column_area{

    grid-template-columns:repeat(2,1fr);

    gap:35px;

}


.column_img{

    border-radius:25px;

}


.column_content{

    margin:-30px 15px 0;

    padding:20px;

    min-height:200px;

}


.column_title{

    font-size:14px;

}


.column_arrow{

    width:48px;

    height:48px;

    font-size:20px;

}



}


@media(max-width:480px){


.column_area{

    grid-template-columns:1fr;

}


.column_content{

    margin:-30px 20px 0;

}


.column_title{

    font-size:16px;

}


}

/*==========================
BANNER
==========================*/

.banner_area{
    max-width: 1000px;
    margin: 80px auto 0;
  
   
    display: flex;
    gap: 30px;
}

.banner_item{
    display: block;
    flex: 1;
    overflow: hidden;
    transition: .3s;
}

.banner_item img{
    width: 100%;
    display: block;
    transition: .4s;
}

.banner_item:hover img{
    transform: scale(1.05);
    opacity: .9;
}

/* スマホ */

@media screen and (max-width:768px){

.banner_area{
    flex-direction: column;
    gap: 20px;
}

}


/*====================================
CONTACT
====================================*/

.footer_contact{
     background-image: url('img/contact_back.png');
       padding:120px 20px 80px;
    position:relative;
}

.footer_contact_title{
    position:relative;
    z-index:2;
    text-align:center;
    font-size:60px;
    line-height:1;
    margin:0;
    color:#000;
    font-family:"Cormorant Garamond", serif;
}

.footer_contact_text{
    position:relative;
    z-index:2;
    text-align:center;
    font-size:20px;
    font-weight:600;
    margin-top:25px;
    margin-bottom:0;
}

.footer_contact_box{
    max-width:1000px;
    margin:-90px auto 0;   /* ←ここがポイント */
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:120px 40px 40px;
    position:relative;
    z-index:1;

}

.footer_contact_left{

    width:48%;
    padding-right:30px;
    border-right:1px solid #222;

}

.footer_contact_right{

    width:48%;
    padding-left:30px;

}

.footer_contact_tel{

    display:flex;
    align-items:flex-end;
    margin-bottom:25px;

}

.footer_contact_tel span{

    font-size:25px;
    margin-right:10px;
    font-weight:700;

}

.footer_contact_tel a{

    font-size:50px;
    color:#000;
    text-decoration:none;
    font-weight:700;
    line-height:1;

}

.footer_contact_time{

    display:flex;
    align-items:center;
    gap:20px;
    font-size:18px;

}

.footer_contact_label{

    border:1px solid #222;
    padding:6px 12px;
    font-size:15px;

}

.footer_contact_btn{

    display:block;

    background:#314a84;
    color:#fff;

    text-align:center;
    text-decoration:none;

    padding:22px;

    margin-bottom:15px;

    font-size:18px;
    transition:.3s;

}

.footer_contact_btn:hover{

    background:#24386a;

}

.footer_contact_btn_white{

    background:#fff;
    color:#314a84;
    border:1px solid #314a84;

}

.footer_contact_btn_white:hover{

    background:#314a84;
    color:#fff;

}

/*=========================
SP
=========================*/

@media (max-width:768px){

.footer_contact{

    padding:70px 20px;

}

.footer_contact_title{

    font-size:48px;

}

.footer_contact_text{

    font-size:16px;
    margin-bottom:40px;

}

.footer_contact_box{

    flex-direction:column;
    padding:35px 25px;

}

.footer_contact_left,
.footer_contact_right{

    width:100%;
    padding:0;

}

.footer_contact_left{

    border-right:none;
    border-bottom:1px solid #ddd;
    padding-bottom:35px;
    margin-bottom:35px;

}

.footer_contact_tel{

    justify-content:center;

}

.footer_contact_tel a{

    font-size:42px;

}

.footer_contact_time{

    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
    text-align:center;
    font-size:15px;

}

.footer_contact_btn{

    font-size:18px;
    padding:18px;

}

}

/*====================================
FOOTER
====================================*/

.footer_area{
    background:#3f568f;
    color:#fff;
    padding:80px 20px 30px;
}

.footer_inner{
    max-width:1000px;   /* 1200→1000 */
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:50px;
	
}

.footer_company{
    width:30%;
	 text-align:left;
}

.footer_logo{
    font-size:18px;
    margin-bottom:25px;
    font-weight:700;
    line-height:1.2;
}

.footer_company p{
    font-size:12px;
    line-height:1.8;
}

.footer_tel{
    margin-top:10px;
    font-weight:700;
}

/* facebook */
.facebook-link {
  font-size: 32px!important;
  text-decoration: none; /* 下線を消す場合 */
}


/* マウスを乗せたときに色を変えたり少し動かしたりする場合（お好みで） */
.facebook-link:hover {
  opacity: 0.8;
}

.footer_nav{
    width:46%;
    display:flex;
    justify-content:space-between;
    gap:20px;
	text-align:left;
}

.footer_nav ul{
    margin:0;
    padding:0;
    list-style:none;
}

.footer_nav li{
    margin-bottom:18px;
}

.footer_nav a{
    color:#fff;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    transition:.3s;
}

.footer_nav a:hover{
    opacity:.7;
}

.footer_banner{
    width:24%;
}

.footer_banner img{
    width:100%;
    display:block;
}

.footer_copy{
    text-align:center;
    margin-top:70px;
    font-size:10px;
    font-weight:600;
}

/*==========================
SP
==========================*/

@media screen and (max-width:768px){

.footer_inner{
    flex-direction:column;
    gap:40px;
}

.footer_company,
.footer_nav,
.footer_banner{
    width:100%;
}

.footer_nav{
    flex-direction:column;
    gap:20px;
}

.footer_logo{
    font-size:18px;
}

.footer_company p,
.footer_nav a{
    font-size:12px;
}

.footer_copy{
    margin-top:40px;
    font-size:10px;
}

}


/*==========================
下層ページ
==========================*/
.content_area{
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
	text-align: center;
	
}

/*タイトル*/
/* ========================================
   SUBTITLE
======================================== */

.subtitle_base {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #203268;
	height:300px;
}


/* SVG背景 */
.subtitle_svg {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    z-index: 0;
    pointer-events: none;
}


.subtitle_svg svg {
    width: 100%;
    height: auto;
    display: block;
}


/* タイトル */
.subtitle_area {
    position: relative;
    z-index: 2;
    text-align: center;
	color:#203363;
	  background-color: rgba(255,255,255,0.7);
	padding:1% 5%;
}


/* SVGの線 */
.subtitle_svg path {
    fill: none;
    stroke: #fff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;

    stroke-dasharray: var(--path-length);
    stroke-dashoffset: var(--path-length);
}

.subtitle_svg.is-drawing path {
    animation: subtitleSvgDraw 6.5s ease-in-out infinite;
}

@keyframes subtitleSvgDraw {

    /* 0〜46%：3秒かけて描く */
    0% {
        stroke-dashoffset: var(--path-length);
    }

    /* 46% = 約3秒 */
    46% {
        stroke-dashoffset: 0;
    }

    /* 46〜77%：約2秒そのまま */
    77% {
        stroke-dashoffset: 0;
    }

    /* 77〜100%：1.5秒かけて消す */
    100% {
        stroke-dashoffset: var(--path-length);
    }
}

/* --- パンくずリストのデザイン --- */
.breadcrumb {
  padding: 20px 0;
  font-size: 0.9rem;
  color: #666;

}

.breadcrumb ul {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}

.breadcrumb ul li:not(:last-child)::after {
  content: ">";
  margin: 0 10px;
  color: #ccc;
}

.breadcrumb ul li a {
  color: #344a84;
  text-decoration: none;
}

/*==========================
固定ページ　基本
==========================*/
.page-content{
    line-height: 1.8;
    color: #333;
    max-width: 1000px;
    margin: 0 auto;
    padding: 20px;
}

/* 見出しのスタイル調整 */
.page-content h2 {
    margin-top: 2em;
    margin-bottom: 1em;
    padding-bottom: 0.5em;
    border-bottom: 2px solid #eee;
    font-size: 1.5em;
	text-align: left;
}

.page-content h3 {
    margin-top: 1.5em;
    margin-bottom: 0.8em;
    font-size: 1.25em;
    color: #444;
	text-align: left;
}

.page-content p {
    margin-bottom: 1.5em;
	text-align: left;
}

/* リンクのスタイル */
.page-content a {
    color: #0073aa;
    text-decoration: underline;
}

.page-content a:hover {
    text-decoration: none;
}

/*==========================
スタッフ紹介
==========================*/

.staff_area{
	max-width:1000px; 
	margin:0 auto;
    padding: 5% 0;
}
 
  /* ===== Lead profile (代表) ===== */
  .lead{
    background:#fff;
    color:#454f68;
  }
  .lead-grid{
    display:grid;
    grid-template-columns:300px 1fr;
    gap:64px;
    align-items:start;
  }
  .lead-photo-col{position:sticky; top:24px;}
  .avatar{
    width:100%;
    aspect-ratio:3/4;
    border-radius:2px;
    background:
      radial-gradient(circle at 32% 28%, rgba(182,146,79,.35), transparent 60%),
      linear-gradient(160deg, #d3d9e3, #e3e7ee);
    border:1px solid rgba(182,146,79,.4);
    display:flex;
    align-items:flex-end;
    justify-content:center;
    position:relative;
    overflow:hidden;
  }
  .avatar img{width:100%; height:100%; object-fit:cover; display:block;}
  .avatar svg{width:56%; opacity:.85;}
  .avatar .plate{
    position:absolute; top:14px; left:14px; right:14px;
    font-family:var(--eng); font-style:italic; font-size:11px;
    color:#836429; letter-spacing:.12em;
  }
  .lead-name-block{margin-top:22px; text-align:center;}
  .lead-name-block .furigana{
    font-size:11px; letter-spacing:.3em; color:#707a92; display:block; margin-bottom:6px;
  }
  .lead-name-block .name{
    font-family:var(--serif); font-size:24px; color:#1c2438; letter-spacing:.08em; font-weight:600;
  }
  .lead-name-block .role{
    margin-top:8px; font-size:12.5px; color:#836429; letter-spacing:.06em;
  }
  .lead-tags{
    display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:16px;
  }
  .lead-tags span{
    font-size:11px; padding:5px 10px; border:1px solid rgba(28,36,56,.18); color:#454f68; letter-spacing:.02em; border-radius:1px;
  }

  .lead-quote{
    font-family:var(--serif);
    font-size:clamp(20px,2.4vw,26px);
    line-height:1.9;
    font-weight:500;
    color:#1c2438;
    border-left:2px solid #9c7a3c;
    padding-left:28px;
    margin:0 0 40px;
  }
  .lead-quote small{
    display:block; margin-top:16px; font-family:var(--sans); font-size:12.5px; color:#707a92; letter-spacing:.05em; font-weight:300;
  }

  .facts-row{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:rgba(28,36,56,.12);
    margin-bottom:52px;
    border-top:1px solid rgba(28,36,56,.14);
    border-bottom:1px solid rgba(28,36,56,.14);
  }
  .facts-row .fact{
    background:#eaedf2;
    padding:20px 14px;
    text-align:center;
  }
  .facts-row .fact .num{
    font-family:var(--eng); font-style:italic; font-size:30px; color:#836429; line-height:1;
  }
  .facts-row .fact .cap{
    font-size:11px; color:#707a92; margin-top:8px; letter-spacing:.05em;
  }

  /* pillars (strengths) */
  .pillars-label{
    font-size:12px; letter-spacing:.15em; color:#707a92; margin-bottom:16px;
  }
  .pillars{
    display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:rgba(28,36,56,.12); margin-bottom:60px;
  }
  .pillar{background:#eaedf2; padding:22px 12px; text-align:center;}
  .pillar .glyph{
    font-family:var(--eng); font-style:italic; font-size:20px; color:#9c7a3c; display:block; margin-bottom:10px;
  }
  .pillar .jp{font-size:12.5px; color:#1c2438; letter-spacing:.03em; line-height:1.6;}

  /* timeline */
  .timeline-label{font-size:12px; letter-spacing:.15em; color:#707a92; margin-bottom:26px;}
  .timeline{position:relative; padding-left:26px;}
  .timeline::before{
    content:""; position:absolute; left:5px; top:6px; bottom:6px; width:1px; background:rgba(28,36,56,.16);
  }
  .tl-item{position:relative; padding-bottom:34px;}
  .tl-item:last-child{padding-bottom:0;}
  .tl-item::before{
    content:""; position:absolute; left:-26px; top:4px; width:11px; height:11px; border-radius:50%;
    background:#eaedf2; border:2px solid #9c7a3c;
  }
  .tl-item .span{font-family:var(--eng); font-style:italic; font-size:13px; color:#836429; letter-spacing:.04em;}
  .tl-item .ttl{font-size:14.5px; color:#1c2438; margin:4px 0 4px; font-weight:500;}
  .tl-item .desc{font-size:12.5px; color:#707a92; line-height:1.8; font-weight:300;}

  /* accordion */
  .staff_detail-label{font-size:12px; letter-spacing:.15em; color:#fff; margin:64px 0 20px;}
  details.acc{
    border-top:1px solid rgba(28,36,56,.16);
  }
  details.acc:last-of-type{border-bottom:1px solid rgba(28,36,56,.16);}
  details.acc summary{
    list-style:none; cursor:pointer;
    padding:22px 4px;
    display:flex; align-items:center; justify-content:space-between; gap:20px;
  }
  details.acc summary::-webkit-details-marker{display:none;}
  details.acc summary .q-num{
    font-family:var(--eng); font-style:italic; color:#9c7a3c; font-size:14px; margin-right:16px;
  }
  details.acc summary .q-ttl{
    font-family:var(--serif); font-size:15.5px; color:#1c2438; font-weight:500; letter-spacing:.04em; flex:1;
  }
  details.acc summary .q-icon{
    width:20px; height:20px; position:relative; flex-shrink:0;
  }
  details.acc summary .q-icon::before, details.acc summary .q-icon::after{
    content:""; position:absolute; background:#836429; transition:transform .25s ease;
  }
  details.acc summary .q-icon::before{ top:9px; left:2px; right:2px; height:1px; }
  details.acc summary .q-icon::after{ left:9px; top:2px; bottom:2px; width:1px; }
  details.acc[open] summary .q-icon::after{ transform:scaleY(0); }
  .acc-body{padding:0 4px 28px 34px;}
  .acc-body dl{margin:0; display:grid; grid-template-columns:140px 1fr; gap:14px 20px;}
  .acc-body dt{font-size:12px; color:#836429; letter-spacing:.04em; font-weight:500; padding-top:1px;}
  .acc-body dd{margin:0; font-size:13.5px; color:#454f68; line-height:1.9; font-weight:300;}
  .acc-body p.freeform{font-size:13.5px; color:#454f68; line-height:2; font-weight:300; margin:0;}

  /* ===== Team grid (other staff) ===== */
  .team{background:#f6f4ef;
padding: 0 0 5% 0;}
  .team-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:2px;
    background:#1a2d52;
    max-width:1000px;
    margin:0 auto;
	
  }
  .staff-card{
    background:#ffffff;
    padding:48px 40px;
    display:grid;
    grid-template-columns:180px 1fr;
    gap:32px;
  }
  .staff-avatar{
    width:100%; aspect-ratio:3/4; position:relative;
    background:linear-gradient(160deg,#eef1f6,#dbe2ee);
    border:1px solid #d7dce6;
    display:flex; align-items:flex-end; justify-content:center; overflow:hidden;
  }
  .staff-avatar img{width:100%; height:100%; object-fit:cover; display:block;}
  .staff-avatar svg{width:58%; opacity:.55;}
  .staff-avatar .plate{
    position:absolute; top:12px; left:12px; font-family:var(--eng); font-style:italic; font-size:10px; color:#33517f; letter-spacing:.1em;
  }
  .staff-body .furigana{font-size:10.5px; letter-spacing:.28em; color:#5b6270;}
  .staff-body .name{
    font-family:var(--serif); font-size:21px; font-weight:600; color:#12213f; margin:5px 0 14px; letter-spacing:.05em;
  }
  .staff-body dl{display:grid; grid-template-columns:64px 1fr; gap:10px 14px; margin:0 0 18px;}
  .staff-body dt{font-size:11px; color:#b6924f; font-weight:500; letter-spacing:.03em; padding-top:1px;}
  .staff-body dd{margin:0; font-size:12.8px; color:#20242c; line-height:1.85; font-weight:400;}
  .staff-body .motto{
    border-top:1px dashed #d7dce6; padding-top:14px; margin-top:4px;
    font-family:var(--serif); font-size:13.5px; color:#1a2d52; font-weight:500;
  }
  .staff-body .motto .eyebrow{font-size:10.5px; margin-bottom:6px;}

  /* ===== footer ===== */
  footer{
    background:var(--navy-950); color:var(--steel-400); text-align:center; padding:26px 24px; font-size:11.5px; letter-spacing:.04em;
  }

  @media (max-width: 860px){
    .topbar nav{display:none;}
    .lead-grid{grid-template-columns:1fr; gap:36px;}
    .lead-photo-col{position:static; max-width:260px; margin:0 auto;}
    .facts-row{grid-template-columns:repeat(2,1fr);}
    .pillars{grid-template-columns:repeat(2,1fr);}
    .team-grid{grid-template-columns:1fr;}
    .staff-card{grid-template-columns:120px 1fr; padding:36px 24px; gap:20px;}
    .acc-body dl{grid-template-columns:1fr;}
    .acc-body dt{padding-top:8px;}
    section{padding:64px 18px;}
  }

/*==============================
お問い合わせ
==============================*/



.contact-inner{
    max-width:1000px;
    margin:auto;
    background:#fff;
    padding:20px 60px 60px 60px;
    border-radius:10px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);

}

.contact-inner h2{
    text-align:center;
    font-size:38px;
    color:#1d3557;
    margin-bottom:20px;
}

.contact-text{
    text-align:center;
    line-height:2;
    margin-bottom:50px;
    color:#666;
}

/*==============================
Contact Form7
==============================*/

.wpcf7{
    width:100%;
}

.cf7-row{
    margin-bottom:25px;
}

.cf7-row label{
    display:block;
    margin-bottom:8px;
    font-weight:700;
    color:#1d3557;
    font-size:15px;
}

.required{
    display:inline-block;
    margin-left:10px;
    padding:2px 8px;
    background:#d9534f;
    color:#fff;
    font-size:11px;
    border-radius:3px;
}

.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 select,
.wpcf7 textarea{

    width:100%;
    padding:16px 18px;
    font-size:16px;
    border:1px solid #ddd;
    border-radius:6px;
    background:#fff;
    transition:.3s;
    box-sizing:border-box;
}

.wpcf7 textarea{
    min-height:220px;
    resize:vertical;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus{

    outline:none;
    border-color:#1d3557;
    box-shadow:0 0 0 4px rgba(29,53,87,.08);

}

.privacy{
    text-align:center;
    margin-top:40px;
}

.privacy .wpcf7-list-item{
    margin:0;
}

.privacy input{
    margin-right:8px;
}

.cf7-submit{
    text-align:center;
    margin-top:40px;
}

.wpcf7-submit{

    width:320px;
    max-width:100%;
    padding:18px;

    background:#1d3557;
    color:#fff;

    border:none;
    border-radius:50px;

    font-size:17px;
    font-weight:700;

    cursor:pointer;
    transition:.3s;
}

.wpcf7-submit:hover{

    background:#caa24b;

}

.wpcf7-spinner{

    display:block;
    margin:15px auto;

}

.wpcf7-not-valid-tip{

    margin-top:5px;
    font-size:13px;

}

.wpcf7-response-output{

    margin-top:30px !important;
    border-radius:6px;

}

/*==============================
スマホ
==============================*/

@media(max-width:768px){

.contact-inner{

    padding:35px 20px;

}

.lawyer-contact h2{

    font-size:28px;

}

.contact-text{

    font-size:14px;

}

.wpcf7-submit{

    width:100%;

}

}

/*==========================
会社概要
==========================*/


.company-table {
    width: 100%;
    border-collapse: collapse;
    border-top: 2px solid #333; /* 上部に濃いラインを引いて締める */
}

.company-table th,
.company-table td {
    padding: 20px;
    border-bottom: 1px solid #eee;
    text-align: left;
}

/* 項目部分（左側）の幅を固定 */
.company-table th {
    width: 30%;
    background-color: #f9f9f9;
    color: #444;
    font-weight: bold;
    vertical-align: top;
}

/* スマホ対応：スマホでは縦並びにする */
@media screen and (max-width: 600px) {
    .company-table th,
    .company-table td {
        display: block;
        width: 100%;
        padding: 10px;
    }
    .company-table th {
        border-bottom: none;
        padding-bottom: 0;
    }
}

/*==========================
弁護士事務所の皆さまへ
==========================*/

.lawyer-service-page{
    max-width:1000px;
    margin:100px auto;
    padding:0 20px;
    color:#333;
    line-height:2;
}

.lawyer-service-page h2{
    position:relative;
    margin:0 0 60px;
    padding-bottom:20px;
    text-align:center;
    font-size:38px;
    font-weight:700;
    color:#1d3557;
}

.lawyer-service-page h2::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
    width:80px;
    height:3px;
    background:#caa24b;
}

.lawyer-service-page h3{
    margin:80px 0 30px;
    padding-left:18px;
    border-left:6px solid #caa24b;
    font-size:28px;
    color:#1d3557;
}

.lawyer-service-page p{
    margin-bottom:25px;
    font-size:16px;
}

/* ==========================
   比較表
========================== */

.comparison-table{
    width:100%;
    border-collapse:collapse;
    margin:40px 0 60px;
    overflow:hidden;
    border-radius:8px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.comparison-table th,
.comparison-table td{
    padding:18px 20px;
    border:1px solid #e6e6e6;
    text-align:center;
}

.comparison-table thead th{
    background:#1d3557;
    color:#fff;
    font-size:17px;
}

.comparison-table tbody th{
    width:180px;
    background:#f8f8f8;
    color:#1d3557;
}

.comparison-table td:last-child{
    background:#f9f7ef;
    font-weight:600;
    color:#8b6b2d;
}

/* ==========================
   ルール
========================== */
.rules-box{
    margin:70px 0;
    padding:40px;
    background:#faf9f5;
    border-radius:8px;
}

.rules-box h3{ /* ※HTML側が3なのでh3に変更またはh4に合わせて調整 */
    margin-bottom:25px;
    font-size:26px;
    color:#1d3557;
}

.rules-box ul{
    margin:0;
    padding:0;
    list-style:none;
}

.rules-box li{
    display: flex; /* アイコンとテキストを横並びにする */
    align-items: flex-start; /* 上揃えにする */
    position:relative;
    padding:18px 0; /* 左右の余白は調整不要に */
    border-bottom:1px solid #ddd;
    text-align:left;
}

.rules-box li:last-child{
    border:none;
}

/* 擬似要素によるチェックマークは削除し、imgタグ用のスタイルを追加 */
.rules-box .rule-icon {
    width: 90px; /* アイコンの幅（お好みで調整） */
    height: auto; /* 高さは自動調整 */
    margin-right: 14px; /* アイコンとテキストの間の余白 */
    flex-shrink: 0; /* アイコンが縮まないようにする */
    margin-top: 2px; /* テキストの1行目と高さを微調整 */
}

.rules-box strong{
    color:#1d3557;
}

/* ==========================
   ケース一覧
========================== */
.case-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:24px;
    margin-top:40px;
}

.case-item{
    padding:35px 30px;
    background:#fff;
    border:1px solid #e6e6e6;
    border-top:5px solid #caa24b;
    border-radius:8px;
    transition:.3s;
    box-shadow:0 5px 20px rgba(0,0,0,.05);
}

.case-item:hover{
    transform:translateY(-6px);
    box-shadow:0 15px 35px rgba(0,0,0,.12);
}

/* 上部に配置するアイコン画像のスタイル */
.case-item img.case-icon {
    display: block;
    width: 90px;  /* 上部に配置するため少し大きめ（お好みで変更可） */
    height: auto;
    object-fit: contain;
    margin:0 auto 15px auto; /* アイコンとタイトルの間の余白 */
	text-align :center;
}

.case-item h4{
    margin-bottom: 15px;
    font-size: 22px;
    color: #1d3557;
}

.case-item p{
    margin: 0;
    font-size: 15px;
    line-height: 1.9;
	text-align :center;
}

/* ==========================
   SP
========================== */

@media(max-width:768px){

    .lawyer-service-page{
        margin:70px auto;
        padding:0 15px;
    }

    .lawyer-service-page h2{
        font-size:28px;
    }

    .lawyer-service-page h3{
        font-size:22px;
    }

    .comparison-table{
        display:block;
        overflow-x:auto;
        white-space:nowrap;
    }

    .rules-box{
        padding:25px;
    }

    .case-grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .case-item{
        padding:25px;
    }
}


#contact{
    scroll-margin-top:120px;
}


/*========================================
VOICE
========================================*/
.voice_archive,
.single_voice{

    width:100%;
    max-width:1000px;
    margin:0 auto;
    padding:50px 20px 100px 20px;
}

/*========================================
詳細
========================================*/

.single_box{

    display:flex;

    gap:60px;

    margin-top:70px;

}

.single-photo{

    width:220px;

 

    flex-shrink:0;

}

.single_content{

    flex:1;

}

.single_cat{

    display:inline-block;

    background:#5f7d6c;

    color:#fff;

    padding:6px 14px;

    margin-bottom:20px;

    font-size:12px;

}

.single_content h1{

    margin-bottom:20px;

    color:#344a84;

    font-size:34px;

}

.voice_text{

    line-height:2.2;

    margin-top:30px;

}

.voice_text a{
	color:#344a84;
	font-size:120%;
	text-decoration: underline;
	}

.back_btn{

    text-align:center;

    margin-top:80px;

}

.back_btn a{

    display:inline-block;

    padding:16px 40px;

    background:#344a84;

    color:#fff;

    text-decoration:none;

}


.news_archive,
.single_news{

    width:100%;
    max-width:1000px;
    margin:0 auto;
    padding:100px 20px;

}

.news_archive h1{

    font-size:44px;

    text-align:center;

    color:#344a84;

    margin-bottom:60px;

}

.news_archive h1 span{

    display:block;

    margin-top:15px;

    font-size:15px;

    font-weight:400;

}

.single_date{

    color:#2b468d;

    font-size:22px;

    font-family:"Cormorant Garamond",serif;

    margin-bottom:20px;

}

.single_news h1{

    color:#2b468d;

    font-size:34px;

    margin-bottom:40px;

}

.news_content{

    line-height:2.2;

}

.news_content p{

    margin-bottom:1.5em;

}

/*========================================
FAQ
========================================*/

.faq_archive,
.single_faq{
    width:100%;
    max-width:1000px;
    margin:0 auto;
    padding:100px 20px;
}

/*========================================
タイトル
========================================*/

.faq_archive h1{
    text-align:center;
    color:#344a84;
    font-size:clamp(28px,4.5vw,44px);
    margin-bottom:20px;
}

.faq_archive h1 span{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    margin-top:15px;
    font-size:15px;
    font-weight:400;
}

.faq_archive h1 span::before,
.faq_archive h1 span::after{
    content:"";
    width:20px;
    height:1px;
    background:#344a84;
}

/*========================================
カテゴリー
========================================*/

.faq_category{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;
    margin:60px 0;
}

.faq_category a{
    display:inline-block;
    padding:10px 22px;
    border:1px solid #344a84;
    color:#344a84;
    text-decoration:none;
    transition:.3s;
}

.faq_category a:hover,
.faq_category a.current{
    background:#344a84;
    color:#fff;
}

/*========================================
一覧
========================================*/

.faq_list{
    margin-top:40px;
}

.faq_item{
    border-bottom:1px solid #ddd;
}

.faq_item a{
    display:flex;
    align-items:center;
    padding:30px 0;
    text-decoration:none;
    color:inherit;
    transition:.3s;
}

.faq_item a:hover{
    opacity:.7;
}

.faq_q{
    display:flex;
    align-items:center;
    width:100%;
}

.faq_q span{
    width:48px;
    height:48px;
    background:#344a84;
    color:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:22px;
    font-family:"Cormorant Garamond",serif;
    margin-right:25px;
    flex-shrink:0;
}

.faq_q h2{
    font-size:24px;
    font-weight:500;
    line-height:1.6;
    color:#344a84;
}

/*========================================
詳細
========================================*/

.faq_detail{
    margin-top:40px;
}

.faq_cat{
    display:inline-block;
    background:#344a84;
    color:#fff;
    padding:8px 18px;
    font-size:13px;
    margin-bottom:40px;
}

.faq_question,
.faq_answer{
    display:flex;
    align-items:flex-start;
    margin-bottom:50px;
}

.faq_mark{
    width:60px;
    height:60px;
    display:flex;
    justify-content:center;
    align-items:center;
    color:#fff;
    font-size:30px;
    font-family:"Cormorant Garamond",serif;
    flex-shrink:0;
    margin-right:30px;
}

.faq_mark.q{
    background:#344a84;
}

.faq_mark.a{
    background:#bfa275;
}

.faq_question h1{
    flex:1;
    font-size:34px;
    color:#344a84;
    line-height:1.6;
    margin-top:8px;
}

.faq_content{
    flex:1;
    line-height:2.2;
    font-size:16px;
    color:#444;
    margin-top:8px;
}

.faq_content p{
    margin-bottom:1.5em;
}

/*========================================
関連記事
========================================*/

.related_faq{
    margin-top:100px;
}

.related_faq h2{
    color:#344a84;
    font-size:30px;
    margin-bottom:35px;
}

.related_list{
    border-top:1px solid #ddd;
}

.related_item{
    display:flex;
    align-items:center;
    text-decoration:none;
    color:#344a84;
    padding:22px 0;
    border-bottom:1px solid #ddd;
    transition:.3s;
}

.related_item:hover{
    opacity:.7;
}

.related_q{
    width:40px;
    height:40px;
    background:#344a84;
    color:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:20px;
    font-family:"Cormorant Garamond",serif;
    margin-right:20px;
    flex-shrink:0;
}

.related_title{
    font-size:18px;
    line-height:1.6;
}

/*========================================
戻るボタン
========================================*/

.back_btn{
    text-align:center;
    margin-top:80px;
}

.back_btn a{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    width:280px;
    height:60px;
    background:#344a84;
    color:#fff;
    text-decoration:none;
    transition:.3s;
}

.back_btn a:hover{
    background:#24396d;
}

/*========================================
ページネーション
========================================*/

.navigation.pagination{
    margin-top:70px;
    text-align:center;
}

.navigation.pagination .nav-links{
    display:flex;
    justify-content:center;
    gap:10px;
}

.navigation.pagination a,
.navigation.pagination span{
    display:flex;
    justify-content:center;
    align-items:center;
    width:44px;
    height:44px;
    border:1px solid #344a84;
    color:#344a84;
    text-decoration:none;
}

.navigation.pagination .current{
    background:#344a84;
    color:#fff;
}

/*========================================
レスポンシブ
========================================*/

@media(max-width:768px){

.faq_archive,
.single_faq{
    padding:70px 20px;
}

.faq_category{
    justify-content:flex-start;
    gap:10px;
    margin:40px 0;
}

.faq_category a{
    padding:8px 16px;
    font-size:14px;
}

.faq_item a{
    padding:22px 0;
}

.faq_q span{
    width:40px;
    height:40px;
    font-size:18px;
    margin-right:15px;
}

.faq_q h2{
    font-size:18px;
}

.faq_question,
.faq_answer{
    gap:15px;
    margin-bottom:35px;
}

.faq_mark{
    width:45px;
    height:45px;
    font-size:22px;
    margin-right:0;
}

.faq_question h1{
    font-size:24px;
    margin-top:0;
}

.faq_content{
    margin-top:0;
    font-size:15px;
    line-height:2;
}

.related_faq{
    margin-top:70px;
}

.related_faq h2{
    font-size:24px;
}

.related_q{
    width:34px;
    height:34px;
    font-size:18px;
}

.related_title{
    font-size:16px;
}

.back_btn{
    margin-top:60px;
}

.back_btn a{
    width:100%;
    max-width:320px;
}

}

/*========================================
COLUMN ARCHIVE
========================================*/

.column_archive{

    width:100%;

    max-width:1000px;

    margin:0 auto;

    padding:100px 20px;

}


.column_page h1{

    text-align:center;

    color:#344a84;

    font-size:clamp(30px,4vw,44px);

    margin-bottom:20px;

}



.column_page h1 span{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:12px;

    font-size:15px;

    margin-top:15px;

    font-weight:400;

}



.column_page h1 span::before,
.column_page h1 span::after{

    content:"";

    width:20px;

    height:1px;

    background:#344a84;

}




.column_category_list{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:12px;

    margin:60px 0;

}


.column_category_list a{

    border:1px solid #344a84;

    color:#344a84;

    padding:8px 20px;

    text-decoration:none;

    font-size:14px;

}



.column_category_list a.current,
.column_category_list a:hover{

    background:#344a84;

    color:#fff;

}




.column_pagination{

    margin-top:70px;

    text-align:center;

}



@media(max-width:768px){


.column_archive{

    padding:70px 20px;

}


.column_category_list{

    margin:40px 0;

}


}

/*========================================
COLUMN SINGLE
========================================*/


.single_column{

    max-width:1000px;

    width:100%;

    margin:0 auto;

    padding:100px 20px;

}




.column_detail_category{

    display:inline-block;

    background:#2d4d91;

    color:#fff;

    font-size:12px;

    padding:6px 15px;

    margin-bottom:25px;

}




.column_detail_title{

    color:#344a84;

    font-size:38px;

    line-height:1.6;

    letter-spacing:.05em;

    margin-bottom:20px;

}



.column_date{

    color:#888;

    font-size:14px;

    margin-bottom:50px;

}





.column_detail_img{

    margin-bottom:60px;

}



.column_detail_img img{

    width:100%;

    height:auto;

}





.column_body{

    font-size:16px;

    line-height:2.2;

    color:#333;

}



.column_body h2{

    color:#344a84;

    font-size:28px;

    margin:60px 0 25px;

}



.column_body h3{

    font-size:22px;

    margin:40px 0 20px;

}



.column_body p{

    margin-bottom:25px;

}





/* 関連記事 */

.related_column{

    margin-top:100px;

}



.related_column h2{

    text-align:center;

    color:#344a84;

    font-size:32px;

}



.related_column h2 span{

    display:block;

    font-size:14px;

    font-weight:400;

    margin-top:10px;

}






@media(max-width:768px){


.single_column{

    padding:70px 20px;

}



.column_detail_title{

    font-size:26px;

}



.column_body{

    font-size:15px;

}



.related_column{

    margin-top:70px;

}



}


/*========================================
 PROPERTY DETAIL
========================================*/


.single_property{

    width:100%;
    max-width:1000px;
    margin:0 auto;
    padding:100px 20px;

}


/*========================================
 CATEGORY
========================================*/


.property_detail .cat_property{

    display:inline-block;

    background:#364a74;

    color:#fff;

    font-size:12px;

    padding:5px 12px;

    margin-bottom:20px;

}




/*========================================
 TITLE
========================================*/


.property_detail_title{

    color:#344a84;

    font-size:clamp(28px,4vw,40px);

    font-weight:500;

    letter-spacing:.08em;

    line-height:1.5;

    margin:0 0 50px;

}





/*========================================
 IMAGE
========================================*/

.property_gallery{

    margin-bottom:70px;

}



.property_slider_main{

    width:100%;

}



.property_slider_main img{

    width:100%;

    aspect-ratio:16 / 9;

    object-fit: contain;

    display:block;

}






/* サムネイル */

.property_slider_thumb{

    display:grid;

    grid-template-columns:repeat(6,1fr);

    gap:15px;

    margin-top:15px;

}




.property_thumb{

    padding:0;

    border:2px solid transparent;

    background:none;

    cursor:pointer;

}



.property_thumb img{

    width:100%;

    aspect-ratio:4 / 3;

    object-fit:cover;

    display:block;

}




.property_thumb.active{

    border-color:#344a84;

}






@media(max-width:768px){


.property_slider_thumb{

    grid-template-columns:repeat(3,1fr);

    gap:10px;

}


}
/*========================================
 SUMMARY
========================================*/


.property_summary{

    border-top:1px solid #ddd;

    border-bottom:1px solid #ddd;

    margin-bottom:70px;

}



.summary_row{

    display:flex;

    align-items:center;

    border-bottom:1px solid #ddd;

}



.summary_row:last-child{

    border-bottom:none;

}



.summary_row span{

    width:140px;

    padding:20px;

    background:#364a74;

    color:#fff;

    font-size:15px;

}



.summary_row strong,
.summary_row p{

    margin:0;

    padding:20px;

    color:#333;

    font-size:16px;

}





/*========================================
 PROPERTY INFO TABLE
========================================*/


.property_info{

    margin-bottom:80px;

}



.property_info h2,
.property_text h2{

    color:#344a84;

    font-size:28px;

    font-weight:500;

    letter-spacing:.08em;

    margin-bottom:30px;

}




.property_table{

    width:100%;

    border-collapse:collapse;

}



.property_table th,
.property_table td{

    border:1px solid #ddd;

    padding:18px;

    text-align:left;

}



.property_table th{

    width:180px;

    background:#f5f5f5;

    font-weight:500;

}






/*========================================
 COMMENT
========================================*/


.property_text{

    margin-bottom:80px;

    line-height:2;

    color:#444;

}






/*========================================
 CONTACT
========================================*/


.property_contact{

    text-align:center;

}



.property_contact a{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    width:300px;

    height:65px;

    background:#344a84;

    color:#fff;

    text-decoration:none;

    transition:.3s;

}



.property_contact a:hover{

    background:#233564;

}






/*========================================
 SP
========================================*/


@media(max-width:768px){


.single_property{

    padding:70px 20px;

}



.property_detail_title{

    font-size:26px;

    margin-bottom:35px;

}




.property_sub_images{

    grid-template-columns:repeat(2,1fr);

}





.summary_row{

    display:block;

}



.summary_row span{

    display:block;

    width:100%;

}



.summary_row strong,
.summary_row p{

    padding:15px;

}





.property_info h2,
.property_text h2{

    font-size:24px;

}



.property_table th{

    width:35%;

    padding:12px;

}



.property_table td{

    padding:12px;

}



.property_contact a{

    width:100%;

}



}


/*========================================
 PROPERTY ARCHIVE
========================================*/


.property_archive{

    width:100%;

    max-width:1000px;

    margin:0 auto;

    padding:100px 20px;

}



.property_archive_title{

    text-align:center;

    color:#344a84;

    font-size:40px;

    margin-bottom:60px;

}




.property_area{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:40px;

}





.property_link{

    display:block;

    color:inherit;

    text-decoration:none;

}





.property{

    display:flex;

    flex-direction:column;

    gap:15px;

    padding:15px;

    border:1px solid #ddd;

    background:#fff;

}






.property__header{

    display:flex;

    flex-direction:column;

    gap:8px;

}



.property-title{

    margin:0;

    font-size:20px;

    color:#333;

}






[class^="label-"]{

    display:inline-block;

    align-self:flex-start;

    background:#364a74;

    color:#fff;

    padding:4px 12px;

    font-size:12px;

}





.property__image-wrapper{

    aspect-ratio:16/9;

    overflow:hidden;

}





.property__image{

    width:100%;

    height:100%;

    object-fit:cover;

}





.property__details{

    display:flex;

    flex-direction:column;

    gap:10px;

}





.detail-row{

    display:flex;

    align-items:flex-start;

    gap:10px;

}



.detail-label{

    width:60px;

    flex-shrink:0;

    background:#364a74;

    color:#fff;

    padding:3px 5px;

    text-align:center;

    font-size:13px;

}



.detail-value{

    line-height:1.7;

    font-size:14px;

}





@media(max-width:768px){


.property_area{

    grid-template-columns:1fr;

}


}

/*========================================
 ASSESSMENT
========================================*/


.assessment-page{


    width:100%;

    max-width:1000px;

    margin:0 auto;

    padding:100px 20px;


}




.assessment-title{


    text-align:center;

    color:#344a84;

    font-size:40px;

    font-weight:500;

    letter-spacing:.1em;

    margin-bottom:50px;


}





.assessment-lead{


    text-align:center;

    line-height:2;

    color:#444;

    margin-bottom:60px;


}






/* 電話・FAX */

.assessment-info{


    display:flex;

    gap:30px;

    margin-bottom:50px;


}



.assessment-tel,
.assessment-fax{


    flex:1;

    background:#f5f6f8;

    padding:35px;

    text-align:center;


}



.assessment-tel span,
.assessment-fax span{


    display:block;

    color:#344a84;

    font-size:14px;

    margin-bottom:15px;


}




.assessment-tel a{


    font-size:36px;

    color:#344a84;

    text-decoration:none;

    font-weight:bold;


}




.assessment-fax p{


    font-size:28px;

    color:#344a84;

    margin:0;


}






/* PDF */

.assessment-pdf{


    text-align:center;

    margin-bottom:70px;


}



.assessment-pdf a{


    display:inline-flex;

    align-items:center;

    justify-content:center;


    width:350px;

    height:60px;


    background:#344a84;

    color:#fff;

    text-decoration:none;


}





/* フォーム */

.assessment-form{


    border-top:1px solid #ddd;

    padding-top:70px;


}







@media(max-width:768px){



.assessment-info{


    display:block;


}



.assessment-tel,
.assessment-fax{


    margin-bottom:20px;


}



.assessment-tel a{


    font-size:28px;


}



.assessment-title{


    font-size:28px;


}


}

/*========================================
 CONTACT FORM 7
 無料査定フォーム
========================================*/

.assessment-form{

    border-top:1px solid #ddd;

    padding-top:60px;

}



.assessment-form-inner{

    width:100%;

}





/* 見出し */

.assessment-form-inner h3{

    position:relative;

    color:#344a84;

    font-size:22px;

    font-weight:500;

    letter-spacing:.08em;

    margin:60px 0 30px;

    padding-left:18px;

}



.assessment-form-inner h3::before{

    content:"";

    position:absolute;

    left:0;

    top:50%;

    transform:translateY(-50%);

    width:5px;

    height:24px;

    background:#344a84;

}


.note-box {
  background-color: #f8f9fa; /* 薄いグレー（サイトに合わせて変更可） */
  padding: 12px 16px;
  margin-bottom: 20px;
  border-radius: 4px;
}

.note-box p {
  margin: 0;
  font-size: 18px;
  color: #333333;
  line-height: 1.6;
}

.note-box strong {
  color: #d9534f; /* 強調したい部分の色（赤系など）にする場合 */
}


/* 行 */

.assessment-form-inner .form-row{

    display:flex;

    align-items:center;

    gap:30px;

    margin-bottom:25px;

}





/* ラベル */

.assessment-form-inner label{

    width:220px;

    flex-shrink:0;

    color:#333;

    font-size:15px;

    font-weight:500;

}



.assessment-form-inner label span{

    background:#344a84;

    color:#fff;

    font-size:10px;

    padding:3px 6px;

    margin-left:8px;

}





/* 入力共通 */

.assessment-form-inner input[type="text"],
.assessment-form-inner input[type="email"],
.assessment-form-inner input[type="tel"],
.assessment-form-inner textarea,
.assessment-form-inner select{


    width:100%;

    height:52px;

    padding:0 15px;

    border:1px solid #ddd;

    background:#fff;

    font-size:15px;

    color:#333;

    box-sizing:border-box;

}





.assessment-form-inner textarea{

    height:160px;

    padding:15px;

}







/* select */

.assessment-form-inner select{


    max-width:400px;


    padding-right:45px;


    cursor:pointer;


    appearance:none;

    -webkit-appearance:none;


    background-image:

    linear-gradient(45deg, transparent 50%, #344a84 50%),

    linear-gradient(135deg, #344a84 50%, transparent 50%);


    background-position:

    calc(100% - 20px) 22px,

    calc(100% - 14px) 22px;


    background-size:

    7px 7px,

    7px 7px;


    background-repeat:no-repeat;


}





/*========================================
 土地・建物
========================================*/


.property-box{

    border:1px solid #ddd;

    padding:25px;

    margin:20px 0 30px;

}



.property-box h4{

    color:#344a84;

    font-size:18px;

    font-weight:500;

    margin:0 0 20px;

}



.property-box p{

    display:flex;

    align-items:center;

    gap:15px;

    margin:15px 0;

}



.property-box input{

    width:250px!important;

}







/*========================================
 radio checkbox
========================================*/

.assessment-form-inner .wpcf7-radio,
.assessment-form-inner .wpcf7-checkbox{

    display:flex;

    flex-wrap:wrap;

    gap:20px;

    background:#fff;

    padding:0;

}



.assessment-form-inner .wpcf7-list-item{

    display:flex;

    align-items:center;

    margin:0;

    padding:0;

    background:none;

}



.assessment-form-inner input[type="radio"],
.assessment-form-inner input[type="checkbox"]{

    width:auto;

    height:auto;

    margin:0 8px 0 0;
 accent-color:#344a84;


}



.assessment-form-inner .wpcf7-list-item-label{

    color:#333;

    font-size:15px;

}


/*========================================
 CF7 radio / checkbox 背景リセット
========================================*/


.assessment-form-inner .wpcf7-radio,
.assessment-form-inner .wpcf7-checkbox,
.assessment-form-inner .wpcf7-list-item,
.assessment-form-inner .wpcf7-list-item-label{

    background:none !important;

}



.assessment-form-inner .wpcf7-list-item{

    padding:0 !important;

    margin:0 25px 10px 0 !important;

    border:none !important;

}





.assessment-form-inner .wpcf7-radio label,
.assessment-form-inner .wpcf7-checkbox label{

    background:none !important;

    color:#333;

}





.assessment-form-inner input[type="radio"],
.assessment-form-inner input[type="checkbox"]{

    background:none !important;

}




/*========================================
 FILE
========================================*/


.assessment-form-inner input[type="file"]{

    width:100%;

    padding:15px;

    border:1px dashed #aaa;

    background:#fafafa;

}







/*========================================
 SUBMIT
========================================*/


.submit-area{

    text-align:center;

    margin:70px 0;

}



.submit-area input[type="submit"]{

    width:300px;

    height:65px;

    border:none;

    background:#344a84;

    color:#fff;

    font-size:16px;

    letter-spacing:.1em;

    cursor:pointer;

    transition:.3s;

}



.submit-area input[type="submit"]:hover{

    background:#233564;

}








/*========================================
 SP
========================================*/


@media(max-width:768px){


.assessment-page{

    padding:70px 20px;

}



.assessment-title{

    font-size:28px;

}



.assessment-info{

    display:block;

}



.assessment-tel,
.assessment-fax{

    margin-bottom:20px;

}



.assessment-tel a{

    font-size:28px;

}



.assessment-form-inner .form-row{

    display:block;

}



.assessment-form-inner label{

    display:block;

    width:100%;

    margin-bottom:10px;

}



.assessment-form-inner select{

    max-width:100%;

}



.property-box p{

    display:block;

}



.property-box input{

    width:100%!important;

    margin-top:8px;

}



.submit-area input[type="submit"]{

    width:100%;

}


}


/* ===========================
   固定お問い合わせ
=========================== */

.floating-contact{

    position:fixed;
    left:0;
    bottom:0;

    width:100%;

    display:flex;

    z-index:9999;

    background:#fff;

    border-top:1px solid #ddd;

    box-shadow:0 -6px 20px rgba(0,0,0,.12);

}

.contact-btn{

    width:50%;

    height:80px;

    display:flex;

    justify-content:center;
    align-items:center;

    gap:14px;

    text-decoration:none;

    transition:.3s;

}

.contact-btn i{

    font-size:30px;

}

.contact-btn .text{

    display:flex;

    flex-direction:column;

}

.contact-btn .sub{

    font-size:16px;

    letter-spacing:.08em;
margin:0;
 padding:0;
    opacity:.8;
line-height:1.5;
}

.contact-btn .main{

    font-size:24px;

    font-weight:700;
margin:0;
 padding:0;
line-height:1.5;

}

.line{

    background:#06C755;

    color:#fff;

}

.line:hover{

    background:#03a64b;

}

.contact{

    background:#1C355E;

    color:#fff;

}

.contact:hover{

    background:#294d85;

}



/* ===========================
   PC
=========================== */

@media(min-width:769px){

.floating-contact{

    width:520px;

    right:30px;

    left:auto;

    bottom:30px;

    border-radius:12px;

    overflow:hidden;

    border:none;

}

.contact-btn{
    padding: 0 10px;
 height:80px;
}

}
/* ===========================
  はるかだからできることNEW
=========================== */
.bg-slideshow{
 position:absolute;    
    top:0;
    left:0;
    width:100%;
    height:100%;
    z-index:0;           
    overflow:hidden;
    background:#f5efe9;
  }
 
.bg-slideshow img{
position:absolute;
    top:0;                
    left:0;
    width:100%;
    height:100%;        
    object-fit:cover;
    object-position:top;
    opacity:0;
    animation:bgFade 24s infinite;
}
  .bg-slideshow img:nth-child(1){animation-delay:0s;}
  .bg-slideshow img:nth-child(2){animation-delay:8s;}
  .bg-slideshow img:nth-child(3){animation-delay:16s;}
  @keyframes bgFade{
    0%{opacity:0;}
    8%{opacity:1;}
    33%{opacity:1;}
    41%{opacity:0;}
    100%{opacity:0;}
  }
  @media (prefers-reduced-motion: reduce){
    .bg-slideshow img{animation:none; opacity:0;}
    .bg-slideshow img:first-child{opacity:1;}
  }

  .bg-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
  }
  @media (max-width:760px){
    .bg-grid{grid-template-columns:repeat(2, 1fr); gap:16px;}
    .bg-card{padding:28px 14px 24px;}
    .icon-badge{width:64px; height:64px; margin-bottom:16px;}
    .icon-badge img{width:30px; height:30px;}
    .title-en{font-size:15px; margin-bottom:12px;}
    .desc{font-size:12.5px; line-height:1.9;}
  }
  .bg-card{
    background:#f2e9e2;
    border:1px solid #d8c3b3;
    border-radius:6px;
    padding:44px 28px 36px;
    text-align:center;
    opacity:0;
    transform:translateY(14px);
    animation:rise .6s ease forwards;
  }
  .bg-card:nth-child(1){animation-delay:.02s}
  .bg-card:nth-child(2){animation-delay:.10s}
  .bg-card:nth-child(3){animation-delay:.18s}
  .bg-card:nth-child(4){animation-delay:.26s}
  .bg-card:nth-child(5){animation-delay:.34s}
  .bg-card:nth-child(6){animation-delay:.42s}
  @keyframes rise{
    to{opacity:1; transform:translateY(0);}
  }
  @media (prefers-reduced-motion: reduce){
    .bg-card{animation:none; opacity:1; transform:none;}
  }
  .icon-badge{
    width:100px;
    height:100px;
    margin:0 auto 22px;
    border-radius:50%;
    background:#efe2d8;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .icon-badge img{
    width:63px;
    height:80px;
    object-fit:contain;
  }
.title-en{
    font-style: italic;
    font-size: 19px;
    letter-spacing: .02em;
    color: #5a4636;
    margin: 0 0 18px;
  }

  /* 頭文字のスタイル設定 */
  .title-en::first-letter {
    font-size: 1.5em; /* 全体の文字サイズに対する倍率（お好みで調整してください） */
    font-weight: bold; /* 必要に応じて太字にする場合 */
    color: #25396e;
  }


  .divider{
    width:34px;
    height:1px;
    background:#d8c3b3;
    margin:0 auto 18px;
  }
  .desc{
    font-size:16px;
    line-height:1.8;
	font-weight:500;
    color:#625043;
    margin:0;

  }


/* =====================================================
一般売却の方へ
===================================================== */
.gnl-page{
    line-height:1.85;
  }
  .gnl-page *{box-sizing:border-box;}
  .gnl-page h2, .gnl-page h3, .gnl-page .gnl-serif{
    font-family:"Shippori Mincho", serif;
    letter-spacing:.02em;
  }
  .gnl-page a{color:inherit;}
  .gnl-page img, .gnl-page svg{display:block;max-width:100%;}
  .gnl-wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
  .gnl-eyebrow{
    font-size:.78rem;
    letter-spacing:.28em;
    color:#3f74ac;
    font-weight:700;
    margin:0 0 14px;
  }
  .gnl-eyebrow.gnl-light{color:#9fc3e6;}

  /* ---------- sections ---------- */
  .gnl-page section.gnl-block{padding:96px 0;}
  .gnl-page section.gnl-block.gnl-alt{background:#f3f0ea;}
  .gnl-sec-head{max-width:640px; margin:0 0 48px;}
  .gnl-sec-head h2{font-size:1.6rem; color:#0a1c33; margin:0; display:flex; align-items:center; gap:16px;}
  
  /* セクション説明文の共通クラス */
  .gnl-sec-desc {
    color: #4a5563;
    font-size: .92rem;
    margin-top: 10px;
    margin-bottom: 0;
  }

  .gnl-num-seal{
    flex:none; width:52px; height:52px; border-radius:50%;
    border:1.5px solid #b3924f; position:relative;
    display:flex; align-items:center; justify-content:center;
    font-family:"Shippori Mincho",serif; color:#122d52; font-size:1.05rem; font-weight:700;
  }
  .gnl-num-seal::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid #b3924f; opacity:.55;}

  .gnl-card-pair{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
  .gnl-card{
    background:#fff; border:1px solid #d9dee6; padding:32px; position:relative;
  }
  .gnl-card.gnl-blue{background:#e8f0f8; border-color:#cfe0f0;}
  .gnl-card h3{margin:0 0 14px; font-size:1.08rem; color:#0a1c33; line-height:1.6;}
  .gnl-card p{margin:0; color:#4a5563; font-size:.94rem;}
  .gnl-tag{
    display:inline-block; font-size:.72rem; font-weight:700; color:#2f5d8c;
    letter-spacing:.08em; margin-bottom:10px;
  }

  /* reins diagram + callout */
  .gnl-reins-row{display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center;}
  
  .gnl-reins-lead {
    font-weight: 700;
    color: #0a1c33;
    margin: 0 0 12px;
  }
  .gnl-reins-text {
    color: #4a5563;
    font-size: .94rem;
    margin: 0;
  }

  .gnl-reins-row .gnl-callout{
    background:#0a1c33; color:#e7eefb; padding:34px 32px; margin-top:26px;
    border-left:3px solid #b3924f;
  }
  .gnl-reins-row .gnl-callout p{margin:0; font-size:.95rem; color:#cbd8ea;}
  .gnl-reins-row .gnl-callout strong{color:#fff;}
  .gnl-diagram-wrap{background:#fff; border:1px solid #d9dee6; padding:28px; text-align:center;}
  
  .gnl-diagram-caption {
    font-size: .78rem;
    color: #4a5563;
    margin: 14px 0 0;
  }

  /* case accordion ) */
 .gnl-case-item{
    border:1px solid #cfe0f0; background:#fff; margin-bottom:8px;
  }
  .gnl-case-btn{
    width:100%; text-align:left; background:none; border:none; cursor:pointer;
    display:flex; align-items:center; gap:12px; padding:24px 16px 0 16px;
    font-size:20px; font-weight:700; color:#1c232c; line-height:1.4;
  }
  .gnl-case-btn .gnl-case-no{
    color:#122d52; font-size:16px;
    border:1px solid #122d52; border-radius:50%; width:26px; height:26px;
    flex:none; display:flex; align-items:center; justify-content:center;
  }
  .gnl-case-btn .gnl-chev{margin-left:auto; transition:transform .2s ease; color:#122d52; font-size:14px;}
  .gnl-case-item[data-open="true"] .gnl-chev{transform:rotate(180deg);}
  .gnl-case-body{
    max-height:0; overflow:hidden; transition:max-height .28s ease;
    background:#e8f0f8;
  }
  .gnl-case-item[data-open="true"] .gnl-case-body{max-height:200px;}
  .gnl-case-body-inner{padding:12px 16px; font-size:14px; color:#4a5563; text-align:left; line-height:1.6;}
  .gnl-case-body-inner .gnl-label{color:#122d52; font-weight:bold; font-size:18px; display:block; margin-bottom:2px;}
  .gnl-case-body-inner p{margin:0 0 6px;}
  .gnl-case-body-inner p:last-child{margin-bottom:0;}

  /* section 04 lists */
#gnl-support{padding:5% 0 0 0;}
  .gnl-support-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
  .gnl-support-grid h3{color:#0a1c33; font-size:1.05rem; margin:0 0 18px; border-bottom:1px solid #d9dee6; padding-bottom:12px;}
  .gnl-support-grid ul{margin:0; padding:0; list-style:none;}
  .gnl-support-grid li{
    padding:12px 0 12px 26px; border-bottom:1px dashed #d9dee6;
    color:#4a5563; font-size:.92rem; position:relative; text-align:left;
  }
  .gnl-support-grid li::before{
    content:""; position:absolute; left:2px; top:20px; width:10px; height:1.5px; background:#b3924f;
  }
  .gnl-support-grid li:last-child{border-bottom:none;}

  /* timeline */
  .gnl-timeline{position:relative; margin-top:10px;}
  .gnl-timeline::before{
    content:""; position:absolute; left:27px; top:6px; bottom:6px; width:1px; background:#d9dee6;
  }
  .gnl-step{display:grid; grid-template-columns:56px 1fr; gap:24px; padding-bottom:44px; position:relative;}
  .gnl-step:last-child{padding-bottom:0;}
  .gnl-step-num{
    width:54px; height:54px; border-radius:50%; background:#0a1c33; color:#fff;
    display:flex; align-items:center; justify-content:center; font-family:"Shippori Mincho",serif;
    font-size:1.15rem; font-weight:700; z-index:1;
  }
  .gnl-step-body h3{margin:0 0 8px; color:#0a1c33; font-size:1.02rem;}
  .gnl-step-body p{margin:0; color:#4a5563; font-size:.92rem;}

  /* Media Queries */
  @media (max-width:820px){
    .gnl-card-pair, .gnl-reins-row, .gnl-support-grid{grid-template-columns:1fr;}
    .gnl-page section.gnl-block{padding:64px 0;}
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .gnl-reveal{opacity:1; transform:none; transition:none;}
  }


/* =====================================================
プライバシーポリシー
===================================================== */

.privacypolicy_area{
            line-height: 1.8;
            color: #333;
        }

.privacypolicy_area h2{
            font-size: 1.2em;
            color: #2c3e50;
            margin-top: 2em;
            padding: 0.5em;
            border-left: 4px solid #2c3e50;
            background-color: #f8f9fa;
        }


.privacypolicy_area  ul {
        text-align: left;
        list-style-type: disc;
        padding-left: 40px;
        margin-bottom: 1em;
    }
.privacypolicy_area  ul ul {
        list-style-type: circle;
    }
.privacypolicy_area li {
        margin-bottom: 0.5em;
    }
        
        .privacy-policy_contact-info {
            background-color: #f8f9fa;
            padding: 20px;
            border: 1px solid #dee2e6;
            margin-top: 20px;
        }
 

/* =====================================================
下層ページ　一般売却の方へ
===================================================== */
/* =========================================================
   一般ページ共通
========================================================= */

.general {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

section.general {
    padding: 80px 20px;
}

/* 見出し */
h2.general {
    position: relative;
    margin: 0 0 50px;
    padding-bottom: 18px;
    text-align: center;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.5;
    color: #333;
}

h2.general::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 60px;
    height: 4px;
    transform: translateX(-50%);
    background: #8b6b3f;
}


/* =========================================================
   お悩み
========================================================= */

.general-trouble-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 1000px;
    margin: 0 auto;
}

.general-trouble-item {
    display: flex;
    align-items: center;
    min-height: 100px;
    padding: 20px 25px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.06);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    color: #333;
}

.general-trouble-item img {
    width: 50px;
    height: 50px;
    margin-right: 18px;
    flex-shrink: 0;
}


/* =========================================================
   HARUKAが選ばれる4つの理由
========================================================= */

.general-reasons-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.general-reason-card {
    padding: 35px 25px;
    border: 1px solid #ddd;
    border-radius: 12px;
    background: #fff;
    text-align: center;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.05);
}

.general-reason-card img {
    display: block;
    width: 90px;
    height: 90px;
    margin: 0 auto 25px;
    object-fit: contain;
}

.general-reason-card h3 {
    margin: 0 0 15px;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    color: #333;
}

.general-reason-card p {
    margin: 0;
    font-size: 17px;
    line-height: 1.8;
    color: #555;
}


/* =========================================================
   レインズ
========================================================= */

.general-reins-box {
    max-width: 1000px;
    margin: 0 auto;
    padding: 40px;
    border-radius: 12px;
    background: #9ba8cb;
}

.general-reins-box > p {
    margin: 0 0 30px;
    font-size: 21px;
    line-height: 1.7;
    color: #333;
}

.general-reins-img-wrap {
    max-width: 900px;
    margin: 0 auto 30px;
    text-align: center;
}

.general-reins-img-wrap img {
    display: block;
    width: 100%;
    max-width: 900px;
    height: auto;
    margin: 0 auto;
}

.general-highlight-box {
    padding: 25px 30px;
    border-left: 5px solid #8b6b3f;
    background: #fff;
    font-size: 19px;
    font-weight: 600;
    line-height: 1.8;
    color: #333;
	text-align:left;
}


/* =========================================================
   よくある営業手法 / HARUKA
========================================================= */

.general-comparison-table {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    border-collapse: collapse;
    table-layout: fixed;
    background: #fff;
}

.general-comparison-table th,
.general-comparison-table td {
    padding: 25px 30px;
    border: 1px solid #ddd;
    vertical-align: middle;
}

.general-comparison-table thead th {
    background: #555;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    text-align: center;
}

.general-comparison-table thead .general-haruka-th {
    background: #8b6b3f;
}

.general-comparison-table tbody td {
    width: 50%;
    font-size: 18px;
    line-height: 1.6;
}

.general-case-title {
    position: relative;
    padding-left: 28px;
    font-weight: 600;
    color: #444;
	text-align:left;
}

.general-case-title::before {
    content: "×";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    font-weight: 700;
    color: #c44;
}

.general-haruka-ans {
    position: relative;
    padding-left: 28px;
    font-weight: 700;
    color: #8b6b3f;
	text-align:left;
}

.general-haruka-ans::before {
    content: "○";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 21px;
    font-weight: 700;
    color: #8b6b3f;
}


/* =========================================================
   売却の流れ
========================================================= */

.general-steps-container {
    max-width: 900px;
    margin: 0 auto;
}

.general-step-box {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 35px;
    align-items: center;
    position: relative;
    padding: 30px 35px;
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 12px;
    background: #f6f5fa;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.05);
}

.general-step-icon-area {
    position: relative;
    text-align: center;
}

.general-step-icon-area img {
    display: block;
    width: 90px;
    height: 90px;
    margin: 0 auto;
    object-fit: contain;
}


.general-step-box h3 {
    margin: 0 0 12px;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    color: #333;
}

.general-step-box p {
    margin: 0;
    font-size: 18px;
    line-height: 1.8;
    color: #555;
}


/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 1024px) {

    section.general {
        padding: 65px 20px;
    }

    h2.general {
        font-size: 30px;
        margin-bottom: 40px;
    }

    .general-trouble-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .general-reasons-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .general-reason-card {
        padding: 30px 20px;
    }

    .general-step-box {
        grid-template-columns: 150px 1fr;
        gap: 25px;
    }
}


/* =========================================================
   スマートフォン
========================================================= */

@media screen and (max-width: 767px) {

    section.general {
        padding: 55px 15px;
    }

    h2.general {
        margin-bottom: 32px;
        padding-bottom: 14px;
        font-size: 26px;
        line-height: 1.5;
    }

    h2.general::after {
        width: 50px;
        height: 3px;
    }


    /* お悩み */
    .general-trouble-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .general-trouble-item {
        min-height: 80px;
        padding: 15px 18px;
        font-size: 18px;
    }

    .general-trouble-item img {
        width: 42px;
        height: 42px;
        margin-right: 15px;
    }


    /* 4つの理由 */
    .general-reasons-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .general-reason-card {
        display: grid;
        grid-template-columns: 75px 1fr;
        column-gap: 18px;
        padding: 22px 18px;
        text-align: left;
    }

    .general-reason-card img {
        grid-row: 1 / 3;
        width: 70px;
        height: 70px;
        margin: 0 auto;
    }

    .general-reason-card h3 {
        margin: 0 0 8px;
        font-size: 19px;
    }

    .general-reason-card p {
        font-size: 16px;
        line-height: 1.7;
    }


    /* レインズ */
    .general-reins-box {
        padding: 25px 15px;
    }

    .general-reins-box > p {
        margin-bottom: 20px;
        font-size: 18px;
        line-height: 1.7;
    }

    .general-highlight-box {
        padding: 20px;
        font-size: 17px;
        line-height: 1.8;
		text-align: left;
    }


    /* 比較表 */
    .general-comparison-table {
        font-size: 16px;
    }

    .general-comparison-table th,
    .general-comparison-table td {
        padding: 18px 12px;
    }

    .general-comparison-table thead th {
        font-size: 17px;
        line-height: 1.5;
    }

    .general-comparison-table tbody td {
        font-size: 16px;
        line-height: 1.6;
    }

    .general-case-title,
    .general-haruka-ans {
        padding-left: 23px;
    }

    .general-case-title::before,
    .general-haruka-ans::before {
        font-size: 18px;
    }


    /* 売却の流れ */
    .general-steps-container {
        width: 100%;
    }

    .general-step-box {
        grid-template-columns: 1fr;
        gap: 18px;
        padding: 25px 20px;
        text-align: center;
    }

    .general-step-icon-area img {
        width: 75px;
        height: 75px;
    }

    .general-step-badge {
        margin-top: 8px;
        font-size: 13px;
    }

    .general-step-box h3 {
        margin-bottom: 10px;
        font-size: 21px;
    }

    .general-step-box p {
        font-size: 17px;
        line-height: 1.8;
        text-align: left;
    }
}


/* =========================================================
   小型スマートフォン
========================================================= */

@media screen and (max-width: 480px) {

    section.general {
        padding: 45px 12px;
    }

    h2.general {
        font-size: 23px;
    }

    .general-trouble-item {
        font-size: 17px;
    }

    .general-reason-card {
        grid-template-columns: 60px 1fr;
        column-gap: 14px;
    }

    .general-reason-card img {
        width: 58px;
        height: 58px;
    }

    .general-reason-card h3 {
        font-size: 18px;
    }

    .general-reason-card p {
        font-size: 15px;
    }

    .general-comparison-table th,
    .general-comparison-table td {
        padding: 15px 9px;
    }

    .general-comparison-table thead th {
        font-size: 15px;
    }

    .general-comparison-table tbody td {
        font-size: 15px;
    }

    .general-case-title,
    .general-haruka-ans {
        padding-left: 20px;
    }

    .general-step-box {
        padding: 22px 16px;
    }

    .general-step-box h3 {
        font-size: 20px;
    }

    .general-step-box p {
        font-size: 16px;
    }
}

/* ==========================================================
   シニア層向け 文字サイズ・可読性調整
   ※既存デザインを大きく崩さず、本文・補助文字を中心に拡大
   ========================================================== */

/* 基本文字サイズ */
html {
    font-size: 18px;
}

body {
    font-size: 18px;
    line-height: 1.9;
}

/* 本文 */
p,
li,
dd,
dt {
    font-size: 18px;
    line-height: 1.9;
}

/* ナビゲーション */
.nav-list {
    font-size: 18px;
}

.accordion li a {
    font-size: 17px;
    line-height: 1.8;
}

/* ヘッダー内ボタン */
.header_btn_text {
    font-size: 18px;
}

/* CTAボタン */
.cta-btn,
.cta-btn02 {
    font-size: 20px;
    line-height: 1.6;
}

/* FV */
.fv-content p {
    font-size: 1.35rem;
    line-height: 1.9;
}

.btn-assessment {
    font-size: 20px;
    line-height: 1.6;
}

/* HARUKAだからできること */
.top_selection01 .catch {
    font-size: 20px;
    line-height: 1.8;
}

.text-content p {
    font-size: 19px;
    line-height: 2;
}

/* 弁護士事務所向け */
.intro p {
    font-size: 18px;
    line-height: 2;
}

.intro h2 .en,
.cases-title h2 .en,
.top_generalreal h2 .en,
.top_voice h2 .en,
.top_property h2 .en {
    font-size: 17px;
}

.service-col h4 {
    font-size: 21px;
}

.service-col ul {
    font-size: 17px;
    line-height: 2;
}

.service-col ul i{
	color:#9a7845;
}
.flow-tag {
    font-size: 18px;
}

.flow-problem,
.flow-solution {
    font-size: 17px;
    line-height: 1.9;
}

.value-eyebrow {
    font-size: 15px;
}

.value-balloon h3 {
    line-height: 1.8;
}

.value-col p {
    font-size: 19px;
    line-height: 2;
}

.closing-copy p {
    font-size: 16px;
    line-height: 2;
}

/* 一般売却 */
.generalreal_item {
    font-size: clamp(24px, 2vw, 42px);
    line-height: 1.7;
}

/* 理由・メッセージ */
.top_reasonarea h2 span,
.top_news h2 span,
.top_column h2 span {
    font-size: 18px;
}

.top_message_txt p {
    font-size: 1.15rem;
    line-height: 2.2;
}

/* お客様の声 */
.cat_lawyer,
.cat_general {
    font-size: 15px;
    line-height: 1.5;
}

.voice-header h3 {
    font-size: 24px;
    line-height: 1.7;
}

.voice_author {
    font-size: 17px;
}

.voice_description {
    font-size: 18px;
    line-height: 2;
}

/* 物件情報 */
.label-中古物件 {
    font-size: 15px;
}

.property-title {
    font-size: 19px;
    line-height: 1.7;
}

.property__details {
    font-size: 17px;
    line-height: 1.8;
}

.slider-btn {
    font-size: 24px;
}

/* NEWS */
.news_date,
.news_title {
    font-size: 22px;
    line-height: 1.8;
}

/* COLUMN */
.column_category {
    font-size: 14px;
    line-height: 1.5;
}

.column_title {
    font-size: 19px;
    line-height: 1.8;
}

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

/* お問い合わせ */
.footer_contact_text {
    font-size: 22px;
    line-height: 1.8;
}

.footer_contact_time {
    font-size: 19px;
}

.footer_contact_label {
    font-size: 14px;
}

.footer_contact_btn {
    font-size: 20px;
    line-height: 1.7;
}


/* ==========================================================
   スマホ：シニア層向けにさらに読みやすく
   ========================================================== */
@media screen and (max-width: 768px) {

    body {
        font-size: 18px;
        line-height: 1.9;
    }

    p,
    li,
    dd,
    dt {
        font-size: 18px;
        line-height: 1.9;
    }

    .nav-item {
        font-size: 19px;
        padding: 18px 20px;
    }

    .header_btn_text {
        height: 56px;
        font-size: 19px;
    }

    .cta-btn,
    .cta-btn02 {
        font-size: 18px;
        padding: 18px 28px;
    }

    .fv-content p {
        font-size: 18px;
        line-height: 1.9;
    }

    .btn-assessment {
        font-size: 19px;
        padding: 18px 30px;
    }

    .top_selection01 .catch {
        font-size: 19px;
    }

    .text-content {
        padding: 25px 22px;
    }

    .text-content p {
        font-size: 18px;
        line-height: 2;
    }

    .intro p {
        font-size: 17px;
        line-height: 2;
    }

    .service-col h4 {
        font-size: 20px;
    }

    .service-col ul {
        font-size: 17px;
        line-height: 2;
    }

    .flow-tag {
        font-size: 18px;
    }

    .flow-problem,
    .flow-solution {
        font-size: 17px;
        line-height: 1.9;
    }

    .value-col p {
        font-size: 18px;
        line-height: 2;
    }

    .closing-copy p {
        font-size: 16px;
        line-height: 2;
    }

    .top_message_txt p {
        font-size: 18px;
        line-height: 2.1;
    }

    .voice-header h3 {
        font-size: 20px;
        line-height: 1.7;
    }

    .voice_author {
        font-size: 16px;
    }

    .voice_description {
        font-size: 17px;
        line-height: 2;
    }

    .property-title {
        font-size: 18px;
    }

    .property__details {
        font-size: 17px;
    }

    .news_date {
        font-size: 18px;
    }

    .news_title {
        font-size: 18px;
        line-height: 1.9;
    }

    .column_category {
        font-size: 14px;
    }

    .column_title {
        font-size: 17px;
        line-height: 1.9;
    }

    .column_text {
        font-size: 15px;
        line-height: 2;
    }

    .footer_contact_text {
        font-size: 19px;
        line-height: 1.9;
    }

    .footer_contact_time {
        font-size: 18px;
    }

    .footer_contact_label {
        font-size: 16px;
    }

    .footer_contact_btn {
        font-size: 19px;
        padding: 20px;
    }
}


/* 極端に小さい文字を防止 */
@media screen and (max-width: 768px) {
    .cat_lawyer,
    .cat_general,
    .label-中古物件,
    .column_category {
        font-size: 14px;
    }
}
