:root {
  --brand-dark:#0b3754;
  --panel:#ffffff;
  --ink:#0f172a;
  --muted:#64748b;
  --bg:#f1f5f9;
  --radius:14px;
  --shadow:0 8px 24px rgba(2,6,23,.08);
}
	
body {
  margin: 0;
  font-family: system-ui, -apple-system, "Noto Sans JP", sans-serif;
  line-height: 1.6;
  overflow-x: hidden;
}
.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
}
header {
  position: sticky;
  top: 0;
  background: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
  z-index: 10;
}
	
.logo img{
  width: 200px;
}

.hero {
  position: relative;
  width: 100%;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
}

/* 768px以下でSP画像に切替 */
@media (max-width: 768px){
  .hero{
    min-height: 60vh;
  }
}

.hero::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.4);
  z-index: -1;
}
.hero h1 {
  font-size: clamp(28px, 5vw, 56px);
  margin: 0;
}
.hero p {
  font-size: clamp(16px, 2.5vw, 20px);
  margin: 10px 0 20px;
}
.cta, .submit_btn{
  display:inline-block;
  color:#fff;
  padding:12px 24px;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
  /* 緑グラデ（左上→右下） */
  background: linear-gradient(135deg, #b8e986 0%, #7ad26b 50%, #51b46a 100%);
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
  transition: transform .06s ease, box-shadow .2s ease, filter .2s ease;
}
.cta:hover, .submit_btn:hover{
  filter: brightness(1.03);
  box-shadow: 0 8px 20px rgba(0,0,0,.16);
}
.cta:active, submit_btn:active{
  transform: translateY(1px);
}

.submit_btn{
  width:100%;
  font-size:125%;
}

.section {
  padding: 60px 20px;
}
	
/* FAQ */
.faq{background:var(--bg)}
.section-title{font-size:clamp(22px,3.6vw,36px);text-align:center;margin:0 0 24px}
.faq__list{display:grid;gap:18px}
details.faq__item{border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;background:#e2e8f0;border:1px solid #dbe3ea;transition:box-shadow .3s ease}
.faq__summary{list-style:none;margin:0;cursor:pointer;background:var(--brand-dark);color:#fff;padding:18px 56px 18px 20px;font-weight:800;letter-spacing:.01em;position:relative}
.faq__summary::-webkit-details-marker{display:none}
.faq__summary::after{content:"＋";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-weight:900;transition:transform .3s ease}
details[open] .faq__summary::after{content:"−"}

.faq__content{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease}
details[open] .faq__content{padding:18px 20px;max-height:500px;background:var(--panel);color:var(--ink)}
.faq__content p{margin:0}
.note{color:var(--muted);font-size:.95rem}

.grid{display:grid;gap:16px;grid-template-columns:repeat(1,minmax(0,1fr))}
@media(min-width:720px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.card{background:#fff;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.card__img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}
.card__body{padding:16px}
.card__title{margin:0 0 8px;font-weight:700}
.card__text{color:var(--muted);margin:0}

	
/* ==== Access Section styles ==== */
.access-section { padding: clamp(32px, 4vw, 56px) 0; }
.access-title {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 700; letter-spacing: .04em; margin: 0 0 16px;
}

/* 2カラム: 左=地図 / 右=情報カード */
.map-grid {
  display: grid; gap: 24px;
  grid-template-columns: 1fr; align-items: start;
}
@media (min-width: 960px) {
  .map-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
}

/* タブ */
.map-tabs {
  display: inline-flex; border: 1px solid #e5e7eb; border-radius: 999px; padding: 4px;
  background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 4px 10px rgba(0,0,0,.04);
  margin-bottom: 12px;
}
.map-tab {
  appearance: none; border: 0; background: transparent; cursor: pointer;
  padding: 8px 14px; border-radius: 999px; font-weight: 600; font-size: 14px;
}
.map-tab.is-active { background: #0ea5e9; color: #fff; }

/* 地図のアスペクト比を固定してiframeをフィット */
.map-embed {
  position: relative; width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}
.map-frame {
  position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: none;
}
.map-frame.is-active { display: block; }
.map-note { font-size: 12px; color: #6b7280; margin-top: 8px; }

/* 情報カード */
.map-cards { display: grid; gap: 16px; }
.addr-card {
  background: #fff; border: 1px solid #eef2f7; border-radius: 16px;
  padding: 18px; box-shadow: 0 6px 18px rgba(0,0,0,.05);
}
.addr-card h3 { margin: 0 0 8px; font-size: 18px; }
.addr-card p { margin: 6px 0; line-height: 1.7; }
.addr-card a { color: #0ea5e9; text-underline-offset: 3px; }
.addr-card.is-hidden { display: none; }

/* ルートボタン */
.btn-route {
  display: inline-block; margin-top: 10px; font-weight: 700;
  padding: 10px 14px; border-radius: 12px; border: 1px solid #0ea5e9;
}
.btn-route:hover { background: #0ea5e9; color: #fff; }

/* ダーク背景に載せても映えるように */
:where(.dark) .addr-card { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
:where(.dark) .map-tabs { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }

/* Company Section */
.company {
  padding-block: clamp(48px, 6vw, 88px);
}

.company__header {
  text-align: left;
  margin-bottom: clamp(20px, 3vw, 32px);
}

.company__card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 16px;
  padding: clamp(20px, 3vw, 32px);
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

.company__brand {
  display: grid;
  grid-template-columns: 64px 1fr;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.company__logo {
  width: 64px;
  height: 64px;
  object-fit: contain;
}

.company__name {
  font-weight: 700;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: .02em;
}

.company__list {
  display: grid;
  gap: 12px;
  margin: 0;
}

.company__row {
  display: grid;
  grid-template-columns: minmax(96px, 180px) 1fr;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid rgba(0,0,0,.06);
}

.company__row:first-child {
  border-top: none;
}

.company__row dt {
  font-weight: 600;
  color: #333;
}

.company__row dd {
  margin: 0;
  color: #222;
  line-height: 1.8;
}

.company__map {
  display: inline-block;
  margin-top: 4px;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 768px) {
  .company__row {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 12px 0;
  }
  .company__brand {
    grid-template-columns: 48px 1fr;
    gap: 12px;
  }
  .company__logo {
    width: 48px; height: 48px;
  }
}

.point{
  font-size:85%;
  color:#FFF;
  display:inline-block;
  padding:0.2em 0.5em;
  background-color:#ff6300;
  border-radius:0.2em;
}

/* セクション全体の背景色（薄いグレー例） */
#voices {
  background-color: #f9f0e6;
  padding: 60px 0;
}

/* カードの枠を消して、背景も透過に */
#voices .card {
  border: none;
  background: transparent;
  box-shadow: none;
}

/* 各ボイスを読みやすいように白背景でカード風に */
#voices .card__body {
  background: #fff;
  padding: 24px;
  border-radius: 8px;
}
.voice__header img{
  max-width:100px;
}

.responsive-img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* 2カラム固定用（SP=1, タブレット以上=2で固定） */
.grid--2col {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .grid--2col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* PCでも2のまま維持 */
@media (min-width: 1024px) {
  .grid--2col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* フォーム */
.linx-formtext{
  width: 90%;
  padding: 12px !important;
  border: 1px solid #5b5b5b;
  border-radius: 10px;
  background-color:#fff;
  margin-top:0.5em;
  font-size:1em;
}
.must {
  display: inline-block;
  background-color: crimson;
  color: #FFF;
  padding: 0 0.7em 0 0.7em;
  font-size: 0.8em;
  border-radius: 3px;
  vertical-align: bottom;
}
.must2 {
  display: inline-block;
  background-color: #E67E22;
  color: #FFF;
  padding: 0 0.7em 0 0.7em;
  font-size: 0.8em;
  border-radius: 3px;
  vertical-align: bottom;
}
#wpcf7-f354-p1038-o1 {
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.ss_privacy {
  padding: 0.5em;
  border: 1px solid #e5e5e5;
  height: 110px;
  overflow: auto;
  color: #333333;
  background-color: #EFEFEF !important;
  word-break: break-all;
  margin-bottom: 1.5em;
}
	
footer{
  background-color:#666;
  color:#EFEFEF;
  padding:1em;
}
	
.eyecatch_cta {
  display: block;
  text-align: center;
  padding: 0 5%;
}

.eyecatch_cta img {
  display: inline-block;
  max-width: 90%;
  height: auto;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.eyecatch_cta:hover img {
  transform: translateY(2px) scale(0.97);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2) inset;
}

form{
  padding:1em;
}

/* .containerと同じ見え方に揃える（内側幅1240px＋左右20px） */
.hero > div{
  max-width: 1240px;
  padding: 0 20px;
  margin: 0 auto;
  box-sizing: border-box;
  text-align: center;
}

#cta { scroll-margin-top: 160px; }
	
.hero{
  position: relative;
  z-index: 0;
  width: 100%;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
}
.hero > div{
  position: relative;
  z-index: 1;
}

/* 背景レイヤー（PC既定） */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url('https://linx-osaka.co.jp/lp/wp-content/uploads/2025/09/LINX_LP_TOP_v2_back_1000x500.jpg')
              center / contain no-repeat;
  background-color: #FFF;
}

/* オーバーレイ（薄い黒幕） */
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index: 0;
  background: rgba(0,0,0,.4);
}

/* 768px以下でSP画像に切替 */
@media (max-width: 768px){
  .hero{ 
    min-height: 90vh; 
  }
  .hero::before{
    background: url('https://linx-osaka.co.jp/lp/wp-content/uploads/2025/09/LINX_LP_TOP_v2_SP_back_765x860.jpg')
                center top / cover no-repeat;
    background-position: top center;
  }
}

/* デフォルトは0px、SPは-40pxだけ上に */
.hero { --hero-shift-y: 200px; }
.hero > div { position:relative; top: var(--hero-shift-y); }

@media (max-width:768px){
  .hero { --hero-shift-y: 180px; }
}
/* hero内のテキスト共通：白文字にドロップシャドウ */
.hero h1,
.hero p {
  text-shadow: 0 2px 6px rgba(0,0,0,0.6);
}

/* スマホサイズだけ文字を小さめに */
@media (max-width: 768px) {
  .hero h1 { font-size: clamp(20px, 6vw, 32px); }
  .hero p { font-size: clamp(14px, 4vw, 16px); }
}
/* Heroの暗幕を無効化 */
.hero::after{
  background: transparent !important;
}

/* ベース変数（未定義対策のフォールバック） */
:root{
  --accent:#16a34a;
  --brand-ink:#0a2a55;
  --ink:#0f172a;
  --shadow:0 10px 30px rgba(2,6,23,.08);
}

/* セクション周り（既存命名と整合） */
.section{ padding: 56px 0; }
.section--alt{ background: #f8fafc; }
/*.container{ width:min(1200px,100%); margin:0 auto; padding:0 20px; }*/
.section__title, .section-title{ 
  font-size: clamp(1.4rem, 2.2vw, 1.8rem); 
  margin:0 0 12px; 
  color: var(--brand-ink);
  font-weight: 800;
}
.muted{ color:#64748b; margin:0 0 20px; }

/* Replaced block: 安心できる理由 */
.reason{
  display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:28px;
}
.reason-item{
  display:flex; align-items:flex-start; gap:14px; background:#fff;
  border:1px solid rgba(2,6,23,.06); border-radius:12px; padding:18px; box-shadow:var(--shadow);
}
.reason-icon{
  flex:0 0 28px; height:28px; border-radius:50%;
  display:grid; place-items:center; font-weight:900; color:#fff; background:var(--accent);
  line-height: 1; font-size: 0.95rem;
}
.reason-body h3{ margin:0 0 6px; font-size:1.08rem; color:var(--brand-ink); font-weight:800; }
.reason-body p{ margin:0; color:var(--ink); }

/* モバイル：1カラム */
@media (max-width: 768px){
  .reason{ grid-template-columns:1fr; gap:16px; }
  .reason-item{ padding:16px; }
}

/* ---- はみ出し対策・置き換え版 ---- */
.reason{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
  gap: 24px;
  margin-top: 28px;
}

.reason-item{
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #fff;
  border: 1px solid rgba(2,6,23,.06);
  border-radius: 12px;
  padding: 18px;
  box-shadow: var(--shadow);
  overflow: hidden;
}

.reason-body{
  min-width: 0;
}
.reason-body p{
  margin: 0;
  color: var(--ink);
  overflow-wrap: anywhere;
  word-break: break-word;
}

.reason-icon{
  flex: 0 0 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 900;
  color: #fff;
  background: var(--accent);
  line-height: 1;
  font-size: .95rem;
}

@media (max-width: 768px){
  .reason{ gap: 16px; }
  .reason-item{ padding: 16px; }
}

@media (max-width: 768px){
  .reason{ grid-template-columns: 1fr; gap:16px; }
  .reason-item{ padding:16px; }
}

#seminar-list {
  overflow-x: hidden;
}

#seminar-list .container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
  box-sizing: border-box;
}
#seminar-list .section__title{font-size:clamp(20px,2.2vw,28px);margin:0 0 6px;}
#seminar-list .section__lead{color:#64748b;margin:0 0 22px;}

.seminar-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.seminar-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:14px; overflow:hidden;
  box-shadow:0 8px 24px rgba(2,6,23,.06);
  display:flex; flex-direction:column; height:100%;
}
.seminar-thumb{display:block; aspect-ratio:16/10; background:#f1f5f9; overflow:hidden;}

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

.seminar-card:hover .seminar-thumb img{transform:scale(1.03);}
.seminar-body{padding:16px 16px 18px; display:flex; flex-direction:column; gap:10px; flex:1;}
.seminar-title{font-size:18px; margin:0;}
.seminar-desc{margin:0; color:#475569; font-size:14px; line-height:1.7;}
.seminar-actions{margin-top:auto; display:flex; gap:10px; flex-wrap:wrap;}
.btn{
  display:inline-block; text-decoration:none; font-weight:700; border-radius:999px;
  padding:10px 16px; line-height:1; border:1px solid transparent; text-align:center;
  transition:transform .02s ease, background .2s ease, color .2s ease, border-color .2s ease;
  user-select:none; -webkit-user-select:none;
}
.btn:active{transform:translateY(1px);}
.btn--primary{background:#0b5dc5; color:#fff; border-color:#0b5dc5;}
.btn--primary:hover{filter:brightness(1.05);}
.btn--outline{background:#fff; color:#0b5dc5; border-color:#0b5dc5;}
.btn--outline:hover{background:#f0f6ff;}
@media (max-width:480px){
  .seminar-title{font-size:16px}
  .seminar-desc{font-size:13px}
}
/* 既存の .hero::before の背景指定は削除 or 打ち消し */
.hero::before { content: none !important; }

.hero{
  position: relative;
  margin: 0;
}

.hero picture, .hero img{
  display: block;
  width: 100%;
  height: auto;
}

.hero picture{ aspect-ratio: 2 / 1; }

@media (min-width: 768px){
  .hero picture{ max-height: 80vh; }
}

/* CTAセクション */
.cta-block {
  background: #fff;
  text-align: center;
  padding: clamp(32px, 7vw, 72px) 0;
}

.cta-block__actions {
  display: flex;
  justify-content: center;
}

/* 画像ボタン */
.btn-cta-img img {
  display: block;
  max-width: 714px;
  width: 100%;
  height: auto;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
  box-shadow: 0 6px 18px rgba(0,0,0,.2);
  border-radius: 12px;
  cursor: pointer;
}

.btn-cta-img:hover img {
  transform: translateY(3px) scale(0.98);
  box-shadow: 0 3px 10px rgba(0,0,0,.3) inset;
  filter: brightness(1.03);
}

.btn-cta-img:active img {
  transform: translateY(5px) scale(0.97);
  box-shadow: 0 5px 12px rgba(0,0,0,.35) inset;
  filter: brightness(.98);
}

.cta-section{ padding: 1.5em 0; }

.reviews {
  padding: 60px 20px;
  background: #f9fafb;
}
.section-title {
  text-align: center;
  font-size: 1.8rem;
  margin-bottom: 40px;
}
.review-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.review-card {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  text-align: center;
}
.review-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 15px;
}
.review-rating {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 1rem;
}
.stars {
  color: #fbbf24;
  font-size: 1.1rem;
}
.score {
  font-weight: bold;
  color: #374151;
}
.review-comment {
  font-size: 0.95rem;
  color: #374151;
  margin-bottom: 12px;
}
.review-date {
  font-size: 0.8rem;
  color: #6b7280;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .review-grid { grid-template-columns: 1fr; }
}

/* ===============================
   top_leadセクション背景（全幅・常時表示）
   =============================== */
.section.top_lead {
  position: relative;
  z-index: 2;
  margin-top: 24px;
  background: 
    url("https://linx-osaka.co.jp/lp/wp-content/uploads/2025/10/container_bg-1.jpg")
    center / cover no-repeat;
  background-attachment: scroll;
  width: 100%;
}

.section.top_lead .container {
  position: relative;
  z-index: 2;
  background: transparent;
  padding: 60px 20px;
  box-shadow: none;
  overflow: hidden;
  max-width: 1280px;
  margin: 0 auto;
}

.section.top_lead .section-title,
.section.top_lead .section__lead {
  position: relative;
  z-index: 3;
}

/* ========== Heroとのかぶり防止 ========== */
@media (min-width:1200px){
  .hero {
    position: relative;
    z-index: 0;
    padding-bottom: 40px;
    margin-bottom: 0 !important;
  }
}

/* ===== top_lead内 実績カード ===== */
.section.top_lead .stat-cards{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 18px;
}

.section.top_lead .stat-card{
  background: rgba(255,255,255,.78);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  border: 1px solid rgba(2,6,23,.08);
  box-shadow: var(--shadow);
  padding: 18px 16px;
  text-align: center;
}

.section.top_lead .stat-card__value{
  font-weight: 800;
  letter-spacing: .02em;
  line-height: 1.1;
  color: var(--brand-ink, #0b3754);
  font-size: clamp(24px, 4.4vw, 40px);
}

.section.top_lead .stat-card__prefix{
  font-weight: 800;
  margin-right: 2px;
}

.section.top_lead .stat-card__unit{
  font-size: .6em;
  margin-left: 4px;
  font-weight: 700;
  opacity: .85;
}

.section.top_lead .stat-card__label{
  margin-top: 8px;
  font-size: clamp(12px, 1.7vw, 14px);
  color: var(--muted, #64748b);
  font-weight: 700;
}

@media (max-width: 960px){
  .section.top_lead .stat-cards{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px){
  .section.top_lead .stat-cards{ grid-template-columns: 1fr; }
}

.company__photo {
  margin-top: 32px;
  text-align: center;
}

.company__photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
  box-shadow: 0 6px 20px rgba(0,0,0,0.08);
}

/* ========== SALE CASE 既存 ========== */
#sale_case .container {
  display: flex;
  justify-content: center;
}

#sale_case img.responsive-img {
  max-width: 500px;
  width: 100%;
  height: auto;
  z-index: 0;
  display: block;
  margin: 0 auto;
}

/* 1200px以上で重なり防止 */
@media (min-width: 1200px) {
  #sale_case { margin-top: 100px; }
}

/* ==== SALE CASE 2カラム＆CTA（追記・修正版） ==== */
#sale_case {
  padding: 60px 20px;
  background-color: #f9fafb;
}

#sale_case .salecase-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: center;
}

/* 画像：既存 max-width:500px を上書き */
#sale_case .salecase-image img.responsive-img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: var(--shadow);
  max-width: 100% !important; /* 強制上書き */
}

/* テキスト＋ボタン（ボタン中央寄せ） */
#sale_case .salecase-text {
  max-width: 600px;
  line-height: 1.8;
  font-size: 1.05rem;
  text-align: center;
}
#sale_case .salecase-text p {
  margin-bottom: 1.2em;
  text-align: left;
}

/* CTAボタン（既存ctaトーンに合わせた緑グラデ） */
#sale_case .salecase-btn {
  display: inline-block;
  margin: 30px auto 0;
  padding: 14px 32px;
  border-radius: 8px;
  font-weight: 700;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(135deg, #b8e986 0%, #7ad26b 50%, #51b46a 100%);
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
  transition: transform .2s ease, filter .2s ease;
}
#sale_case .salecase-btn:hover {
  filter: brightness(1.03);
  transform: translateY(-2px);
}

/* 1200px以上で2カラム＆画像50%・テキスト50% */
@media (min-width: 1200px) {
  #sale_case .salecase-container {
    flex-direction: row;
    align-items: center;
    gap: 60px;
  }
  #sale_case .salecase-image {
    flex: 0 0 50%;
    max-width: 50%;
  }
  #sale_case .salecase-text {
    flex: 0 0 50%;
    max-width: 50%;
  }
}


/* ==== SALE CASE 上書き（2カラム切替を1000px以上＆画像50%） ==== */

/* 画像の幅系は列幅に従わせる（既存 max-width:500px を強制解除） */
#sale_case .salecase-image img.responsive-img {
  max-width: 100% !important;
  width: 100%;
  height: auto;
}

/* 1000px以上で2カラムにし、左右を50%ずつに固定 */
@media (min-width: 1000px) {
  #sale_case .salecase-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 60px;
    max-width: 1200px;
    margin: 0 auto;
  }

  /* 左右のカラム幅を明示的に50%固定 */
  #sale_case .salecase-image {
    flex: 0 0 50%;
    max-width: 50%;
  }
  #sale_case .salecase-text {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
/* ==== SALE CASE：1000px以上で画像65％、Heroとの重なり防止 ==== */

/* Heroとの間隔（全画面で有効） */
#sale_case {
  margin-top: 120px; /* Hero画像と被らないように余白を追加 */
}

/* デフォルトは100%（SP・タブレット） */
#sale_case .salecase-image img.responsive-img {
  width: 100%;
  height: auto;
  max-width: 100%;
}

/* 1000px以上：2カラム時のみ画像65%に縮小 */
@media (min-width: 1000px) {
  #sale_case .salecase-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 60px;
    max-width: 1200px;
    margin: 0 auto;
  }

  /* カラム幅は50%だが、画像自体は65%縮小 */
  #sale_case .salecase-image {
    flex: 0 0 50%;
    max-width: 50%;
    text-align: center; /* 画像を中央寄せ */
  }
  #sale_case .salecase-image img.responsive-img {
    width: 65%;
    height: auto;
  }

  /* 右側テキスト */
  #sale_case .salecase-text {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
/* ==== SALE CASE：2カラム(>=1000px)時は画像を65%に、重なり防止も ==== */

/* Heroと被らないように余白（必要に応じて数値調整） */
#sale_case { margin-top: 140px; }

/* 2カラム化のブレークポイントを1000pxに固定（後勝ちで上書き） */
@media (min-width: 1000px) {
  #sale_case .salecase-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 60px;
    max-width: 1200px;
    margin: 0 auto;
  }
  #sale_case .salecase-image { flex: 0 0 50%; max-width: 40%; }
  #sale_case .salecase-text  { flex: 0 0 50%; max-width: 60%; }

  /* ← ここが肝：2カラム時だけ画像を65%に強制 */
  #sale_case .salecase-image img.responsive-img {
    width: 400px !important;     /* 既存の width:100% を確実に打ち消す */
    max-width: none !important; /* max-width:100% の影響も外す */
    height: auto;
    display: block;
    margin: 0 auto;             /* 65%幅の画像を中央寄せ */
  }
}
/* ===== モバイルのHeroと直下余白を締める（最終上書き） ===== */

/* スマホ〜タブレット(〜999px)：高さを抑え、ズラし無効化、内側パディングだけ確保 */
@media (max-width: 999px) {
  .hero {
    min-height: 56vh !important; /* 60vh/90vh を最終上書き */
    --hero-shift-y: 0 !important; /* 下ズラしを解除 */
    padding: 16px 0 24px;         /* 上下の見た目調整 */
  }
  .hero > div { top: 0 !important; } /* 実移動もゼロに */
  
  /* Hero直下の #sale_case の余白を小さく（被り防止はPCだけでOK） */
  #sale_case { margin-top: 24px !important; }
}

/* PC(1000px〜)：2カラム＆被り防止の広め余白をキープ */
@media (min-width: 1000px) {
  #sale_case { margin-top: 140px !important; } /* お好みで120〜160に調整可 */
  
  /* 2カラム時の画像は親カラムの中で65%に縮小（確実に上書き） */
  #sale_case .salecase-image img.responsive-img {
    width: 400px !important;
    max-width: none !important;
    height: auto;
    display: block;
    margin: 0 auto;
  }
}




/* ====== 動画グリッド ====== */
.video-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 720px) {
  .video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1000px) {
  .video-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* 各動画カード */
.video-card {
  display: block;
  margin: 0;
  box-sizing: border-box;
}

/* 16:9固定フレーム */
.video-frame {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--shadow, 0 8px 24px rgba(2,6,23,.08));
}

/* iframeを全体にフィットさせる */
.video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* タイトル */
.video-title {
  margin: .6rem 0 0;
  font-weight: 700;
  font-size: 1rem;
  text-align: center;
  line-height: 1.4;
  color: var(--ink, #0f172a);
}



/* ===== Voices 下段の動画2本（≥1000px:2カラム / <1000px:1カラム） ===== */
#voices .voice-videos {
  margin-top: 28px;
}

#voices .video-grid-voices{
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 1000px){
  #voices .video-grid-voices{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

#voices .video-grid-voices > *{ min-width: 0; }

#voices .video-card{
  margin: 0;
  box-sizing: border-box;
}

/* 16:9固定・横長埋め込み */
#voices .video-frame{
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--shadow, 0 8px 24px rgba(2,6,23,.08));
}

#voices .video-frame iframe{
  position: absolute;
  inset: 0;       /* top/right/bottom/left: 0 */
  width: 100%;
  height: 100%;
  border: 0;
  display: block; /* 余計なインライン間隔対策 */
}

/* ===== 不動産投資フェア福岡バナー ===== */
.fair-banner {
  text-align: left;
  background: #f9fafb;
}

.fair-banner .section-title {
  text-align: center;
  margin-bottom: 24px;
}

.fair-banner p {
  max-width: 720px;
  margin: 0 auto 0.9em;
  color: var(--ink);
}

.fair-banner__actions {
  text-align: center;
  margin-top: 16px;
}

/* 既存 .btn/.btn--primary をベースに、少し大きめのボタンに */
.btn-fair {
  min-width: 220px;
  padding: 12px 28px;
  font-size: 15px;
  box-shadow: var(--shadow);
}


#after-expo-seminar {
  padding-top: 60px;
  padding-bottom: 60px;
  background: #ffffff;
}

#after-expo-seminar .section__lead {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.8;
  font-size: 1.05rem;
}

#after-expo-seminar .card {
  border: 1px solid #e5e7eb;
  border-radius: var(--radius, 14px);
  box-shadow: var(--shadow, 0 8px 24px rgba(2,6,23,0.08));
  overflow: hidden;
}

#after-expo-seminar .card__img {
  width: 100%;
  height: auto;
  display: block;
}

#after-expo-seminar .card__title {
  font-size: 1.4rem;
  margin-bottom: 16px;
}

#after-expo-seminar .btn {
  padding: 12px 24px;
  font-size: 1rem;
  border-radius: 10px;
}

@media (max-width: 767px) {
  #after-expo-seminar {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  #after-expo-seminar .section__lead {
    font-size: 0.95rem;
    line-height: 1.7;
    padding: 0 10px;
  }

  #after-expo-seminar .card__title {
    font-size: 1.2rem;
  }

  #after-expo-seminar .btn {
    width: 100%;
    text-align: center;
  }
}

/* 東京開催セミナーのカードをセンター揃えにする */
#after-expo-seminar .grid {
  display: flex;
  justify-content: center;
}

#after-expo-seminar .card {
  max-width: 480px;
  width: 100%;
}

#materials .wp-block-image img {
  display: block;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 auto;
}
#why-osaka h3 {
  border-bottom: 3px solid #0b3754;
  padding-bottom: 8px;
  margin-bottom: 20px;
}

