@charset "utf-8";
/* CSS Document */

/* =====================
   Design Tokens
===================== */
:root {
  --c-green: #0062b2;     /* 主要カラー */
  --c-green-2: #2f8fda;   /* アクセント */
  --c-deep: #0a3f73;      /* 濃色 */
  --c-text: #1b2a3a;      /* 本文 */
  --c-muted: #6b7a8c;     /* 補助 */
  --c-surface: #ffffff;   /* 面 */
  --c-bg: #f3f8fc;        /* ページ背景の淡色 */
  --radius: 16px;
  --shadow: 0 10px 30px rgba(10, 35, 66, .12);
  --container: 1300px;
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
font-family: "Noto Sans JP", sans-serif;
color: var(--c-text);
  background: #fff;
  line-height: 1.8;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
.container { width: var(--container); margin-inline: auto; }

/* header only: 1300px + rounded bar */
.site-header .container { width: 1300px; }

html{scroll-behavior:smooth}


/* =====================
   Header / Global Nav
===================== */
.site-header {
  position: sticky;
  top: 38px;
  z-index: 30;
  background: transparent;
  border-bottom: 0;
}

.header-inner {
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: #fff;
  border-radius: 10px;
  box-shadow: var(--shadow);
  padding-inline: 20px;
}

.brand {
  display: block;
  width: 340px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.brand img { width: 100%; border-radius: 10px; }

.brand .title { font-weight: 800; letter-spacing: .02em; }

nav.primary { display: flex; align-items: center; gap: 0px; }

nav.primary a { padding: 15px 12px; border-radius: 3px;font-size: 16px;}

/* nav: green dot bullets */
nav.primary a.nav-item::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--c-green);
  margin-right: 4px;
  vertical-align: middle;
}

/* nav: join pill with beginner mark */
nav.primary a.join {
  background: #eef2f5;
  color: #1f2937;
  border-radius: 3px;
  padding: 16px 14px;
  margin: 0 10px;
}
nav.primary a.join::before {
  content: "";
  background: url("./images/ic-beginner.svg");
  width: 16px;
  height: 16px;
  margin-right: 4px;
  vertical-align: middle;
  display: inline-block;
}

.join--contact::before {
  content: "";
  background: url("./images/ic-tel.svg");
  width: 16px;
  height: 16px;
  margin-right: 4px;
  vertical-align: middle;
  display: inline-block;
}


.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 400;
  border: 1px solid transparent;
}
.btn-green { background: var(--c-green); color: #fff; }
.btn-green:hover { filter: brightness(1.05); }



/* =====================
   Hero
===================== */
.hero {
  position: relative;
  isolation: isolate;
  height: 1200px;
  min-height: auto;
  margin-top: -84px;
  padding-top: calc(38px + 84px + 120px);
  padding-bottom: 0;
  background: #c7cdd6 url("./images/mv.jpg") center/cover no-repeat;
}

.hero-wrap {
  position: relative;
  height: 100%;
  display: block;
  overflow: visible;
}

.hero-photo { display: none; }

.hero-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("https://images.unsplash.com/photo-1582719478250-c89cae4dc85b?q=80&w=1920&fit=crop") center/cover no-repeat;
  opacity: .88;
}

.hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.35), rgba(0,0,0,0) 56%);
}

.hero-copy { position: relative; }

.hero-copy-inner {
  width: 100%;
  max-width: 1100px;
  color: #fff;
  text-align: left;
  margin-bottom: 190px;
}

.hero-copy h1 {
  margin: 0 0 14px;
  font-size: 48px;
  line-height: 1.8;
  font-weight: 400;
  color: #fff;
  text-shadow: 0 4px 18px rgba(131, 157, 194, .38);
overflow: hidden;
  white-space: nowrap;
	letter-spacing: 3px;
}

.hero-copy h1 .char {
  display: inline-block;
  opacity: 0;
  transform: translateY(14px);
  animation: rise .7s ease-out forwards;
	
}

@keyframes rise { to { opacity: 1; transform: translateY(0); } }

.hero-copy p { display: none; }

/* 新着情報カード（ヒーロー下にオーバーラップ） */
.news-board {
  position: absolute;
  left: 0;
  right: 0;
  top: 590px;
  margin-top: 0;
  z-index: 5;
  display: block;
}

.news-card {
  width: 100%;
  background: #fff;
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 25px;
  border: 1px solid #eef2f6;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  z-index: 5;
  position: relative;
  height: 500px;
  overflow-y: scroll;
}

.news-head {
  display: flex;
  flex-direction: column;
  gap: 0px;
  margin: 0;
  padding-right: 8px;
	text-align: center;
	padding-top: 30px;
}

.news-head h2{
  font-size: 32px;
  line-height: 1.4;
  margin: 0;
  font-weight: 400;
  color: #1f3344;
}


.news-head .en { color: var(--c-green); font-weight: 400; font-size: 16px; letter-spacing: 1px; }

.news-list { display: grid; gap: 12px; }

.news-item {
  display: grid;
  grid-template-rows: auto auto auto;
  gap: 6px;
  padding: 20px 0;
  border-radius: 0;
  border: none;
  background: transparent;
  border-top: 1px solid #e5e7eb;
}

.news-item time { color: #334155; }

.tag {
  display: inline-grid;
  place-items: center;
  padding: 3px 8px;
  border-radius: 0;
  background: var(--c-green);
  color: #fff;
  font-weight: 500;
  font-size: .9rem;
}

.news-item a {
  text-decoration: none;
  color: #2263b5;
  font-size: 16px;
  border-bottom: 1px dotted #2263b5;
}

.news-item h3 { margin: 0; font-size: 1rem; line-height: 1.6; font-weight: 500; }

.news-desc {
  margin: 0;
  color: var(--c-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.news-meta { display: flex; align-items: center; gap: 12px; }
.news-title { font-weight: 700; }


/* =====================
   About Section（地図＋テキスト）
===================== */
.about {
  position: relative;
  padding: 80px 0;
  background: #f9f7f5;
}

.about .grid {
  position: relative;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 50px;
  align-items: flex-start;
  background: url(./images/feature-bg.svg) center right/contain no-repeat;
}


.pref-mask {
width: 580px;
}

/* ゆるいカーブ背景 */


/* 見出し下のグラデ下線 */
.about .title-wrap {
  position: relative;
  display: block;
  width: 100%;
  margin-bottom: 12px;
}

.about .title-wrap::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  bottom: -6px;
  height: 1px;
  border-radius: 0;
  background: linear-gradient(
    90deg,
    #00549a 0%,
    #b7daf4 100%
  );
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, .75) 12%,
    rgba(0, 0, 0, 1) 50%,
    rgba(0, 0, 0, .75) 88%,
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, .75) 12%,
    rgba(0, 0, 0, 1) 50%,
    rgba(0, 0, 0, .75) 88%,
    transparent 100%
  );
}
.about .title-wrap div {
font-family: "Klee One", cursive;
font-size: 30px;

padding-bottom: 20px;
margin-bottom: 40px;
}
.about .title-wrap h2 {
font-family: "Kosugi Maru", sans-serif;
font-size: 47px;
color: #18231d;
letter-spacing: 3px;
font-weight: 400;
margin-bottom: 46px;
}

.about p { margin: 0; font-size: 18px; line-height: 2.2;}

/* =====================
   Cards（上段3・下段2レイアウト）
===================== */
.cards {
padding: 70px 0 0;
	background: #f9f5f0;

}

/* 枠：カード全体を一つの角丸で囲む */
.cards > .container {
  background: #fff;
  border-radius: 16px;
  padding: 24px 24px;
}

.card-grid--row1 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 28px;
}

/* 1行目：本文の右に縦罫線（最後のカードは除く） */
.card-grid--row1 > .card:nth-child(-n+2) .body { border-right: 1px solid #e5e7eb; }

.card-grid--row2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 6px;
}

/* 2行目：各カードの上に横罫線 */
.card-grid--row2 > .card { border-top: 1px solid #e5e7eb; padding-top: 18px; }

.card {
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}

.card img { aspect-ratio: 4/3; object-fit: cover; border-radius: 16px; }

.card .body { padding: 16px 18px; position: relative; }

.card h3 { margin: 0 0 8px; font-size: 1.08rem; }

.card h3 a {
  text-decoration: none;
  color: #0f1f1a;
  display: inline-flex;
  align-items: center;
  gap: 10px;
	color: var(--c-text);
	font-size: 20px;
	font-family: "Kosugi Maru", sans-serif;
	font-weight: 400;
}

.card h3 a::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background-color: var(--c-green);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 12h10"/><path d="M12 7l5 5-5 5"/></svg>');
}

.card p { margin: 0; color: var(--c-text); font-size: 16px; }

/* 下段の左右分割カード */
.card--split { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; }
.card--split img { height: 100%; aspect-ratio: auto; }
.card--split .body { display: flex; flex-direction: column; justify-content: center; }

/* ===================== */

/* =====================
   Contact Band
===================== */
.contact-band { background: #f9f5f0; padding: 60px 0;}

.contact-card {
  background: #fff;
  border-radius: 16px;
  padding: 26px 32px;
}

.contact-flex {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1fr;
  align-items: center;
  gap: 32px;
}

/* 区切り線（縦） */
.contact-flex > .col { position: relative; }

.contact-flex > .col.sep::after {
  content: "";
  position: absolute;
  right: -16px;
  top: 10%;
  bottom: 10%;
  width: 1px;
  background: #e6e9ec;
}

/* 左カラム（見出し） */
.contact-title { font-size: 32px; line-height: 1.3; font-weight: 400; margin: 0; 	font-family: "Kosugi Maru", sans-serif;}
.contact-sub { color: var(--c-green); font-weight: 400; font-size: 20px; letter-spacing: 1px; }
.contact-note { color: var(--c-text); margin-top: 10px; }

/* 中央カラム（電話） */
.contact-mid-label { color: var(--c-text); margin-bottom: 6px; font-size: 18px; }
.contact-tel { font-size: 30px; font-weight: 500; color: var(--c-green); text-align: center;}
.contact-tel small { color: var(--c-text); font-weight: 400; margin-right: 8px; font-size: 18px;}

/* 右カラム（ボタン） */
.contact-actions { display: flex; justify-content: flex-end; }

/* 右カラムは中央寄せ */
.contact-right .contact-actions { justify-content: center; }

/* 左右カラムのテキストセンタリング */
.contact-left .contact-title,
.contact-left .contact-sub,
.contact-left .contact-note { text-align: center; }

.contact-mid .contact-mid-label { text-align: center; }

.contact-mail-label { color: var(--c-text); margin-bottom: 6px; font-size: 18px; text-align: center;}

.btn-contact {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 28px;
  background: var(--c-green);
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
}

.btn-contact::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background: #cbe7d2;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 12h10"/><path d="M12 7l5 5-5 5"/></svg>');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;
}

/* ===================== */

/* =====================
   Footer（波形と下部写真）
===================== */
.footer-top { position: relative; padding: 60px 0 0; background: #f9f5f0; }

.footer-wrap{
display:flex;align-items:center;justify-content:space-between;gap:30px;
}


.footer-links {
  display: flex;
  flex-direction: column;
  gap: 0;
  color: #476a57;
  width: 160px;
}

.footer-links a {
  display: block;
  padding: 8px 0 8px 16px;
  color: #1f2d24;
  position: relative;
}

.footer-links a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-green);
}

.footer-cta{
display:flex;gap:20px;align-items:center
}

.footer-join{
font-size: 20px;
display:inline-flex;
align-items:center;
gap:8px;padding:36px 24px;border-radius:8px;background:#fff;color:#1f2937;text-decoration:none;width:190px;justify-content:center;
}

.footer-join span::before {
  content: "";
  background: url("./images/ic-beginner.svg");
  width: 20px;
  height: 20px;
  margin-right: 6px;
  vertical-align: middle;
  display: inline-block;
}

.footer-member{
font-size: 20px;
display:inline-flex;align-items:center;padding:36px 24px;border-radius:8px;background:var(--c-green);color:#fff;text-decoration:none;width:190px;justify-content:center
}



.footer-visual {
  position: relative;
  overflow: hidden;
  width: 100%;
  background: #f9f5f0 url(./images/footer-bg.jpg) center/cover no-repeat;
  z-index: 10;
	height: 800px;
}



.footer-visual .bg-wave {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100%;
  transform: translateX(-50%);
  background: #cfe7dc; /* 波型の上端（可変幅対応） */
  clip-path: polygon(
    0% 24%, 20% 44%, 40% 18%, 60% 38%, 80% 22%, 100% 34%,
    100% 100%, 0% 100%
  );
}

.footer-visual .photo-hill {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 68vw;
  height: 100%;
  background: url("https://images.unsplash.com/photo-1618590468068-04c82d1c7a35?q=80&w=1920&fit=crop") center 70%/cover no-repeat;
  z-index: 1;
  /* 右側が盛り上がる山形のマスク（近似）。必要に応じてトリミング済み画像に差替え可 */
  -webkit-clip-path: ellipse(85% 95% at 100% 100%);
  clip-path: ellipse(85% 95% at 100% 100%);
}

.copyright {
  background: #0062b2;
  color: #fff;
  text-align: center;
  padding: 100px 0;
  font-size: 16px;
}

/* 小さな装飾 */
.dot { width: 6px; height: 6px; border-radius: 50%; background: var(--c-green); display: inline-block; margin-inline: 6px; }

/* === Footer left: mascot above, address below (vertical) === */
.footer-left { display: block; width: 220px; }
.footer-logo { width: 100%; display: flex; justify-content: center;margin-bottom: 20px;}
.footer-logo img { display: inline-block; width: 177px; }

/* footer widths */
.footer-cta {
  width: 500px;
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
}
.footer-join, .footer-member {
  width: 240px;
  text-align: center;
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
}

.news-head .en { font-size: 18px; }
.news-item:first-child { border-top: 0; }

.addr{
text-align: left;
font-size:15px;
}

/* 下段の左右分割カード：画像と本文の距離を詰める */
.card--split {
  column-gap: 12px;               /* 画像-本文の間隔（デフォは0だが視覚的に近づける） */
  grid-template-columns: auto 1fr; /* 画像幅に合わせて本文を左へ寄せやすく */
	  align-items: start;            /* もとの center → 上寄せ */
}

.card--split .body {
  padding: 0 10px 0 8px;          /* 左余白を最小化（既存 16px→8px） */
	  justify-content: flex-start;   /* もとの center → 上寄せ */
}

/* 画像のにじみ防止＆レイアウト安定（任意） */
.card--split img {
  display: block;
  border-radius: 16px;
}


/* お問い合わせフォームの文字ウェイト */
.btn-contact { font-weight: 400; }

/* カードの矢印：背景はそのまま、矢印は白に戻す */
.card h3 a::after {
  background-color: var(--c-green); /* 元の背景色に戻す */
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 12h10"/><path d="M12 7l5 5-5 5"/></svg>');
}

/* お問い合わせボタンの矢印だけ #0062b2 に変更 */
.btn-contact::after {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%230062b2" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 12h10"/><path d="M12 7l5 5-5 5"/></svg>');
}







/* =====================
   Responsive Additions (append to the end)
   既存CSSは触らず、このブロックを末尾に追記してください
===================== */

/* 汎用：PCのみの改行 <br class="pc"> を制御 */
.pc{display:none;}
@media (min-width:768px){.pc{display:inline;}}

/* コンテナを可変幅化（デスクトップの見た目は維持） */
.container{
  max-width: var(--container);
  width: min(92vw, var(--container));
}

/* ヘッダー調整（スマホ） */
@media (max-width: 1024px){
  .site-header{ top: 0; }
  .header-inner{
    height: 72px;
    border-radius: 0;
    padding-inline: 12px;
    gap: 12px;
  }
  .brand{ width: 190px; }
  nav.primary{
    gap: 6px;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }
  nav.primary::-webkit-scrollbar{ display:none; }
  nav.primary a{ padding: 10px 10px; white-space: nowrap; font-size: 14px; }
  nav.primary a.join{ padding: 10px 12px; margin: 0 4px; }
  .btn{ padding: 8px 14px; font-size: 14px; }
}

/* ヒーロー（高さ・余白・文字サイズを縮小） */
@media (max-width: 1024px){
  .hero{
    height: auto;
    padding-top: calc(72px + 24px);
    background-position: left;
    background-size: cover;
		padding-bottom: 75px;
  }
  .hero-copy-inner{
  max-width: 100%;
  margin-bottom: 24px;
  margin: 60px 0;
  }
  .hero-copy h1{
  font-size: 5.5vw;
  line-height: 2;
  letter-spacing: 1.5px;
  white-space: normal;
  }
}

/* 新着情報カード：ヒーローの下に重ねない（スマホ） */
@media (max-width: 1024px){
  .news-board{
    position: static;
    margin-top: 16px;
  }
  .news-card{
    padding: 20px 16px;
    grid-template-columns: 1fr; /* 1カラム */
    gap: 12px;
  }
.news-head h2{ font-size: 26px; }
  .news-head{ padding-right: 0; padding-top: 0; }
  .news-head .en{ font-size: 14px; }
  .news-item{ padding: 14px 0; }
  .news-item a{ font-size: 16px; }
  .news-desc{ white-space: normal; } /* 省略せず2行以上可 */
}

/* About セクション：1カラム化＋固定高さ解除 */
@media (max-width: 1024px) {
  .news-card {
    min-height: 0;
  }

  .news-card > .news-back {
    grid-column: 1;
  }
}

@media (max-width: 1200px){
  .about{ padding: 56px 0; }
  .about .grid{
    grid-template-columns: 1fr;
    height: auto;
    gap: 16px;
    background-position: center right 12%;
    background-size: 80%;
  }
  .pref-mask{ width: 100%; max-width: 680px; margin: 0 auto 12px; }
  .about .title-wrap div{ font-size: 28px; }
  .about .title-wrap h2{ font-size: 36px; margin-bottom: 20px; letter-spacing: 2px; }
  .about p{ font-size: 16px; line-height: 2.2; }
}

/* Cards：ブロックのパディング最適化 */
@media (max-width: 1200px){
  .cards{ padding: 40px 0 0; }
  .cards > .container{ padding: 16px; border-radius: 12px; }
}
/* 上段3→2→1カラム、下段2→1カラム */
@media (max-width: 1024px){
  .card-grid--row1{ grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .card-grid--row2{ grid-template-columns: 1fr; gap: 16px; }
  .card-grid--row1 > .card:nth-child(-n+2) .body{ border-right: 0; }
  .card--split{ grid-template-columns: 1fr; row-gap: 8px; }
  .card--split img{ aspect-ratio: 16/9; }
  .card .body{ padding: 12px 8px; }
  .card h3 a{ font-size: 25px; gap: 8px; }
  .card p{ font-size: 16px; }
}
@media (max-width: 640px){
  .card-grid--row1{ grid-template-columns: 1fr; }
  .card h3 a::after{ width: 22px; height: 22px; background-size: 14px 14px; }
}

/* Contact Band：3→1カラム、区切り線を横線に */
@media (max-width: 1024px){
  .contact-band{ padding: 40px 0; }
  .contact-card{ padding: 30px 16px 10px; border-radius: 12px; }
  .contact-flex{
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .contact-flex > .col.sep::after{
    right: auto; left: 0; top: auto; bottom: auto;
    width: 100%; height: 1px; background: #e6e9ec;
		margin-top: 30px;
  }
  .contact-title{ font-size: 24px; }
  .contact-sub{ font-size: 16px; }
  .contact-note{ font-size: 14px; }
  .contact-mid-label, .contact-mail-label{ font-size: 16px; }
  .contact-tel{ font-size: 26px; }
  .btn-contact{ padding: 10px 20px; font-size: 15px; }
  .btn-contact::after{ width: 22px; height: 22px; background-size: 12px 12px; }
}

/* Footer：3カラム→縦並び */
@media (max-width: 1200px){
  .footer-top{ padding: 40px 0 0; }
  .footer-wrap{
    flex-direction: column;
    align-items: stretch;
    gap: 50px;
  }
  .footer-left{ width: 100%; display: flex; align-items: center; gap: 16px; flex-wrap: wrap;}
  .footer-logo{ margin: 0; justify-content: center; width: 100%;text-align: center;}
  .footer-logo img{ width: 50%px; }
  .addr{ font-size: 14px; width: 100%; text-align: center;}
  .footer-links{ width: 100%; flex-direction: row; flex-wrap: wrap; gap: 0; }
  .footer-links a{ width: 50%; padding: 10px 0 10px 16px; }
  .footer-cta{ width: 100%; justify-content: center; gap: 12px; }
  .footer-join, .footer-member{ width: calc(50% - 6px); padding: 20px; font-size: 16px; }
  .footer-visual{ height: 520px; background-position: center top; }
}
@media (max-width: 640px){
  .footer-links a{ width: 100%; }
  .footer-join, .footer-member{ width: 100%; }
  .footer-visual{ height: 380px; }
  .copyright{ font-size: 11px; padding: 10px 0; }
}

/* 細かな調整（タイポ・余白） */
@media (max-width: 1024px){
  .news-item h3{ font-size: 16px; }
  .contact-mid .contact-mid-label{ text-align: center; }
  .footer-links a::before{ top: 22px; width: 6px; height: 6px; }
}

/* 安全側の画像比率（にじみ防止） */
@media (max-width: 640px){
  .card img{ aspect-ratio: 16/9; }
}

/* 上部の余白がきつい画面高での安全策 */
@media (max-height: 680px) and (max-width: 480px){
  .hero{ padding-top: 72px; }
}




/* Footer CTA（スマホ）：ボタン幅＝文字数＋左右30px */
@media (max-width: 768px){
  .footer-cta{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center !important; /* 中央寄せで縦積み */
    gap: 20px;
    justify-content: flex-start;
  }
  .footer-join,
  .footer-member{
    width: auto !important;              /* 100%を打ち消す */
    inline-size: fit-content;            /* 文字幅に合わせる（fallbackはautoでOK） */
    max-width: 90vw;                     /* 画面からはみ出し防止 */
    padding: 18px 30px !important;       /* 左右+30px（縦は18pxに統一） */
    font-size: 16px;
    text-align: center;
    margin: 0 auto;                      /* 念のため中央寄せ */
  }
}

/* Cards：スマホはすべて1列 */
@media (max-width: 768px){
  .card-grid--row1{grid-template-columns:1fr;gap:16px;}
  .card-grid--row2{grid-template-columns:1fr;gap:16px;}
  .card--split{grid-template-columns:1fr;}
  /* PC用の縦罫線を無効化 */
  .card-grid--row1>.card:nth-child(-n+2) .body{border-right:0;}
}


/* Cards：画像を常に横幅100%に */
.card img{
  width: 100%;
  aspect-ratio: 4 / 3;   /* 既存指定を尊重（トリミング前提） */
  object-fit: cover;
}

/* 分割カードでの縦伸び防止（念のため） */
.card--split img{
  width: 100%;
  height: auto;          /* 以前の height:100% 指定の影響を無効化 */
}




/* About：スマホで「テキスト→画像」の順に */
@media (max-width: 768px){
  .about .grid{
    display: flex;           /* grid → flexで順序制御 */
    flex-direction: column;  /* 縦並び */
    gap: 40px;
    height: auto;
  }
  .about .grid > div{ order: 1; }      /* テキストブロックを先頭に */
  .about .grid > figure{ order: 2; }   /* 画像を後ろに */
  .pref-mask{ width:100%; max-width:680px; margin:0 auto; }
}

/* About：スマホで背景SVGを上部・全幅に */
@media (max-width: 768px){
  /* セクション側に背景を持たせる（全幅） */
  .about{
    background: #f9f7f5 url(./images/feature-bg.svg)
                top 70px center / 100% auto no-repeat;
    /* 背景を見せるための上余白（画面幅に応じて可変） */
    padding-top: clamp(50px, 24vw, 50px);
  }
  /* grid側に設定されている背景は打ち消す */
  .about .grid{
    background: none !important;
  }
}





@media (max-width: 768px){



.col{
margin-bottom: 30px;
}


.about .title-wrap {
  margin-bottom: 42px;
}



}








/* アクセシビリティ：画面外テキスト（必要なら使用） */
.sr-only{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ハンバーガー初期状態（PCでは非表示） */
.hamburger{ display:none; }

/* ===== スマホ専用 ===== */
@media (max-width: 768px){

  /* ハンバーガー：右上に固定表示（ロゴと被らないよう上位Z） */
  .hamburger{
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 1100;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 8px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 6px 18px rgba(16,24,40,.12);
    display: inline-flex;
    align-items:center;
    justify-content:center;
    cursor: pointer;
  }
  .hamburger span{
    position: relative;
    display:block;
    width: 24px;
    height: 2px;
    background: #18231d;
    transition: transform .25s ease, opacity .2s ease, top .25s ease, bottom .25s ease;
  }
  .hamburger span:nth-child(1){ top:-6px; position: relative; }
  .hamburger span:nth-child(2){ opacity:1; }
  .hamburger span:nth-child(3){ bottom:-6px; position: relative; }

  /* 三本線 → × 印（nav-open時） */
  body.nav-open .hamburger span:nth-child(1){
    top:0; transform: rotate(45deg);
  }
  body.nav-open .hamburger span:nth-child(2){
    opacity:0;
  }
  body.nav-open .hamburger span:nth-child(3){
    bottom:0; transform: rotate(-45deg);
  }

  /* 既存のPCナビはデフォルト非表示にして、オーバーレイとして再利用 */
  nav.primary{
    position: fixed;
    inset: 0;               /* top:0; right:0; bottom:0; left:0 の短縮 */
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    /* フェードイン用 */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, visibility .25s ease;

    /* 全画面オーバーレイ背景（半透明） */
    background: rgba(24,35,29,.92);
  }

  /* オーバーレイの表示（フェードイン） */
  body.nav-open nav.primary{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* メニューアイテムの見た目（縦並び） */
  nav.primary a{
    display: block;
    color: #fff;
    font-size: 18px;
    padding: 14px 18px;
    margin: 6px 0;
    border-radius: 8px;
    text-align: center;
  }

  /* SP：お問い合わせをボタン風に */
  nav.primary a.nav-item--cta{
    background: #ffffff;
    color: #18231d;
    border: 2px solid #ff484a;
    font-weight: 600;
  }
  nav.primary a.nav-item::before{ display: none; }  /* 緑ドットは隠す */
  nav.primary a.join{
    background: #eef2f5;
    color: #1f2937;
    margin-top: 12px;
  }
  nav.primary .btn{      /* 会員専用ページボタン */
    background: var(--c-green);
    color: #fff;
    border-radius: 999px;
    margin-top: 10px;
    font-size: 16px;
    padding: 12px 20px;
  }

  /* ヘッダー行内の横並びを崩さないため、通常表示時はナビを隠す */
  .header-inner nav.primary{
    /* 上の fixed 指定が効くので、行内レイアウトから実質外れる */
  }
}




/* Hamburger icon: perfectly centered lines & X */
@media (max-width:768px){
  .hamburger{
    position: fixed; top:12px; right:12px; z-index:1100;
    width:44px; height:44px; border:none; border-radius:8px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 6px 18px rgba(16,24,40,.12);
    display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  }
  .hamburger span{
    position:absolute; left:50%; top:50%;
    width:24px; height:2px; background:#18231d; border-radius:1px;
    transform-origin:center; transition: transform .25s ease, opacity .2s ease;
  }
  /* 等間隔に配置（中心基準） */
  .hamburger span:nth-child(1){ transform: translate(-50%,-50%) translateY(-6px); }
  .hamburger span:nth-child(2){ transform: translate(-50%,-50%); }
  .hamburger span:nth-child(3){ transform: translate(-50%,-50%) translateY( 6px); }

  /* open時：完全な ×（45°, -45°）＋中線消し */
  body.nav-open .hamburger span:nth-child(1){ transform: translate(-50%,-50%) rotate(45deg); }
  body.nav-open .hamburger span:nth-child(2){ opacity:0; }
  body.nav-open .hamburger span:nth-child(3){ transform: translate(-50%,-50%) rotate(-45deg); }
}


/* Kill accidental horizontal scroll on small screens */
@media (max-width:768px){
  /* 念のため大物を抑止 */
  .site-header, .hero, .news-board, .news-card, .about, .about .grid,
  .cards, .card-grid--row1, .card-grid--row2, .contact-band,
  .footer-top, .footer-wrap, .footer-visual { max-width:100%; }
}


/* 常にスクロールバー分の溝を確保してガタつき防止 */
html{ scrollbar-gutter: stable; }


/* =========================================
   Hamburger (スマホ専用) — 安定版
   ・三本線は完全左右対称／中心回転で❌へ
   ・背景の白い角丸は削除（透明）
   ・オーバーレイ上では線色を白に
   ・横スクロール抑止、縦スクロールは残す
========================================= */
@media (max-width:768px){

  /* ボタン本体（右上固定、透明、48pxタップ領域） */
  .hamburger{
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 1100;
    width: 48px;
    height: 48px;
    padding: 0;
    border: none;
    background: transparent;       /* ←白い四角を消す */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  /* 三本線（中心基準で配置） */
  .hamburger span{
    position: absolute;
    left: 50%;
    top: 50%;
    width: 26px;                   /* 線の長さ */
    height: 2px;                   /* 線の太さ */
    background: #18231d;           /* デフォは黒系 */
    border-radius: 1px;
    transform-origin: 50% 50%;
    transition: transform .24s ease, opacity .18s ease, background-color .18s ease;
  }
  .hamburger span:nth-child(1){ transform: translate(-50%,-50%) translateY(-7px); }
  .hamburger span:nth-child(2){ transform: translate(-50%,-50%); }
  .hamburger span:nth-child(3){ transform: translate(-50%,-50%) translateY( 7px); }

  /* オーバーレイ本体（全画面フェード） */
  nav.primary{
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 20px;
    background: rgba(24,35,29,.92);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, visibility .25s ease;
  }

  /* 表示時（フェードイン） */
  body.nav-open nav.primary{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* ❌アニメ：中心回転でズレない */
  body.nav-open .hamburger span:nth-child(1){
    transform: translate(-50%,-50%) rotate(45deg);
  }
  body.nav-open .hamburger span:nth-child(2){
    opacity: 0;
  }
  body.nav-open .hamburger span:nth-child(3){
    transform: translate(-50%,-50%) rotate(-45deg);
  }

  /* オーバーレイ上は線色を白にして視認性UP */
  body.nav-open .hamburger span{ background: #ffffff; }

  /* メニュー内の見た目（整列と間隔を安定化） */
  nav.primary a{
    color: #fff;
    font-size: 18px;
    line-height: 1;
    padding: 14px 18px;
    margin: 4px 0;
    text-align: center;
    border-radius: 8px;
    display: inline-block;
  }
  nav.primary a.nav-item::before{ display: none; }
  nav.primary a.join{
    background: #eef2f5; color: #1f2937; margin-top: 12px;
  }
  nav.primary .btn{
    background: var(--c-green); color: #fff;
    border-radius: 999px; padding: 12px 20px; font-size: 16px;
  }

  /* 余計な横スクロールの抑止（保険） */
  html, body{ overflow-x: hidden; }
}

/* メニュー開閉時のガタつき対策：縦スクロールバーの溝を常時確保 */
html{ scrollbar-gutter: stable; }

/* ============================
   Hamburger FIX (final hard override)
   ・右上固定の微ズレ解消（安全域対応）
   ・白い角丸/影を完全に無効化
   ・三本線は正確に中央配置（整数px）
============================ */
@media (max-width:768px){

  /* 位置：画面右上に固定。iOS安全域も考慮 */
  header.site-header .hamburger{
    position: fixed !important;
    top: calc(10px + env(safe-area-inset-top)) !important;
    right: calc(10px + env(safe-area-inset-right)) !important;
    z-index: 1100 !important;

    /* タップ領域 */
    width: 48px !important;
    height: 48px !important;
    padding: 0 !important;

    /* 見た目：完全に透明。残っていた白角丸/影を排除 */
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;

    -webkit-tap-highlight-color: transparent;
    transform: translateZ(0); /* サブピクセルにじみ回避 */
  }

  /* 三本線：中心起点で整数pxに配置（ズレ/にじみ対策） */
  header.site-header .hamburger span{
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 26px !important;     /* 線の長さ */
    height: 2px !important;     /* 太さ */
    background: #0062b2 !important;
    border-radius: 1px !important;
    transform-origin: 50% 50% !important;
    transition: transform .24s ease, opacity .18s ease, background-color .18s ease !important;
  }
  /* きっちり整数pxで上下に配置 */
  header.site-header .hamburger span:nth-child(1){
    transform: translate(-50%,-50%) translateY(-8px) !important;
  }
  header.site-header .hamburger span:nth-child(2){
    transform: translate(-50%,-50%) !important;
  }
  header.site-header .hamburger span:nth-child(3){
    transform: translate(-50%,-50%) translateY( 8px) !important;
  }

  /* 開いたときは中心で×回転。線色は白にして背景上で視認性アップ */
  body.nav-open header.site-header .hamburger span:nth-child(1){
    transform: translate(-50%,-50%) rotate(45deg) !important;
  }
  body.nav-open header.site-header .hamburger span:nth-child(2){
    opacity: 0 !important;
  }
  body.nav-open header.site-header .hamburger span:nth-child(3){
    transform: translate(-50%,-50%) rotate(-45deg) !important;
  }
  body.nav-open header.site-header .hamburger span{
    background:#fff !important;
  }

  /* オーバーレイ（念のための再定義）：フェードのみ、はみ出し抑止 */
  header.site-header nav.primary{
    position: fixed !important;
    inset: 0 !important;
    background: rgba(24,35,29,.92) !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    padding: 20px;
    transition: opacity .25s ease, visibility .25s ease;
    max-width: 100vw !important;
    overflow-x: hidden !important;
		margin-top: 72px;
  }
  body.nav-open header.site-header nav.primary{
    opacity: 1; visibility: visible; pointer-events: auto;
  }

  /* 横スクロールは確実に殺す（保険） */
  html, body{ overflow-x: hidden !important; }

  /* メニュー内の見た目（微調整） */
  header.site-header nav.primary a{
    color:#fff; font-size:15px; line-height:1; padding:10px 18px; margin: 0;
    text-align:center; border-radius:8px; display:inline-block;
  }
  header.site-header nav.primary a.nav-item::before{ display:none !important; }
  header.site-header nav.primary a.join{ background:#eef2f5; color:#1f2937; margin-top:12px; }
  header.site-header nav.primary .btn{ background:var(--c-green); color:#fff; border-radius:999px; padding:12px 20px; font-size:16px; }
}

/* 縦スクロールバーのガタつき対策（常時確保） */
html{ scrollbar-gutter: stable; }

/* =========================
   Header fix
   (1) PC: stickyを確実に復活
   (2) SP: ヘッダーごと固定＋ヒーローに余白
========================= */

/* (1) PC：スクロール追従を復活 */
@media (min-width: 769px){
  .site-header{
    position: sticky !important;
    top: 38px !important;          /* 既存デザインどおりの浮き量 */
    z-index: 1200 !important;
    background: transparent;       /* 既存仕様を維持 */
  }
}

/* (2) スマホ：ヘッダーごと固定（右上のハンバーガーも一緒に動く） */
@media (max-width: 768px){
  .site-header{
    position: fixed !important;
    top: 0 !important;
    left: 0; right: 0;
    z-index: 1200 !important;
    background: transparent;
  }
  /* 角丸バーが画面端で欠けないよう丸みは外す */
  .header-inner{ border-radius: 0 !important; }

  /* ヒーロー先頭が隠れないよう上に余白を確保（安全域も考慮） */
  .hero{
    padding-top: calc(72px + env(safe-area-inset-top)) !important;
    margin-top: 0 !important;      /* 念のため */
  }
}



/* SP: ハンバーガー展開時の配色を白背景＋黒文字に */
@media (max-width: 768px){
  /* オーバーレイを不透明の白に */
  body.nav-open header.site-header nav.primary{
    background: #ffffff !important;   /* 透過なし */
  }

  /* メニューの文字色を黒系に */
  body.nav-open header.site-header nav.primary a{
    color: #18231d !important;
  }
  body.nav-open header.site-header nav.primary a.nav-item::before{
    display: none !important;
  }

  /* 参加ボタン・会員ボタンの配色（必要なら調整） */
  body.nav-open header.site-header nav.primary a.join{
    background: #f3f4f6 !important;   /* 薄グレーに統一 */
    color: #111827 !important;
		padding: 10px 30px;
		margin-bottom: 10px;
		margin-top: 20px;
  }
  /* 緑の行動ボタンはそのまま強調（白文字のまま） */
  body.nav-open header.site-header nav.primary .btn{
    background: var(--c-green) !important;
    color: #fff !important;
				padding: 10px 30px;
  }

  /* ×アイコンは白背景上で見えるよう黒に */
  body.nav-open header.site-header .hamburger span{
    background: #0062b2 !important;
  }
}

/* PCでのヘッダー固定（sticky）を強制復活 */
@media (min-width: 1025px){
  .site-header{
    position: sticky !important;
    top: 38px !important;
    z-index: 1200 !important;
    background: transparent; /* 既存デザイン維持 */
  }
}













/* =====================
   「薬剤師会について」下層ページ

   （概要／沿革／組織図）
===================== */

/* セクション全体 */
.page-about {
  padding: 80px 0 120px;
}

/* 各ブロック共通 */
.about-section {
  margin-bottom: 96px;
}

/* 見出し（中央＋緑アンダーライン） */
.about-section-heading {
  text-align: center;
  font-size: 28px;
  font-weight: 500;
  margin: 0 0 40px;
  letter-spacing: 0.08em;
  position: relative;
}

.about-section-heading::after {
  content: "";
  display: block;
  width: 80px;
  height: 4px;
  border-radius: 999px;
  background: var(--c-green);
  margin: 16px auto 0;
}

/* 概要・組織用 2カラムテーブル風レイアウト */
.corp-table {
  margin: 0;
}

.corp-row {
  display: grid;
  grid-template-columns: 180px 1fr;
  column-gap: 40px;
  padding: 20px 0;
  border-top: 1px solid #e5e7eb;
  font-size: 15px;
}

.corp-row:last-child {
  border-bottom: 1px solid #e5e7eb;
}

.corp-row dt {
  margin: 0;
  font-weight: 500;
  color: #374151;
}

.corp-row dd {
  margin: 0;
  line-height: 1.9;
}

.corp-link {
  color: #2563eb;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* 沿革：年表レイアウト */
.history-list {
  border-top: 1px solid #e5e7eb;
}

.history-row {
  display: grid;
  grid-template-columns: 120px 80px 1fr;
  column-gap: 40px;
  padding: 20px 0;
  border-bottom: 1px solid #e5e7eb;
  font-size: 15px;
}

.history-year {
  font-size: 22px;
  font-weight: 600;
  color: var(--c-green);
}

.history-month {
  color: #4b5563;
}

.history-text {
  color: #111827;
  line-height: 1.9;
}

/* 組織図：中央の丸ボタン風 */
.org-diagram {
  margin-bottom: 32px;
}

.org-pill {
  padding: 14px 24px;
  font-size: 15px;
  letter-spacing: 0.05em;
	font-weight: 500;
	display: inline-block;
}

.org-pill span{

font-weight: 400;
  font-size: 15px;
display: inline;
}


/* =====================
   薬剤師会についてページ専用レイアウト（PC）
===================== */

/* 背景色をトップのカードと合わせる */
body.is-about-page{
  background: #f9f5f0;
}

/* Hero：高さは自動にして、上下の余白で調整 */
body.is-about-page .hero{
  height: auto !important;                     /* 固定高さを解除 */
  min-height: 0;
  margin-top: -84px;
  padding-top: calc(38px + 84px + 80px);       /* 上：ヘッダー分 + 余白 */
  padding-bottom: 160px;                       /* 下：H1の下に十分な余白を確保 */
  background-position: center;
}

/* H1の位置はheroのpaddingで管理するので、余計なmarginは無し */
body.is-about-page .hero-copy-inner{
  max-width: 900px;
  margin: 0 auto;     /* 中央に配置 */
  text-align: center; /* 中央寄せ */
}

body.is-about-page .hero h1{
  font-size: 40px;
  line-height: 1.6;
  white-space: normal;
  margin: 40px 0;
}

/* 白カード：Heroに少しだけ食い込ませる */
body.is-about-page .page-about{
  margin-top: -100px;        /* 160px(下padding)のうち100pxだけかぶせる → H1の上下余白がほぼ同じ感覚になる */
  padding: 0 0 120px;
  position: relative;
  z-index: 5;
}

body.is-about-page .page-about > .container{
  background: #ffffff;
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 40px 80px 40px;
}

/* セクション間の余白を調整 */
body.is-about-page .about-section{
  margin-bottom: 80px;
}
body.is-about-page .about-section:last-child{
  margin-bottom: 0;
}

/* 見出し（中央＋緑ライン） */
.about-section-heading{
  text-align: center;
  font-size: 28px;
  font-weight: 400;
  margin: 0 0 40px;
  letter-spacing: 0.04em;
  position: relative;
	font-family: "Kosugi Maru", sans-serif;
}
.about-section-heading::after{
  content: "";
  display: block;
  width: 40px;
  height: 4px;
  border-radius: 999px;
  background: var(--c-green);
  margin: 7px auto 0;
}

/* 概要・組織の2カラム行 */
.corp-table{ margin: 0; }
.corp-row{
  display: grid;
  grid-template-columns: 180px 1fr;
  column-gap: 40px;
  padding: 20px 0;
  border-top: 1px solid #e5e7eb;
  font-size: 15px;
}
.corp-row:last-child{
  border-bottom: 1px solid #e5e7eb;
}
.corp-row dt{
  margin: 0;
  font-weight: 500;
  color: #374151;
}
.corp-row dd{
  margin: 0;
  line-height: 1.9;
}
.corp-link{
  color: #2563eb;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* 沿革（年表） */
.history-list{
  border-top: 1px solid #e5e7eb;
}
.history-row{
  display: grid;
  grid-template-columns: 120px 80px 1fr;
  column-gap: 40px;
  padding: 20px 0;
  border-bottom: 1px solid #e5e7eb;
  font-size: 15px;
}
.history-year{
  font-size: 20px;
  font-weight: 600;
  color: var(--c-green);
}
.history-month{
  color: #4b5563;
	font-size: 18px;
}
.history-text{
  color: #111827;
  line-height: 1.9;
}

/* 組織図の「理事会」ピル */
.org-diagram{
  margin-bottom: 32px;
}
.org-pill{

  padding: 10px 24px;
  font-size: 20px;
  letter-spacing: 0.05em;
	background: #f3f3f3;
}

.org-pill span{
width: 100%;
font-weight: 400;
  font-size: 13px;
display: block;
}


/* =============================
   薬剤師会についてページ：レスポンシブ調整
   （タブレット〜スマホ）
============================= */

/* --- タブレット（〜1024px） --- */
@media (max-width: 1024px){

  /* 白カードの内側余白を少しコンパクトに */
  body.is-about-page .page-about > .container{
    padding: 40px 40px 60px;
    border-radius: 14px;
  }

  body.is-about-page .about-section{
    margin-bottom: 64px;
  }
}

/* --- スマホ（〜768px） --- */
@media (max-width: 768px){

  /* Hero：ヘッダーの高さ＋余白分だけ下げて、下側に余白を多めに */
  body.is-about-page .hero{
    height: auto !important;
    min-height: 0;
    margin-top: 0 !important;
    padding-top: calc(72px + env(safe-area-inset-top) + 40px) !important;
    padding-bottom: 120px !important;   /* H1の下に余白 */
    background-position: center;
  }

  body.is-about-page .hero-copy-inner{
    max-width: 100%;
    margin: 0;
    text-align: center;
  }

  body.is-about-page .hero h1{
    font-size: 24px;
    line-height: 1.7;
    white-space: normal;
  }

  /* 白カード：スマホでも少しだけヒーローにかぶせる */
  body.is-about-page .page-about{
    margin-top: -80px;
    padding-bottom: 80px;
    position: relative;
    z-index: 5;
  }

  body.is-about-page .page-about > .container{
    padding: 30px 26px 30px;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(16,24,40,.10);
  }

  /* 見出しまわり */
  body.is-about-page .about-section{
    margin-bottom: 48px;
  }

  .about-section-heading{
    font-size: 22px;
    margin-bottom: 24px;
  }

  .about-section-heading::after{
    width: 64px;
    height: 3px;
  }

  /* 概要・組織：2カラム → 1カラム縦並び */
  .corp-row{
    display: block;
    padding: 14px 0;
  }

  .corp-row dt{
    font-size: 14px;
    margin-bottom: 2px;
    color: #6b7280;
  }

  .corp-row dd{
    font-size: 14px;
    line-height: 1.9;
  }

  /* 沿革：ブロック表示にして読みやすく */
  .history-list{
    border-top: 1px solid #e5e7eb;
  }

  .history-row{
    display: block;
    padding: 14px 0;
    border-bottom: 1px solid #e5e7eb;
    font-size: 14px;
  }

  .history-year{
    font-size: 18px;
    font-weight: 600;
    color: var(--c-green);
    margin-bottom: 2px;
  }

  .history-month{
    display: inline-block;
    margin-right: 8px;
    color: #4b5563;
  }

  .history-text{
    display: block;
    margin-top: 4px;
    line-height: 1.9;
    color: #111827;
  }

  /* 組織図のピルボタン */
  .org-diagram{
    margin-bottom: 20px;
  }

  .org-pill{
    min-width: 120px;
    padding: 10px 18px;
    font-size: 18px;
  }
}


/* 組織図：委員会ピルの上に余白を追加（理事会はそのまま） */
.about-org .org-block .org-diagram{
  margin-top: 60px;
}

@media (max-width: 768px){
  .about-org .org-block .org-diagram{
    margin-top: 24px;
  }
}









/* =====================
   あなたの街の薬局ページ
   （地図＋50音一覧）
===================== */

/* 白カード（「薬剤師会について」と同じ見え方にする） */
body.is-about-page .page-local-pharmacies {
  margin-top: -100px;
  padding: 0 0 120px;
  position: relative;
  z-index: 5;
}

body.is-about-page .page-local-pharmacies > .container {
  background: #ffffff;
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 56px 80px 80px;
}

/* 地図セクション */
.local-lead {
  text-align: center;
  margin: 0 0 50px;
  font-size: 16px;
}

.local-map-frame {
  margin-top: 8px;
}

.local-map-embed {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #e5e7eb;
  background: #eef2f6;
  box-shadow: var(--shadow);
}

.local-map-embed iframe {
  display: block;
  width: 100%;
  height: 480px;
  border: 0;
}

/* 50音セクション */
.local-kana {
  margin-top: 80px;
}

.kana-block {
  margin-top: 40px;
}

.kana-heading {
  font-size: 20px;
  font-weight: 600;
  margin: 0 0 12px;
}

/* テーブル（PC） */
.pharmacy-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.pharmacy-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}

.pharmacy-table thead th {
  padding: 10px 12px;
  background: #f4f4f4;
  text-align: left;
  font-weight: 600;
  border-bottom: 1px solid #e5e7eb;
}

.pharmacy-table tbody td {
  padding: 10px 12px;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: top;
}

.pharmacy-table tbody tr:nth-child(even) {
  background: #f9fafb;
}

/* 店舗名を少し強調 */
.pharmacy-table tbody td:first-child a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* --- スマホ表示：1店舗＝カード形式で1行ずつ --- */
@media (max-width: 768px) {

  body.is-about-page .page-local-pharmacies > .container {
    padding: 32px 16px 40px;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(16,24,40,.10);
  }

  .local-kana {
    margin-top: 56px;
  }

  .kana-block {
    margin-top: 32px;
  }

  .kana-heading {
    font-size: 18px;
    margin-bottom: 8px;
  }

  .local-map-embed iframe {
    height: 320px;
  }

  /* テーブル → カード表示 */
  .pharmacy-table thead {
    display: none;
  }

  .pharmacy-table,
  .pharmacy-table tbody,
  .pharmacy-table tr,
  .pharmacy-table td {
    display: block;
    width: 100%;
  }

  .pharmacy-table tbody tr {
    margin-bottom: 16px;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #ffffff;
  }

  .pharmacy-table tbody td {
    padding: 2px 0;
    border-bottom: none;
    font-size: 14px;
  }

  /* ラベルを先頭に表示して、1項目＝1行 */
  .pharmacy-table tbody td::before {
    content: attr(data-label);
    display: inline-block;
    margin-right: 4px;
    font-size: 12px;
    color: #6b7280;
  }

  /* 店舗名は太字・1行目 */
  .pharmacy-table tbody td:first-child {
    font-weight: 600;
    margin-bottom: 4px;
  }
  .pharmacy-table tbody td:first-child::before {
    /* 「店舗名」のラベルは省略してスッキリさせる */
    content: "";
  }
}







/* 50音ナビ（ページ内リンク） */
.kana-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.kana-nav li a {
  display: inline-block;
  min-width: 56px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  font-size: 14px;
  text-align: center;
  color: #374151;
  text-decoration: none;
}

.kana-nav li a:hover {
  background: var(--c-green);
  border-color: var(--c-green);
  color: #fff;
}

/* スマホ時の調整 */
@media (max-width: 768px) {
  .kana-nav {
    gap: 6px;
    margin-bottom: 20px;
  }
  .kana-nav li a {
    font-size: 13px;
    padding: 5px 10px;
    min-width: 48px;
  }
}



/* 50音ブロック用：ヘッダーと被らないように余白を確保 */
#kana-a,
#kana-ka,
#kana-sa,
#kana-ta,
#kana-na,
#kana-ha,
#kana-ma,
#kana-ya,
#kana-ra,
#kana-wa {
  scroll-margin-top: 130px;  /* PC 用：ヘッダー分＋少し余白 */
}

@media (max-width: 768px) {
  #kana-a,
  #kana-ka,
  #kana-sa,
  #kana-ta,
  #kana-na,
  #kana-ha,
  #kana-ma,
  #kana-ya,
  #kana-ra,
  #kana-wa {
    scroll-margin-top: 100px; /* SP 用：固定ヘッダー分だけ少し控えめ */
  }
}


.kana-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.kana-nav li a {
  display: inline-block;
  min-width: 56px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  font-size: 14px;
  text-align: center;
  color: #374151;
  text-decoration: none;
}

.kana-nav li a:hover {
  background: var(--c-green);
  border-color: var(--c-green);
  color: #fff;
}


.kana-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.kana-nav li a {
  display: inline-block;
  min-width: 56px;
  padding: 6px 22px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  font-size: 18px;
  text-align: center;
font-weight: 500;
  text-decoration: none;
}

.kana-nav li a:hover {
  background: var(--c-green);
  border-color: var(--c-green);
  color: #fff;
}


@media (max-width: 768px) {
.kana-nav {

  justify-content: space-between;
  gap: 0;

}

.kana-nav li {
width: 18%;
margin-bottom: 12px
}
.kana-nav li a {
width: 100%;
font-size: 15px;
}
}




/* PCサイト時：薬局一覧テーブルの列幅を固定 */
@media (min-width: 769px) {

  .pharmacy-table {
    table-layout: fixed;   /* 各列のwidth指定を効かせる */
  }

  /* 1列目：店舗名 */
  .pharmacy-table th:nth-child(1),
  .pharmacy-table td:nth-child(1) {
    width: 260px;
  }

  /* 2列目：住所 */
  .pharmacy-table th:nth-child(2),
  .pharmacy-table td:nth-child(2) {
    width: 520px;
  }

  /* 3列目：電話番号 */
  .pharmacy-table th:nth-child(3),
  .pharmacy-table td:nth-child(3) {
    width: 180px;
  }

  /* 4列目：FAX番号 */
  .pharmacy-table th:nth-child(4),
  .pharmacy-table td:nth-child(4) {
    width: 180px;
  }

  /* 住所が長いので折り返し許可（任意） */
  .pharmacy-table td:nth-child(2) {
    word-wrap: break-word;
    word-break: break-word;
  }
}




/* =========================================
   活動内容ページ（activities.html）
   ========================================= */

/* ページ全体 */
.is-activities-page .hero {
  /* aboutページと同じトーンなら、ここは既存のままでもOK */
}

.page-activities {
  padding: 48px 0 64px;
}

@media (min-width: 768px) {
  .page-activities {
    padding: 64px 0 80px;
  }
}

/* セクション（文京区薬剤師会の活動） */
.page-activities .activities-main {
  margin-top: 0;
}

.page-activities .about-section-heading {
  font-size: 22px;
  margin-bottom: 1.5em;
}

@media (min-width: 768px) {
  .page-activities .about-section-heading {
    font-size: 2rem;
  }
}

/* リード文 */
.activities-lead {
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 70px;
  margin-top: 70px;
}

/* カード一覧：スマホは1列、PCは3列（＝2行3列） */
.activities-grid {
  display: grid;
  grid-template-columns: 1fr;   /* スマホ：1列 */
  gap: 24px;
}

@media (min-width: 768px) {
  .activities-grid {
    grid-template-columns: repeat(3, 1fr);  /* PC：3列 */
    gap: 24px 24px;
  }
}

/* カード本体 */
.activity-card {
  background-color: #fff;
  border-radius: 8px;
  border: 1px solid #e3e3e3;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* サムネイル（1行目：横幅100%） */
.activity-thumb {
  width: 100%;
  overflow: hidden;
}

.activity-thumb img {
  display: block;
  width: 100%;
  height: auto;
}

/* 見出し（2行目：横幅100%） */
.activity-title {
  font-size: 22px;
  font-weight: 600;

  line-height: 1.5;
  margin-bottom: 5px;
  color: #42a145;
  text-align: center;
}

/* 本文（3行目：横幅100%） */
.activity-text {
  font-size: 16px;
  line-height: 1.8;
  padding: 0 16px 16px;
  flex: 1 1 auto;
}

/* 余白調整（必要なら） */
.page-activities .container {
  /* 必要に応じて調整 */
}



@media (max-width: 768px) {
.activities-lead {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 40px;
  margin-top: 40px;
}
.activity-title {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 5px;
	margin-top: 25px;
  color: #42a145;
  text-align: center;
}

/* 本文（3行目：横幅100%） */
.activity-text {
  font-size: 16px;
  line-height: 1.8;
  padding: 0 26px 16px;
  flex: 1 1 auto;
}
}





/* 薬剤師の仕事ページ用レイアウト */
.page-pharmacist .about-section {

}

.pharmacist-jobs {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 32px;
}

.job-card {
  display: flex;
  gap: 40px;
  padding: 24px;
  border-radius: 16px;
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

.job-thumb img {
  display: block;
  width: 362px;
  max-width: 100%;
  height: auto;
  border-radius: 5px;
  object-fit: cover;
}

.job-body {

  flex: 1;
}

.job-title {
  font-size: 23px;
  margin-bottom: 0.5em;
	font-weight: 600;
}

.job-text {
  line-height: 2;
	font-size: 17px;
}

@media (max-width: 768px) {
  .job-card {
    flex-direction: column;
    padding: 16px;
		gap: 30px;
  }

  .job-thumb img {
    width: 100%;
  }
	
	.job-title {
  font-size: 20px;
  margin-bottom: 0.5em;
	font-weight: 600;
	margin-top: 0;
}

.job-text {
  line-height: 2;
	font-size: 16px;
}

	
	
	
}






/* Hero：スマホ時は縦長MV画像に切り替え */
@media (max-width: 768px){
  .hero{
background: #c7cdd6 url("./images/mv-sp.jpg")
                left / cover no-repeat;
  }
}







/* =========================
   PDFリンク追加（PC固定バナー / SP固定フッター / SPナビ表示制御）
========================= */

/* SP専用リンク：PCでは非表示 */
.sp-only{ display:none !important; }
@media (max-width:768px){
  .sp-only{ display:inline-block !important; }
}

/* ---- PC：右上固定バナー（2つ縦並び） ---- */
.pc-fixed-pdf-banners{
  display:none;
}
@media (min-width:769px){
  .pc-fixed-pdf-banners{
    display:flex;
    position: fixed;
    top: 140px;          /* 必要なら調整 */
    right: 20px;
    z-index: 1300;
    flex-direction: column;
    gap: 12px;
  }



  .pc-pdf-banner:hover{
    opacity: .8;
  }
}



@media (max-width:768px){
/* SP：固定フッター（1行3列） */
.sp-fixed-footer{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;                 /* 余計な隙間で線がズレないように */
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 1300;
  padding: 8px 10px;      /* 外側に少し余白（囲み枠が見やすい） */
  background: rgba(249,245,240,.96);
  backdrop-filter: blur(6px);
}

  body{
    padding-bottom: 62px; /* 2行分（52px × 2） */
  }
}


/* PCではSP固定フッターを非表示 */
@media (min-width:769px){
  .sp-fixed-footer{
    display: none !important;
  }
}



/* =========================================
   Global Navigation
   - PC: hover dropdown (slide-down)

   - SP: hamburger overlay + accordion
========================================= */

header.site-header nav.primary .nav-group{
  position: relative;
}

@media (min-width:769px){
  header.site-header nav.primary .nav-group{
    display: inline-flex;
    align-items: center;
  }

  /* PCでは矢印ボタンは不要 */
  header.site-header nav.primary .nav-subtoggle{ display:none; }

  /* 親メニューのアイコン（▶/▼等）はPCでは不要 */
  header.site-header nav.primary .nav-group.has-sub > a.nav-parent::after{
    content: none;
    display: none;
  }

  /* ドロップダウン（上→下にスライドして表示） */
  header.site-header nav.primary .nav-submenu{
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    z-index: 1400;

    min-width: 220px;
    padding: 8px;
    background: #ffffff;
    border: 1px solid rgba(17,24,39,.10);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(16,24,40,.14);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  }

  /*
    【重要】PCドロップダウンが“親→サブ”へマウス移動する瞬間に
    一旦ホバーが外れて閉じてしまう問題の対策。
    親メニューとサブメニューの間（10px）の“空白”に透明の当たり判定を作り、
    マウスを移動しても :hover が継続するようにする。
  */
  header.site-header nav.primary .nav-submenu::before{
    content: "";
    position: absolute;
    top: -12px;
    left: 0;
    right: 0;
    height: 12px;
    background: transparent;
  }

  header.site-header nav.primary .nav-submenu a{
    display: block;
    padding: 10px 12px;
    margin: 0;
    border-radius: 10px;
    font-size: 16px;
    color: #111827;
    white-space: nowrap;
  }
  header.site-header nav.primary .nav-submenu a:hover{
    background: rgba(0,98,178,0.1);
  }
  header.site-header nav.primary .nav-submenu a::before{
    content: none !important;
    display: none !important;
  }

  header.site-header nav.primary .nav-group:hover .nav-submenu,
  header.site-header nav.primary .nav-group:focus-within .nav-submenu{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
}

@media (max-width:768px){
  /* メニューが長くなるのでスクロール可能に */
  header.site-header nav.primary{
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 30px;
  }

  /*
    サブメニュー“なし”の項目も、サブメニュー“あり”の親メニューと
    できるだけ同じ見た目（左寄せ／同じ幅）に揃える。
    ※nav-group配下ではなく、nav.primary 直下の nav-item にのみ適用。
  */
  header.site-header nav.primary > a.nav-item:not(.join){
    width: min(460px, 92vw);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left !important;
  }

  /* 親メニュー＋開閉ボタンを横並び。サブメニューは折りたたみ */
  header.site-header nav.primary .nav-group{
    width: min(460px, 92vw);
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
  }

  header.site-header nav.primary .nav-group > a.nav-parent{
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left !important;
    padding-right: 8px;
  }

  /* PC用の▾はSPでは非表示 */
  header.site-header nav.primary .nav-group.has-sub > a.nav-parent::after{
    content: none;
    display: none;
  }

  header.site-header nav.primary .nav-subtoggle{
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border: none;
    background: transparent;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  header.site-header nav.primary .nav-caret{
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--c-green);
    border-bottom: 2px solid var(--c-green);
    transform: rotate(45deg);
    transition: transform .2s ease;
  }

  header.site-header nav.primary .nav-submenu{
    flex: 0 0 100%;
    width: 100%;
    max-height: 0;
    overflow: hidden;
    transition: max-height .25s ease;
    padding-left: 14px;
  }

  header.site-header nav.primary .nav-group.is-open .nav-submenu{
    max-height: 520px;
  }

  header.site-header nav.primary .nav-group.is-open .nav-caret{
    transform: rotate(-135deg);
  }

  header.site-header nav.primary .nav-submenu a{
    display: block;
    padding: 10px 18px;
    margin: 0;
    font-size: 14px !important;
    text-align: left !important;
  }
  header.site-header nav.primary .nav-submenu a::before{
    content: none !important;
    display: none !important;
  }
}


/* 新着情報：iframe埋め込み */
.news-list--iframe{ display:block; }
.news-iframe{
  width: 100%;
  height: 520px; /* 必要に応じて調整 */
  border: 0;
  display: block; /* iframe下の余白防止 */
}

/* スマホ側は縦が足りなくなりやすいので少し高め */
@media (max-width: 1024px){
  .news-iframe{ height: 620px; }
}

/* =========================
   新着情報 iframe（下層ページ用）
========================= */
.news-board--static{
  position: static;
  top: auto;
  left: auto;
  right: auto;
  margin-top: 28px;
  z-index: auto;
}

/* iframe本体 */
.news-list--iframe{ display:block; }
.news-iframe{
  width: 100%;
  height: 520px; /* 必要なら調整 */
  border: 0;
  display: block; /* iframe下の余白防止 */
}

/* SPでは縦が足りなくなりやすいので高め */
@media (max-width: 1024px){
  .news-board--static .news-card{
    grid-template-columns: 1fr;
    padding: 24px;
  }
  .news-board--static .news-head{
    text-align: center;
    padding-top: 0;
  }
  .news-iframe{ height: 620px; }
}

/* お知らせCMS：news-card の幅を 1300px に合わせる（下層ページ用） */
.news-board--static .container{
  max-width: 1300px;
}

/* 念のため：カード自体は全幅で追従 */
.news-board--static .news-card{
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* pharmacist */
.pharmacist-lead {
  text-align: center;
  font-size: 16px;
}

@media (max-width: 1024px){
/* pharmacist */
.pharmacist-lead {
  text-align: left;
  font-size: 16px;
}
}

/* =====================
   入会について（membership.html）
===================== */
body.is-membership-page .membership-content{
max-width: 450px;
  margin: 0 auto;
}

body.is-membership-page .membership-heading{
  font-family: "Kosugi Maru", sans-serif;
  font-size: 22px;
  font-weight: 400;
  color: #1f3344;
  letter-spacing: 0.02em;
  margin: 32px 0 14px;
  padding-left: 16px;
  position: relative;
}

body.is-membership-page .membership-heading:first-child{
  margin-top: 0;
}

body.is-membership-page .membership-heading::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0.9em;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--c-green);
  transform: translateY(-50%);
}

body.is-membership-page .membership-text{
  font-size: 16px;
  line-height: 2;
  margin: 0 0 22px;
}

body.is-membership-page .membership-contact{
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 18px 22px;
	width: 350px;
}

body.is-membership-page .membership-contact p{
  margin: 0;
  line-height: 1.9;
  font-size: 15px;
}

body.is-membership-page .membership-org{
  font-weight: 600;
  margin-bottom: 6px;
}

body.is-membership-page .membership-tel a{
  color: var(--c-green);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 768px){
  body.is-membership-page .membership-heading{
    font-size: 19px;
    margin: 26px 0 12px;
  }
  body.is-membership-page .membership-contact{
    padding: 16px 16px;
  }
}

/* SPハンバーガーナビ：お問い合わせ（ミニマムボタン） */
.sp-menu-contact-btn{
  display: inline-block;
  margin-top: 20px !important;
  padding: 10px 12px;
  border-radius: 2px !important;
  color: var(--c-green);
  text-align: center;
  text-decoration: none;
	background: #f7f7f7;
	font-size: 12px !important;
}
.sp-menu-contact-btn:focus-visible{
  outline: 2px solid rgba(44, 140, 90, 0.35);
  outline-offset: 2px;
}

/* =========================
   SPハンバーガーナビ：画面高が低い端末で下部ボタンが隠れる対策
   - メニュー自体を確実に縦スクロール可能にする
   - ナビ展開中は固定フッターを非表示（最下部の被りを根本解消）
   - 画面高が低い場合はボタン類をコンパクト化
========================= */
@media (max-width:768px){

  /* ナビ展開中：固定フッターがメニューを覆わないようにする */
  body.nav-open .sp-fixed-footer{
    display:none !important;
  }

  /* オーバーレイメニュー：縦スクロールを確実に有効化（既存定義の上書き） */
  body.nav-open header.site-header nav.primary{
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    max-height: calc(100dvh - 72px - env(safe-area-inset-top));
    padding-bottom: 24px !important; /* 下端の余白（タップしやすさ） */
  }
}

/* 画面高が低いときは、下部の主要ボタン（入会／会員／お問い合わせ）をコンパクト化 */
@media (max-width:768px) and (max-height:700px){
  body.nav-open header.site-header nav.primary a.join{
    font-size: 15px !important;
    padding: 12px 24px !important;
    margin-top: 16px !important;
    margin-bottom: 8px !important;
  }
  body.nav-open header.site-header nav.primary .btn.btn-green{
    font-size: 15px !important;
    padding: 12px 24px !important;
  }
  body.nav-open header.site-header nav.primary .sp-menu-contact-btn{
    font-size: 12px !important;
    padding: 10px 16px !important;
    margin-top: 14px !important;
  }
}

@media (max-width:768px) and (max-height:620px){
  body.nav-open header.site-header nav.primary a.join{
    font-size: 14px !important;
    padding: 10px 22px !important;
  }
  body.nav-open header.site-header nav.primary .btn.btn-green{
    font-size: 14px !important;
    padding: 10px 22px !important;
  }
  body.nav-open header.site-header nav.primary .sp-menu-contact-btn{
    font-size: 11px !important;
    padding: 9px 14px !important;
  }
}



/* ===== SPハンバーガー：常に100vh(=実表示高さ)で固定し、スクロールを完全停止 ===== */
:root{ --vh: 1vh; }

@media (max-width: 768px){
  /* 背面スクロール停止（JSがtopを保持） */
  body.scroll-lock{
    position: fixed;
    left: 0;
    right: 0;
    width: 100%;
    height: calc(var(--vh, 1vh) * 100);
    overflow: hidden;
    overscroll-behavior: none;
  }

  /* メニューオープン時：オーバーレイを必ず100vhに、内部もスクロールさせない */
  body.nav-open header.site-header nav.primary{
    height: calc(var(--vh, 1vh) * 100) !important;
    max-height: none !important;
    overflow: hidden !important;
    -webkit-overflow-scrolling: auto !important;
  }

  /* iOSのバウンド（ラバーバンド）抑制の保険 */
  body.nav-open{
    overscroll-behavior: none;
  }
}



/* タップ時の見え方（任意） */
.sp-fixed-footer__link:active{
  transform: translateY(1px);
}

/* PC：右上固定PDFバナー（画像バナー用） */
.pc-pdf-banner__img{display:block;width:100%;height:auto;}
/* SP固定フッター：画像バナー用 */
.sp-fixed-footer__img{
  display: block;
  width: 100%;
  height: auto;
}

/* 高さと最下部余白（bottom）を調整しやすくする */
.sp-fixed-footer{
  /* ↓ここを触れば調整できます */
  --spFooterH: 70px;     /* フッターの高さ（例：60〜84pxくらいで調整） */
  --spFooterBottom: 12px;/* 画面最下部からの余白（0〜16pxくらいで調整） */
  --spFooterGap: 8px;    /* ボタン間の隙間 */

  height: var(--spFooterH);
  bottom: var(--spFooterBottom);
  gap: var(--spFooterGap);
}

/* 各リンク：画像が縦に潰れないように中央寄せ＆高さ追従 */
.sp-fixed-footer__link{
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0; /* 文字用のpaddingが残っていると高さがズレるので0 */
}










/* ---------------------------------
   Contact Form 7 iframe埋め込み
--------------------------------- */
.contact-form-embed-wrap {
  width: 100%;
  margin-top: 3rem;
}

.contact-form-embed {
  width: 100%;
  min-height: 2200px;
  border: none;
  display: block;
  background: transparent;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .contact-form-embed {
    min-height: 2500px;
  }
}



/* =====================
   Members Page
===================== */
.member-page {
  padding-top: 180px;
  padding-bottom: 80px;
  background: #f7faf7;
}

.member-hero {
  padding: 0 0 36px;
}

.member-hero__inner {
  background: #fff;
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 48px 56px;
  border: 1px solid #eef2f6;
}

.member-hero__title {
  margin: 0 0 18px;
  font-size: 30px;
  line-height: 1.4;
  font-weight: 500;
  color: #1f3344;
  font-family: "Kosugi Maru", sans-serif;
}

.member-hero__lead {
  margin: 0;
  font-size: 18px;
  line-height: 2;
  color: var(--c-text);
}

.member-hero__note {
  margin: 16px 0 0;
  font-size: 14px;
  color: #5f6b76;
  line-height: 1.9;
}

.member-news-board {
  margin-top: 0;
}

.member-news-card {
  width: 100%;
  background: #fff;
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 25px;
  border: 1px solid #eef2f6;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  position: relative;
}

.member-news-head {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding-right: 8px;
  text-align: center;
  padding-top: 30px;
}

.member-news-head h2 {
  font-size: 34px;
  line-height: 1.4;
  margin: 0;
  font-weight: 400;
  color: #1f3344;
  font-family: "Kosugi Maru", sans-serif;
}

.member-news-head .en {
  color: var(--c-green);
  font-weight: 400;
  font-size: 18px;
  letter-spacing: 1px;
}

.member-news-list {
  display: block;
}

.member-news-iframe {
  width: 100%;
  min-height: 900px;
  border: none;
  display: block;
  background: #fff;
  overflow: hidden;
  border-radius: 12px;
}

@media screen and (max-width: 959px) {
  .member-page {
    padding-top: 140px;
    padding-bottom: 60px;
  }

  .member-hero__inner {
    padding: 34px 22px;
    border-radius: 14px;
  }

  .member-hero__title {
    font-size: 28px;
  }

  .member-hero__lead {
    font-size: 16px;
    line-height: 1.9;
  }

  .member-news-card {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px;
  }

  .member-news-head {
    text-align: left;
    padding-top: 0;
  }

  .member-news-head h2 {
    font-size: 28px;
  }

  .member-news-head .en {
    font-size: 16px;
  }

  .member-news-iframe {
    min-height: 1100px;
  }
}


/* =========================
   会員専用ページ
========================= */
.page-members .members-main {
  padding-bottom: 10px;
}

.members-lead {
  margin-bottom: 28px;
}

.members-description {
  font-size: 1.8rem;
  line-height: 2;
  color: var(--c-text);
}

.members-description p {
  margin: 0 0 1.2em;
}

.news-iframe--members {
  width: 100%;
  min-height: 900px;
  border: none;
  display: block;
  overflow: hidden;
  background: #fff;
}

@media screen and (max-width: 959px) {
  .members-description {
    font-size: 1.5rem;
    line-height: 1.9;
  }

  .news-iframe--members {
    min-height: 1100px;
  }
}




/* ------------------------------
   HERO TITLE
------------------------------ */
#heroTitle{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.5rem;
  position:relative;
  z-index:2;
  margin:0;
  transform:translateY(-34px);
  padding-left:95px;
  box-sizing:border-box;
}

@media (max-width: 767px){
  #heroTitle{
    padding-left:12px;
  }
}

#heroTitle .hero-copy{
  display:block;
}

#heroTitle .hero-copy--lead{
  display: inline-block;
  font-size: 25px;
  font-weight: 300;
  line-height: 1.45;
  letter-spacing: .1em;
  color: #ffffff;
  background: #0062b2;
  padding: 15px 30px;
  border-radius: .3rem;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

#heroTitle .hero-copy--main{
  display:block;
  font-size:2rem;
  font-weight:700;
  line-height:1.8;
  letter-spacing:.02em;
  color:#007bb7;
  background:none;
  padding:0;
  text-shadow:
    0 0 2px rgba(255,255,255,.95),
    0 0 6px rgba(255,255,255,.9),
    0 1px 10px rgba(255,255,255,.85);
}

/* ------------------------------
   TABLET
------------------------------ */
@media (max-width: 1024px){
  #heroTitle{
    gap:.7rem;
    transform:translateY(-20px);
  }

  #heroTitle .hero-copy--lead{
    font-size:1.05rem;
    padding:.4rem .8rem;
    letter-spacing:.12em;
  }

  #heroTitle .hero-copy--main{
    font-size:2.05rem;
    line-height:1.55;
  }
}

/* ------------------------------
   SP
------------------------------ */
@media (max-width: 767px){
  #heroTitle{
    gap:.6rem;
    transform:none;
    margin-top:.8rem;
  }

  #heroTitle .hero-copy--lead{
  font-size: 3.5vw;
  line-height: 1.45;
  letter-spacing: .08em;
  padding: 10px 20px;
  }

  #heroTitle .hero-copy--main{
    font-size:4vw;
    line-height:2;
    letter-spacing:.01em;
  }
}

/* ------------------------------
   SMALL SP
------------------------------ */
@media (max-width: 480px){
  #heroTitle .hero-copy--lead{
    font-size:.88rem;
    padding:.32rem .58rem;
  }

  #heroTitle .hero-copy--main{
    font-size:1.45rem;
    line-height:1.55;
  }
}











/* =========================================
   FEATURES
========================================= */
.features{
  padding: 70px 0;
  background: #f4f4f4;
}

.features__inner{
  width: min(1300px, calc(100% - 40px));
  margin: 0 auto;
}

.features__head{
  margin-bottom: 60px;
  text-align: center;
}

.features__ttl{
  margin: 0;
  font-size: 32px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .08em;
  color: #444;
}

.features__en{
  display: inline-block;
  margin-top: 8px;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: .08em;
  color: #00bfd0;
  font-family: "Times New Roman", serif;
}

.features__grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
}

.feature-card__img{
  margin: 0 0 22px;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 44 / 48;
  background: #ddd;
}

.feature-card__img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.feature-card__img--placeholder{
  background: #edf5f5;
  border: 1px dashed rgba(0, 191, 208, .45);
}

.feature-card__body{
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.feature-card__num{
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  font-size: 46px;
  line-height: 1;
  color: #fff;
  background: #e993be;
  border-radius: 58% 42% 56% 44% / 42% 58% 42% 58%;
  font-family: "Times New Roman", serif;
}
.feature-card__content{
  flex: 1 1 auto;
  min-width: 0;
}

.feature-card__ttl{
  margin: 0 0 10px;
  font-size: 22px;
  line-height: 1.6;
  font-weight: 700;
}

.feature-card__text{
  margin: 0;
  font-size: 16px;
  line-height: 2;
}

@media (min-width: 768px){
  .feature-card__img{
    height: 260px;
    aspect-ratio: auto;
  }

  .feature-card__img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .feature-card__ttl{
    min-height: 72px;
    display: flex;
    align-items: center;
  }
}

/* =========================
   TABLET
========================= */
@media (max-width: 1100px){
  .features{
    padding: 60px 0 70px;
  }

  .features__grid{
    grid-template-columns: 1fr;
    gap: 36px;
    max-width: 760px;
    margin: 0 auto;
  }

  .feature-card__img{
    aspect-ratio: 16 / 10;
  }
}

/* =========================
   SP
========================= */
@media (max-width: 767px){
  .features{
    padding: 60px 0 50px;
  }

  .features__inner{
    width: min(100%, calc(100% - 28px));
  }

  .features__head{
    margin-bottom: 30px;
  }

  .features__ttl{
    font-size: 24px;
    letter-spacing: .06em;
  }

  .features__en{
    margin-top: 6px;
    font-size: 13px;
  }

  .features__grid{
    gap: 40px;
  }

  .feature-card__img{
    width: 66.666%;
    margin: 0 auto 16px;
    border-radius: 10px;
    aspect-ratio: 4 / 3;
  }

  .feature-card__body{
    gap: 12px;
  }

  .feature-card__num{
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    font-size: 20px;
  }

  .feature-card__ttl{
    margin: 2px 0 6px;
    font-size: 16px;
    line-height: 1.5;
  }

  .feature-card__lead{
    margin-bottom: 8px;
    font-size: 13px;
    line-height: 1.6;
  }

  .feature-card__text{
    font-size: 13px;
    line-height: 1.85;
  }
}




@media (max-width: 767px){
  .feature-card__body{
    gap: 12px;
    align-items: flex-start;
  }

  .feature-card__ttl{
  /* margin: 0 0 8px; */
  font-size: 20px;
  line-height: 3;
  }

  .feature-card__text{
    font-size: 16px;
    line-height: 1.85;
  }
}

















/* =========================================
   MEDICAL
========================================= */
.medical{
  padding: 70px 0;
  background: #f7f8fa;
}

.medical__inner{
  width: min(1300px, calc(100% - 40px));
  margin: 0 auto;
}

.medical__head{
  margin-bottom: 60px;
  text-align: center;
}

.medical__ttl{
  font-size: 32px;
  line-height: 1.4;
  margin: 0;
  font-weight: 400;
  color: #1f3344;
	letter-spacing: .08em;
}

.medical__en{
color: var(--c-green); font-weight: 400; font-size: 16px; letter-spacing: 1px
}

.medical__grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 56px;
}

.medical-card{
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 34px;
  align-items: start;
}

.medical-card__thumb{
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 1 / 1.45;
  background: #d9dde3;
}

.medical-card__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.medical-card__body{
  min-width: 0;
}

.medical-card__titleRow{
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
}

.medical-card__icon{
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #2163b4;
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
}


.medical-card__titleWrap{
  display: block;
}

.medical-card__titleWrap:hover .medical-card__ttl,
.medical-card__titleWrap:focus-visible .medical-card__ttl{
  opacity: .8;
}

.medical-card__ttl{
  margin: 0;
  font-size: 20px;
  line-height: 1.4;
  font-weight: 700;
  color: #0062b2;
}

.medical-card__en{
  margin: 4px 0 0;
  font-size: 13px;
  line-height: 1.4;
  color: #8a8f98;
}

.medical-card__text{
  margin: 0;
  font-size: 16px;
  line-height: 1.9;

}

.medical-card__tags{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #dfe3e8;
}

.medical-tag{
  display: inline-flex;
  align-items: center;
  padding: 5px 14px;
  border: 1px solid #d9e0e6;
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
  color: #334155;
}

.medical-card__btnWrap{
  margin-top: 22px;
}

.medical-card__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 180px;
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  background: #0062b2;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
  box-shadow: 0 10px 24px rgba(0, 98, 178, .18);
}

.medical-card__btn:hover{
  background: #0a4f89;
  transform: translateY(-1px);
}

.medical-card__btn:focus-visible{
  outline: 2px solid #0a4f89;
  outline-offset: 3px;
}

@media (max-width: 1100px){
  .medical{
    padding: 80px 0 90px;
  }

  .medical__grid{
    grid-template-columns: 1fr;
    gap: 46px;
  }
}

@media (max-width: 767px){
  .medical{
    padding: 60px 0 70px;
  }

  .medical__inner{
    width: min(100%, calc(100% - 28px));
  }

  .medical__head{
    margin-bottom: 34px;
  }

  .medical__ttl{
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: .06em;
  }

  .medical__en{
    margin-top: 6px;
    font-size: 13px;
  }

  .medical__grid{
    gap: 60px;
  }

  .medical-card{
    grid-template-columns: 96px 1fr;
    gap: 16px;
  }

  .medical-card__thumb{
    border-radius: 10px;
  }

  .medical-card__titleRow{
    gap: 10px;
    margin-bottom: 12px;
  }

  .medical-card__icon{
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    font-size: 15px;
    border-radius: 6px;
  }

  .medical-card__ttl{
    font-size: 18px;
  }

  .medical-card__en{
    font-size: 12px;
  }

  .medical-card__text{
    font-size: 16px;
    line-height: 1.8;
  }

  .medical-card__tags{
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
  }

  .medical-tag{
    min-height: 34px;
    padding: 6px 10px;
    font-size: 13px;
    border-radius: 7px;
  }

  .medical-card__btnWrap{
    margin-top: 16px;
  }

  .medical-card__btn{
    min-width: 150px;
    min-height: 42px;
    padding: 0 18px;
    font-size: 14px;
  }
}








/* =========================================
   GREETING
========================================= */
.greeting{
  padding: 70px 0 100px;
  background: #fff;
}

.about-head{
  margin-bottom: 60px;
  text-align: center;
}

.about-head__ttl{
  font-size: 32px;
  line-height: 1.4;
  margin: 0;
  font-weight: 400;
  color: #1f3344;
  letter-spacing: .08em;
}

.about-head__en{
  color: var(--c-green);
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 1px;
}

.greeting__grid{
  align-items: start;
  gap: 48px;
}

.greeting__photoCol{
  text-align: center;
}

.greeting__photo{
  margin-bottom: 16px;
}

.greeting__photo img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.greeting__name{
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  font-weight: 500;
}

.greeting__content{
  min-width: 0;
}

.greeting__titleWrap{
  margin-bottom: 24px;
}

.greeting__titleWrap > div{

}

.greeting__titleWrap h2{
  font-size: 30px;
  line-height: 1.7;
  font-weight: 700;
}

.greeting__content p{
  margin: 0 0 18px;
  font-size: 17px;
  line-height: 2;
}

.greeting__btnWrap{
  margin-top: 50px;
}

#infection .greeting__btnWrap{
  text-align: center;
}

.greeting__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 180px;
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  background: linear-gradient(135deg, #157ed4, #0062b2);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
  box-shadow: 0 10px 24px rgba(0, 98, 178, .18);
	transition: .7s;
}

.greeting__btn span::before{
content: "▲";
display: inline-block;
transform: rotate(90deg);
color: #fff;
font-size: 8px;
margin-right: 10px;
vertical-align: middle;
}




.greeting__btn:hover{
opacity: .7;
}

.greeting__btn:focus-visible{
  outline: 2px solid #0a4f89;
  outline-offset: 3px;
}

@media (max-width: 1024px){
  .greeting{
    padding: 80px 0 90px;
  }

  .greeting__grid{
    gap: 36px;
  }

  .greeting__titleWrap h2{
    font-size: 25px;
    line-height: 1.65;
  }

  .greeting__content p{
    font-size: 16px;
  }
}

@media (max-width: 767px){
  .greeting{
    padding: 60px 0 70px;
  }

  .about-head{
    margin-bottom: 30px;
  }

  .about-head__ttl{
    font-size: 24px;
    letter-spacing: .06em;
  }

  .about-head__en{
    margin-top: 6px;
    font-size: 13px;
  }

  .greeting__grid{
    gap: 24px;
  }

  .greeting__name{
    font-size: 14px;
    line-height: 1.6;
  }

  .greeting__titleWrap{
    margin-bottom: 16px;
  }

  .greeting__titleWrap h2{
    font-size: 20px;
    line-height: 1.65;
  }

  .greeting__content p{
    margin-bottom: 40px;
    font-size: 16px;
    line-height: 1.9;
  }

  .greeting__btnWrap{
    margin-top: 20px;
		text-align: center;
  }

  .greeting__btn{
    min-width: 150px;
    min-height: 42px;
    padding: 0 18px;
    font-size: 14px;
  }
}









.greeting__subttl{
  margin: 10px 0 0;
  font-size: 18px;
  line-height: 1.8;
  font-weight: 700;
  color: #0062b2;
}

@media (max-width: 1024px){
  .greeting__subttl{
    font-size: 16px;
    line-height: 1.75;
  }
}

@media (max-width: 767px){
  .greeting__subttl{
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.7;
  }
}








.greeting__photo{
  width: 100%;
  max-width: 380px;
  margin: 0 auto 16px;
  padding: 10px;
  background: #fff;
  border-radius: 58% 42% 52% 48% / 44% 56% 40% 60%;
  transform: rotate(-2deg);
  overflow: hidden;
}

.greeting__photo img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 61% 39% 47% 53% / 52% 48% 55% 45%;
  transform: rotate(2deg) scale(1.02);
  object-fit: cover;
}




.pref-mask.greeting__photo{
  clip-path: none;
border-radius: 63% 37% 58% 42% / 41% 59% 46% 54%;}





@media (max-width: 767px){
  .greeting__photoCol{
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .greeting__photo{
    width: 60%;
    max-width: none;
    margin: 0 auto 16px;
  }

  .greeting__name{
    text-align: center;
  }
}




.news-list{
  display: grid;
  gap: 0;
}

.news-item{
  display: grid;
  grid-template-columns: 120px 1fr;
  align-items: start;

  padding: 20px 0;
  border-top: 1px solid #e5e7eb;
  background: transparent;
}

.news-item:last-child{
  border-bottom: 1px solid #e5e7eb;
}

.news-item time{
  display: block;
  color: #334155;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: .03em;
}

.news-item__body{
  min-width: 0;
}

.news-item__headRow{
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  margin-bottom: 18px;
}

.tag{
  display: inline-block;
  flex: 0 0 auto;
  width: fit-content;
  min-height: 0;
  margin: 0;
  padding: 3px 8px;
  border-radius: 0;
  background: #0062b2;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.35;
  white-space: nowrap;
}

.news-item h3{
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 18px;
  line-height: 1.7;
  font-weight: 700;
  color: #0a3f73;
}

.news-item p{
  margin: 0;
  width: 100%;
  font-size: 16px;
  line-height: 1.9;
}

/* iframe版は使わない */
.news-list--iframe,
.news-iframe{
  display: none !important;
}

/* tablet */
@media (max-width: 1024px){
  .news-item{
    grid-template-columns: 110px 1fr;
    gap: 16px;
    padding: 18px 0;
  }

  .news-item__headRow{
    gap: 14px;
  }

  .news-item h3{
    font-size: 15px;
    line-height: 1.7;
  }

  .news-item p{
    font-size: 16px;
    line-height: 1.85;
  }
}

/* sp */
@media (max-width: 767px){
  .news-item{
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 14px 0;
  }

  .news-item time{
    font-size: 12px;
  }

  .news-item__headRow{
    display: block;
    width: 100%;
    margin-bottom: 6px;
  }

  .tag{
    display: inline-block;
    min-height: 0;
    width: fit-content;
    padding: 3px 8px;
    font-size: 13px;
    margin: 0 0 8px;
  }

  .news-item h3{
    display: block;
    width: 100%;
    font-size: 17px;
    line-height: 1.7;
  }

  .news-item p{
    width: 100%;
    font-size: 16px;
    line-height: 1.8;
  }
}










/* =========================================
   CLINIC INFO / 診療案内
========================================= */
.clinic-info{
  padding: 90px 0 80px;
  background: #f8fafc;
}

.clinic-info .container{
  max-width: 1100px;
}

.clinic-info__head{
  margin-bottom: 44px;
  text-align: center;
}

.clinic-info__ttl{
  margin: 0;
  font-size: 32px;
  line-height: 1.4;
  font-weight: 400;
  color: #1f3344;
  letter-spacing: .08em;
}

.clinic-info__en{
  display: inline-block;
  margin-top: 8px;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: .08em;
  color: #3e74b8;
}

.clinic-info__inner{
  display: grid;
  gap: 36px;
}

.clinic-info__block{
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(10, 35, 66, .08);
  padding: 36px 40px;
}

/* 診療時間表 */
.clinic-info__tableWrap{
  overflow-x: auto;
}

.clinic-info__table{
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid #3e74b8;
}

.clinic-info__table th,
.clinic-info__table td{
  border: 1px solid #3e74b8;
  text-align: center;
  vertical-align: middle;
  color: #3e74b8;
}

.clinic-info__table thead th{
  padding: 12px 8px;
  background: #3e74b8;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
}

.clinic-info__table thead th:first-child{
 width: 40%;
}

.clinic-info__table tbody th{
  padding: 18px 12px;
  background: #fff;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
}

.clinic-info__table tbody td{
  font-size: 20px;
  line-height: 1;
  font-weight: 500;
  padding: 16px 8px;
	background: #fff;
}

.clinic-info__note{
  margin: 18px 0 0;
  font-size: 15px;
  line-height: 1.9;
  color: #4b5563;
  text-align: center;
}

.clinic-info__noteReserve{
  color: #222222;
}

.clinic-info__noteReserveEm{
  color: #c63b3b;
}

/* Web予約 */
.clinic-info__reserveBtnWrap{
  text-align: center;
  margin-bottom: 28px;
}

.clinic-info__reserveBtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 280px;
  min-height: 62px;
  padding: 0 34px;
  border-radius: 999px;
  background: linear-gradient(135deg, #24c7cf 0%, #18b8be 100%);
  color: #fff;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 12px 24px rgba(36, 199, 207, .22);
  transition: transform .2s ease, opacity .2s ease;
}

.clinic-info__reserveBtn:hover{
  opacity: .92;
  transform: translateY(-1px);
}

.clinic-info__reserveNote{
padding: 0 40px;
  margin: 0 auto;
}

.clinic-info__reserveNote h3{
  margin: 0 0 12px;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
  color: #1f3344;
}

.clinic-info__reserveNote p{
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.9;
}

.clinic-info__reserveNote p:last-child{
  margin-top: 10px;
}

/* 初診・再診 */
.clinic-info__visit{
  background: #f4f3ee;
}

.clinic-info__visitLead{
  margin: 0 0 24px;
  text-align: center;
  font-size: 18px;
  line-height: 1.8;
  color: #333;
}

.clinic-info__visitGrid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #ece8df;
}

.clinic-info__visitCard{
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px;
  background: #fff;
  transition: background .2s ease;
}

.clinic-info__visitCard + .clinic-info__visitCard{
  border-left: 1px dashed #d8d2c7;
}

.clinic-info__visitCard:hover{
  background: #f8fbff;
}

.clinic-info__visitIcon{
  flex: 0 0 50px;
  width: 50px;
}

.clinic-info__visitIcon img{
  width: 100%;
  height: auto;
  display: block;
}

.clinic-info__visitText{
  font-size: 20px;
  line-height: 1.5;
  font-weight: 500;
}

/* 外部バナー */
.clinic-info__banners{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.clinic-info__banner{
  display: block;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(10, 35, 66, .08);
  transition: transform .2s ease, opacity .2s ease;
}

.clinic-info__banner:hover{
  transform: translateY(-2px);
  opacity: .95;
}

.clinic-info__banner img{
  width: 100%;
  height: auto;
  display: block;
}

/* =========================
   TABLET
========================= */
@media (max-width: 1024px){
  .clinic-info{
    padding: 80px 0 70px;
  }

  .clinic-info__block{
    padding: 30px 24px;
  }

  .clinic-info__table thead th{
    font-size: 18px;
  }

  .clinic-info__table tbody th{
    font-size: 18px;
  }

  .clinic-info__table tbody td{
    font-size: 28px;
  }

  .clinic-info__reserveBtn{
    min-width: 240px;
    min-height: 56px;
    font-size: 26px;
  }

  .clinic-info__visitText{
    font-size: 19px;
  }

  .clinic-info__visitIcon{
    flex-basis: 78px;
    width: 78px;
  }
}

/* =========================
   SP
========================= */
@media (max-width: 767px){
  .clinic-info{
    padding: 60px 0;
  }

  .clinic-info .container{
    width: min(100%, calc(100% - 28px));
  }

  .clinic-info__head{
    margin-bottom: 28px;
  }

  .clinic-info__ttl{
    font-size: 24px;
    letter-spacing: .06em;
  }

  .clinic-info__en{
    margin-top: 6px;
    font-size: 13px;
  }

  .clinic-info__inner{
    gap: 20px;
  }

  .clinic-info__block{
    padding: 22px 16px;
    border-radius: 14px;
  }

  .clinic-info__table{
    min-width: 720px;
  }

  .clinic-info__note{
    margin-top: 14px;
    font-size: 15px;
    text-align: left;
  }

  .clinic-info__reserveBtn{
    min-width: 220px;
    min-height: 52px;
    font-size: 22px;
  }

  .clinic-info__reserveNote h3{
    font-size: 18px;
    margin-bottom: 10px;
  }

  .clinic-info__reserveNote p{
    font-size: 15px;
    line-height: 1.85;
  }

  .clinic-info__visitLead{
    font-size: 15px;
    margin-bottom: 16px;
  }

  .clinic-info__visitGrid{
    grid-template-columns: 1fr;
  }

  .clinic-info__visitCard{
    min-height: auto;
    justify-content: flex-start;
    gap: 16px;
    padding: 18px 16px;
  }

  .clinic-info__visitCard + .clinic-info__visitCard{
    border-left: none;
    border-top: 1px dashed #d8d2c7;
  }

  .clinic-info__visitIcon{
    flex: 0 0 36px;
    width: 36px;
  }

  .clinic-info__visitText{
    font-size: 18px;
  }

  .clinic-info__banners{
    grid-template-columns: 1fr;
    gap: 14px;
  }
}




/* =========================================
   CLINIC INFO MAIN BLOCK
========================================= */
.clinic-info__block--main{
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(10, 35, 66, .08);
  padding: 36px 40px;
}

.clinic-info__section + .clinic-info__section{
  margin-top: 36px;
  padding-top: 36px;
  border-top: 1px solid #e3e8ef;
}

.clinic-info__section--visit{
  background: #f4f3ee;
  border-radius: 16px;
  padding: 28px;
}

.clinic-info__section--visit.clinic-info__section + .clinic-info__section{
  margin-top: 36px;
}

@media (max-width: 1024px){
  .clinic-info__block--main{
    padding: 30px 24px;
  }

  .clinic-info__section + .clinic-info__section{
    margin-top: 30px;
    padding-top: 30px;
  }

  .clinic-info__section--visit{
    padding: 24px;
  }
}

@media (max-width: 767px){
  .clinic-info__block--main{
    padding: 22px 16px;
    border-radius: 14px;
  }

  .clinic-info__section + .clinic-info__section{
    margin-top: 22px;
    padding-top: 22px;
  }

  .clinic-info__section--visit{
    padding: 18px 14px;
    border-radius: 12px;
  }
	
	.clinic-info__reserveNote{
padding: 0 10px;
  margin: 0 auto;
}
}


















/* =========================================
   FOOTER INFO
========================================= */
.site-footer-info{
  padding: 80px 0;
  background: linear-gradient(180deg, #eef5fc 0%, #f8fbff 100%);
}

.site-footer-info .container{
  max-width: 1200px;
}

.site-footer-info__panel{
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 12px 30px rgba(10, 35, 66, .10);
  padding: 50px;
}

.site-footer-info__inner{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 40px;
  align-items: start;
}

.site-footer-info__left{

}

.site-footer-info__left > * + *{
  margin-top: 40px;
}

.site-footer-info__right > * + *{
  margin-top: 54px;
}

.site-footer-info__brand{
  display: grid;
  gap: 20px;
}

.site-footer-info__logo{
  display: inline-block;
  width: 320px;
  max-width: 100%;
}

.site-footer-info__logo img{
  width: 100%;
  height: auto;
  display: block;
}

.site-footer-info__access{
  display: grid;
  gap: 8px;
}

.site-footer-info__address,
.site-footer-info__train{
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
  color: #334155;
}

.site-footer-info__heading{
  margin: 0 0 18px;
  font-size: 24px;
  line-height: 1.5;
  font-weight: 700;
  color: #0a3f73;
}

.site-footer-info__tableWrap{
  overflow-x: auto;
}

.site-footer-info__table{
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 2px solid #2f6fb7;
}

.site-footer-info__table th,
.site-footer-info__table td{
  border: 2px solid #2f6fb7;
  text-align: center;
  vertical-align: middle;
  color: #2f6fb7;
}

.site-footer-info__table thead th{
  padding: 10px 6px;
  background: #2f6fb7;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.site-footer-info__table thead th:first-child{
  background: #fff;
  color: #2f6fb7;
  width: 38%;
}

.site-footer-info__table tbody th{
  padding: 14px 10px;
  background: #fff;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}

.site-footer-info__table tbody td{
  padding: 12px 6px;
  font-size: 26px;
  line-height: 1;
  font-weight: 500;
}

.site-footer-info__scheduleNote{
  margin: 14px 0 0;
  font-size: 14px;
  line-height: 1.9;
  color: #475569;
}

.site-footer-info__reserve{
  padding: 28px;
  border-radius: 16px;
  background: #f3f8fe;
}

.site-footer-info__reserveBtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 260px;
  min-height: 56px;
  padding: 0 28px;
  border-radius: 999px;
  background: linear-gradient(135deg, #24c7cf 0%, #18b8be 100%);
  color: #fff;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 12px 24px rgba(36, 199, 207, .22);
  transition: transform .2s ease, opacity .2s ease;
}

.site-footer-info__reserveBtn:hover{
  opacity: .92;
  transform: translateY(-1px);
}

.site-footer-info__reserveNote{
  margin-top: 18px;
}

.site-footer-info__reserveNote p{
  margin: 0 0 6px;
  font-size: 15px;
  line-height: 1.9;
  color: #475569;
}

.site-footer-info__reserveNote p:last-child{
  margin-bottom: 0;
}

.site-footer-info__instagramBanner{
  display: block;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(10, 35, 66, .08);
  transition: transform .2s ease, opacity .2s ease;
}

.site-footer-info__instagramBanner:hover{
  transform: translateY(-2px);
  opacity: .95;
}

.site-footer-info__instagramBanner img{
  width: 100%;
  height: auto;
  display: block;
}

/* サイトマップ */
.site-footer-info__sitemap{
  padding-top: 6px;
}

.site-footer-info__nav{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 70px;
  row-gap: 18px;
  align-items: start;
}

.site-footer-info__nav > li{
  min-width: 0;
}

.site-footer-info__nav > li > a{
  display: inline-block;
  font-size: 16px;
  line-height: 1.7;
  font-weight: 700;
  color: #0062b2;
  letter-spacing: .04em;
}

.site-footer-info__nav > li > a:hover,
.site-footer-info__subnav a:hover{
  opacity: .75;
}

.site-footer-info__navGroup{
  grid-column: 2;
  grid-row: 1 / span 3;
}

.site-footer-info__subnav{
  margin-top: 8px;
  display: grid;
  gap: 6px;
}

.site-footer-info__subnav a{
  display: inline-block;
  font-size: 15px;
  line-height: 1.8;
  font-weight: 700;
  color: #0062b2;
}

.site-footer-info__mapFrame{
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(10, 35, 66, .08);
  border: 1px solid #dbe7f4;
}

.site-footer-info__mapFrame iframe{
  display: block;
  width: 100%;
  height: 740px;
  border: 0;
}

/* =========================
   TABLET
========================= */
@media (max-width: 1024px){
  .site-footer-info{
    padding: 64px 0;
  }

  .site-footer-info__panel{
    padding: 28px 24px 32px;
  }

  .site-footer-info__inner{
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .site-footer-info__reserveBtn{
    min-width: 230px;
    min-height: 52px;
    font-size: 24px;
  }

  .site-footer-info__nav{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 40px;
    row-gap: 16px;
  }

  .site-footer-info__navGroup{
    grid-column: auto;
    grid-row: auto;
  }

  .site-footer-info__mapFrame iframe{
    height: 360px;
  }
}

/* =========================
   SP
========================= */
@media (max-width: 767px){
  .site-footer-info{
    padding: 48px 0;
  }

  .site-footer-info .container{
    width: min(100%, calc(100% - 28px));
  }

  .site-footer-info__panel{
    padding: 22px 16px 24px;
    border-radius: 14px;
  }

  .site-footer-info__left > * + *,
  .site-footer-info__right > * + *{
    margin-top: 24px;
  }

  .site-footer-info__heading{
    margin-bottom: 14px;
    font-size: 20px;
  }

  .site-footer-info__address,
  .site-footer-info__train{
    font-size: 15px;
    line-height: 1.85;
  }

  .site-footer-info__table{
    min-width: 680px;
  }

  .site-footer-info__scheduleNote{
    font-size: 13px;
    line-height: 1.85;
  }

  .site-footer-info__reserve{
    padding: 18px 14px;
    border-radius: 12px;
  }

  .site-footer-info__reserveBtn{
    width: 100%;
    min-width: 0;
    min-height: 50px;
    font-size: 22px;
  }

  .site-footer-info__reserveNote p{
    font-size: 14px;
    line-height: 1.8;
  }

  .site-footer-info__nav{
    grid-template-columns: 1fr;
    row-gap: 14px;
  }

  .site-footer-info__nav > li > a{
    font-size: 15px;
  }

  .site-footer-info__subnav{
    margin-top: 6px;
    gap: 4px;
  }

  .site-footer-info__subnav a{
    font-size: 13px;
    line-height: 1.7;
  }

  .site-footer-info__mapFrame iframe{
    height: 300px;
  }
}



/* =========================
   Footer info adjust
========================= */

/* 右カラムのナビは上寄せ */
.site-footer-info__nav{
  align-items: start;
}

.site-footer-info__nav > li{
  align-self: start;
}

.site-footer-info__navGroup{
  align-self: start;
}

/* 診療内容の小項目を少し小さく・細く */
.site-footer-info__subnav a{
  font-size: 13px;
  line-height: 1.75;
  font-weight: 400;
  color: #4b5563;
}

/* アクセス表示を添付UI風に */
.site-footer-info__trainBlock{
  margin-top: 10px;
  padding-top: 18px;
  border-top: 1px solid #cfd8e3;
}

.site-footer-info__trainHeading{
  margin: 0 0 12px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #0062b2;
  letter-spacing: .06em;
}

.site-footer-info__train{
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
  font-weight: 400;
  color: #334155;
}

/* 住所 */
.site-footer-info__address{
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
  color: #334155;
}

/* SP */
@media (max-width: 767px){
  .site-footer-info__trainBlock{
    margin-top: 8px;
    padding-top: 14px;
  }

  .site-footer-info__trainHeading{
    margin-bottom: 10px;
    font-size: 24px;
  }

  .site-footer-info__train{
    font-size: 15px;
    line-height: 1.8;
  }

  .site-footer-info__subnav a{
    font-size: 12px;
    line-height: 1.7;
    font-weight: 400;
  }
}



/* =========================
   Clinic info note / reserve heading adjust
========================= */
.clinic-info__note{
  color: #222;
}

.clinic-info__noteMark{
  color: #0062b2;
  font-weight: 700;
}

.clinic-info__noteClosed{
  color: #c63b3b;
}

.clinic-info__reserveNote h3{
  color: #256fb2;
}



/* =========================
   Web予約ボタンを greeting__btn と同一デザイン化
   背景グラデのみピンク系
========================= */
.clinic-info__reserveBtn{
  min-width: 180px;
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  background: linear-gradient(135deg, #f45e7a, #eb4d6a);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 10px 24px rgba(216, 106, 160, .18);
  transition: .7s;
}

.clinic-info__reserveBtn::before{
  content: "▲";
  display: inline-block;
  transform: rotate(90deg);
  color: #fff;
  font-size: 8px;
  margin-right: 10px;
  vertical-align: middle;
}

.clinic-info__reserveBtn:hover{
  opacity: .7;
  transform: none;
}

@media (max-width: 1024px){
  .clinic-info__reserveBtn{
    min-width: 180px;
    min-height: 48px;
    font-size: 15px;
    padding: 0 22px;
  }
}

@media (max-width: 767px){
  .clinic-info__reserveBtn{
    min-width: 150px;
    min-height: 42px;
    padding: 0 18px;
    font-size: 14px;
    width: auto;
  }
}

/* =========================
   Footer schedule: clinic-info table design
========================= */
.site-footer-info__schedule .site-footer-info__heading{
  display: none;
}

.clinic-info__tableWrap--footer{
  overflow-x: auto;
}

.clinic-info__table--footer{
  min-width: 100%;
}

.clinic-info__note--footer{
  margin-top: 14px;
  text-align: center;
}

@media (max-width: 767px){
  .clinic-info__table--footer{
    min-width: 720px;
  }

  .clinic-info__note--footer{
    text-align: left;
  }

  .clinic-info__noteFooterBreak{
    display: none;
  }
}


/* =========================
   Footer access / reserve adjust
========================= */

/* アクセス見出しの下にボーダー */
.site-footer-info__trainBlock{
  margin-top: 10px;
  padding-top: 0;
  border-top: none;
}

.site-footer-info__trainHeading{
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid #cfd8e3;
  font-size: 16px;
  line-height: 1.4;
}

.site-footer-info__train{
  margin-top: 12px;
}

/* フッターのWeb予約を clinic-info 側のデザインに合わせる */
.site-footer-info__reserve{
  padding: 28px;
  border-radius: 16px;
  background: #f3f8fe;
}

.clinic-info__section--reserveFooter{
  border-top: none;
}

.site-footer-info__reserve .clinic-info__reserveBtnWrap{
  text-align: center;
  margin-bottom: 28px;
}

.site-footer-info__reserve .clinic-info__reserveNote{
padding: 0 10px;
margin: 0 auto;
}

.site-footer-info__reserve .clinic-info__reserveNote h3{
  margin: 0 0 12px;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
  color: #0062b2;
}

.site-footer-info__reserve .clinic-info__reserveNote p{
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.9;
  color: #1b2a3a;
}

.site-footer-info__reserve .clinic-info__reserveNote p:last-child{
  margin-top: 10px;
  margin-bottom: 0;
}

@media (max-width: 767px){
  .site-footer-info__trainBlock{
    margin-top: 8px;
    padding-top: 0;
  }

  .site-footer-info__trainHeading{
    padding-bottom: 8px;
    font-size: 15px;
  }

  .site-footer-info__reserve{
    padding: 18px 14px;
    border-radius: 12px;
  }

  .site-footer-info__reserve .clinic-info__reserveBtnWrap{
    margin-bottom: 18px;
  }

  .site-footer-info__reserve .clinic-info__reserveNote h3{
    font-size: 18px;
    margin-bottom: 10px;
  }

  .site-footer-info__reserve .clinic-info__reserveNote p{
    font-size: 14px;
    line-height: 1.85;
  }
}






/* =========================
   Footer sitemap layout adjust
========================= */
.site-footer-info__sitemap{
  padding: 0 30px;
}

.site-footer-info__nav{
  display: grid;
  grid-template-columns: max-content max-content max-content;
  column-gap: 110px;
  row-gap: 15px;
  align-items: start;
  justify-content: start;
}

.site-footer-info__nav > li{
  min-width: 0;
  align-self: start;
  margin: 0;
  padding: 0;
  line-height: 1.4;
}

/* 左カラム */
.site-footer-info__nav > li:nth-child(1){
  grid-column: 1;
  grid-row: 1;
}
.site-footer-info__nav > li:nth-child(2){
  grid-column: 1;
  grid-row: 2;
}
.site-footer-info__nav > li:nth-child(3){
  grid-column: 1;
  grid-row: 3;
}

/* 中央カラム（診療内容） */
.site-footer-info__navGroup{
  grid-column: 2;
  grid-row: 1 / span 5;
  align-self: start;
}

/* 右カラム */
.site-footer-info__nav > li:nth-child(5){
  grid-column: 3;
  grid-row: 1;
}
.site-footer-info__nav > li:nth-child(6){
  grid-column: 3;
  grid-row: 2;
}
.site-footer-info__nav > li:nth-child(7){
  grid-column: 3;
  grid-row: 3;
}

.site-footer-info__nav > li > a{
  display: inline-block;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
  color: #0062b2;
  letter-spacing: .04em;
  margin: 0;
  padding: 0;
}

.site-footer-info__navGroup > a{
  margin-bottom: 6px;
}

.site-footer-info__subnav{
  margin-top: 15px;
  display: grid;
  gap: 10px;
}

.site-footer-info__subnav li{
  margin: 0;
  padding: 0;
  line-height: 1.4;
}

.site-footer-info__subnav a{
  display: inline-block;
  font-size: 15px;
  line-height: 1.55;
  font-weight: 500;
  color: #0062b2;
  margin: 0;
  padding: 0;
}

/* hover */
.site-footer-info__nav > li > a:hover,
.site-footer-info__subnav a:hover{
  opacity: .75;
}

/* tablet以下 */
@media (max-width: 1024px){
  .site-footer-info__nav{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 40px;
    row-gap: 10px;
  }

  .site-footer-info__nav > li:nth-child(1),
  .site-footer-info__nav > li:nth-child(2),
  .site-footer-info__nav > li:nth-child(3),
  .site-footer-info__navGroup,
  .site-footer-info__nav > li:nth-child(5),
  .site-footer-info__nav > li:nth-child(6),
  .site-footer-info__nav > li:nth-child(7){
    grid-column: auto;
    grid-row: auto;
  }
}

/* SP */
@media (max-width: 767px){
.site-footer-info__sitemap{
  padding: 0 10px;
}
  .site-footer-info__nav{
    grid-template-columns: 1fr;
    row-gap: 10px;
  }

  .site-footer-info__nav > li > a{
    font-size: 15px;
    line-height: 1.45;
  }

  .site-footer-info__subnav{
    margin-top: 4px;
    gap: 4px;
  }

  .site-footer-info__subnav a{
    font-size: 13px;
    line-height: 1.6;
    color: #0062b2;
  }
}





/* =========================
   Footer Instagram Banner
========================= */
.site-footer-info__instagramBanner{
  display: block;
  padding: 18px 24px 20px;
  border: 1px solid #ea7aa3;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  transition: opacity .2s ease;
}

.site-footer-info__instagramBanner:hover{
  opacity: .85;
  transform: none;
}

.site-footer-info__instagramBanner img{
  display: block;
  width: 100%;
  height: auto;
}

.site-footer-info__instagramLead{
  display: block;
  margin: 0 0 10px;
  text-align: center;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #ef4f86;
  letter-spacing: .04em;
}

.site-footer-info__instagramMain{
  display: flex;
  align-items: center;
  gap: 18px;
}

.site-footer-info__instagramIcon{
  flex: 0 0 58px;
  width: 58px;
}

.site-footer-info__instagramIcon img{
  width: 100%;
  height: auto;
}

.site-footer-info__instagramText{
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: #ef4f86;
  line-height: 1.2;
}

.site-footer-info__instagramText span:first-child{
  font-size: 24px;
  font-weight: 500;
}

.site-footer-info__instagramText span:last-child{
  font-size: 28px;
  font-weight: 500;
}

/* tablet */
@media (max-width: 1024px){
  .site-footer-info__instagramBanner{
    padding: 16px 20px 18px;
  }

  .site-footer-info__instagramLead{
    font-size: 16px;
    margin-bottom: 10px;
  }

  .site-footer-info__instagramMain{
    gap: 14px;
  }

  .site-footer-info__instagramIcon{
    flex: 0 0 52px;
    width: 52px;
  }

  .site-footer-info__instagramText span:first-child{
    font-size: 21px;
  }

  .site-footer-info__instagramText span:last-child{
    font-size: 24px;
  }
}

/* sp */
@media (max-width: 767px){
  .site-footer-info__instagramBanner{
    padding: 14px 16px 16px;
  }

  .site-footer-info__instagramLead{
    font-size: 14px;
    margin-bottom: 8px;
  }

  .site-footer-info__instagramMain{
    gap: 12px;
  }

  .site-footer-info__instagramIcon{
    flex: 0 0 42px;
    width: 42px;
  }

  .site-footer-info__instagramText span:first-child{
    font-size: 17px;
  }

  .site-footer-info__instagramText span:last-child{
    font-size: 20px;
  }
}



/* =========================
   Footer Instagram Banner adjust
========================= */
.site-footer-info__instagram{
width: 100%;
text-align: center;
}
.site-footer-info__instagramBanner{
  display: inline-block;
  width: auto;
  max-width: 100%;
  padding: 14px 18px 16px;
}

.site-footer-info__instagramLead{
  margin: 0 0 8px;
  padding-left: calc(46px + 12px); /* ロゴ幅 + gap に合わせる */
  text-align: left;
  font-size: 15px;
  line-height: 1.35;
}

.site-footer-info__instagramMain{
  display: flex;
  align-items: center;
  gap: 12px;
  width: auto;
}

.site-footer-info__instagramIcon{
  flex: 0 0 46px;
  width: 46px;
}

.site-footer-info__instagramText{
  gap: 1px;
}

.site-footer-info__instagramText span:first-child{
  font-size: 18px;
  font-weight: 500;
  line-height: 1.2;
}

.site-footer-info__instagramText span:last-child{
  font-size: 19px;
  font-weight: 500;
  line-height: 1.2;
}

@media (max-width: 1024px){
.site-footer-info__instagram{
width: 100%;
text-align: center;
}
  .site-footer-info__instagramBanner{
    padding: 12px 16px 14px;
  }

  .site-footer-info__instagramLead{
    padding-left: calc(40px + 10px);
    font-size: 14px;
  }

  .site-footer-info__instagramMain{
    gap: 10px;
  }

  .site-footer-info__instagramIcon{
    flex: 0 0 40px;
    width: 40px;
  }

  .site-footer-info__instagramText span:first-child{
    font-size: 16px;
  }

  .site-footer-info__instagramText span:last-child{
    font-size: 17px;
  }
}

@media (max-width: 767px){
.site-footer-info__instagram{
width: 100%;
text-align: center;
}
  .site-footer-info__instagramBanner{
    padding: 10px 12px 12px;
  }

  .site-footer-info__instagramLead{
    margin-bottom: 6px;
    padding-left: calc(34px + 10px);
    font-size: 12px;
  }

  .site-footer-info__instagramMain{
    gap: 10px;
  }

  .site-footer-info__instagramIcon{
    flex: 0 0 34px;
    width: 34px;
  }

  .site-footer-info__instagramText span:first-child{
    font-size: 14px;
  }

  .site-footer-info__instagramText span:last-child{
    font-size: 15px;
  }
}




/* =========================
   SP最適化
========================= */
@media (max-width: 767px){

  /* （1）診療時間表の横幅突き抜け防止 */
  .clinic-info__tableWrap,
  .clinic-info__tableWrap--footer{
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .clinic-info__table,
  .clinic-info__table--footer{
    width: 100%;
    min-width: 0 !important;
    max-width: 100%;
    table-layout: fixed;
  }

  .clinic-info__table thead th,
  .clinic-info__table--footer thead th{
    padding: 8px 2px;
    font-size: 11px;
    line-height: 1.3;
  }

  .clinic-info__table thead th:first-child,
  .clinic-info__table--footer thead th:first-child{
    width: 34%;
  }

  .clinic-info__table tbody th,
  .clinic-info__table--footer tbody th{
    padding: 10px 4px;
    font-size: 14px;
    line-height: 1.4;
    white-space: normal;
  }

  .clinic-info__table tbody td,
  .clinic-info__table--footer tbody td{
    padding: 8px 2px;
    font-size: 14px;
    line-height: 1;
  }

  /* noteの左右も少し整える */
  .clinic-info__note,
  .clinic-info__note--footer{
    padding-inline: 2px;
  }

  /* （2）画面最下部固定のWeb予約ボタン */
  body{
    padding-bottom: 84px;
  }

  .sp-fixed-web-reserve{
    position: fixed;
    left: 14px;
    right: 14px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    z-index: 1400;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 18px;
    border-radius: 999px;
    background: linear-gradient(135deg, #f45e7a, #eb4d6a);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 10px 24px rgba(216, 106, 160, .28);
  }

  .sp-fixed-web-reserve::before{
    content: "▲";
    display: inline-block;
    transform: rotate(90deg);
    color: #fff;
    font-size: 8px;
    margin-right: 10px;
    vertical-align: middle;
  }
}

@media (min-width: 768px){
  .sp-fixed-web-reserve{
    display: none;
  }
}












/* =========================
   Doctor page hero
========================= */
.hero--subpage{
  height: 400px;
  min-height: 300px;
  padding-top: calc(38px + 84px + 40px);
  padding-bottom: 40px;
  background-position: center;
}

.hero--subpage .hero-wrap{
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero--subpage .hero-copy{
  width: 100%;
}

.hero--subpage .hero-copy-inner{
  max-width: 100%;
  margin: 0;
  text-align: center;
}

.hero--subpage #heroTitle.hero-title-simple{
  display: block;
  margin: 0;
  padding: 0;
  transform: none;
  text-align: center;
  font-size: 42px;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: .08em;
  color: #ffffff;
  text-shadow: 0 4px 18px rgba(0, 0, 0, .18);
}

/* 既存の #heroTitle 用装飾を無効化 */
.hero--subpage #heroTitle.hero-title-simple .hero-copy,
.hero--subpage #heroTitle.hero-title-simple .hero-copy--lead,
.hero--subpage #heroTitle.hero-title-simple .hero-copy--main{
  all: unset;
}

@media (max-width: 768px){
  .hero--subpage{
    height: 300px;
    min-height: 300px;
    padding-top: calc(72px + env(safe-area-inset-top) + 24px) !important;
    padding-bottom: 24px;
  }

  .hero--subpage #heroTitle.hero-title-simple{
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: .06em;
  }
}












/* =========================================
   Doctor page main
========================================= */
.page-doctor{
  padding: 80px 0 120px;
  background: #eef2f5;
}

.page-doctor .container{
  max-width: 1280px;
}

.doctor-page__panel{
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 12px 30px rgba(10, 35, 66, .10);
  padding: 56px 56px 60px;
}

.doctor-profile{
  margin-bottom: 48px;
}

.doctor-profile__grid{
  display: grid;
  grid-template-columns: 480px 1fr;
  gap: 56px;
  align-items: start;
}

.doctor-profile__photo{
  margin: 0;
}

.doctor-profile__photo img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 61% 39% 47% 53% / 52% 48% 55% 45%;
  object-fit: cover;
  box-shadow: 0 10px 24px rgba(10, 35, 66, .08);
}

.doctor-profile__position{
  margin: 0 0 14px;
  font-size: 17px;
  line-height: 1.6;
  color: #256fb2;
  letter-spacing: .08em;
	font-weight: 500;
}

.doctor-profile__name{
  margin: 0 0 28px;
  font-size: 25px;
  line-height: 1.4;
  font-weight: 700;
  color: #256fb2;
  letter-spacing: .04em;
}

.doctor-profile__message{
  margin-bottom: 34px;
  padding: 8px 0 8px 26px;
  border-left: 4px solid #d5e4f5;
}

.doctor-profile__message p{
  margin: 0;
  font-size: 42px;
  line-height: 1.75;
  font-weight: 700;
  color: #0a3f73;
  letter-spacing: .03em;
}

.doctor-profile__text p{
  margin: 0 0 18px;
  font-size: 16px;
  line-height: 2.2;
  color: #334155;
}

.doctor-profile__text p:last-child{
  margin-bottom: 0;
}

.doctor-info-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  margin-top: 28px;
}

.doctor-info-grid--bottom{
  grid-template-columns: 1fr;
}

.doctor-info-card{
  background: #fff;
  border: 1px solid #dbe7f4;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(10, 35, 66, .05);
}

.doctor-info-card__title{
  position: relative;
  margin: 0;
  padding: 18px 24px 18px 38px;
  background: #f4f8fc;
  font-size: 20px;
  line-height: 1.5;
  font-weight: 700;
  color: #0a3f73;
}

.doctor-info-card__title::before{
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  width: 6px;
  height: 30px;
  border-radius: 999px;
  background: #256fb2;
  transform: translateY(-50%);
}

.doctor-info-card__list{
  margin: 0;
  padding: 24px 28px 28px;
  list-style: none;
}

.doctor-info-card__list li{
  position: relative;
  margin: 0;
  padding-left: 1.2em;
  font-size: 16px;
  line-height: 2.1;
  color: #334155;
}

.doctor-info-card__list li::before{
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: #256fb2;
  font-weight: 700;
}

.doctor-info-card__list--columns{
  columns: 2;
  column-gap: 36px;
}

.doctor-info-card__list--columns li{
  break-inside: avoid;
}

.doctor-history{
  margin: 0;
  padding: 24px 28px 28px;
}

.doctor-history__row{
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 15px;
  padding: 4px 0;
}

.doctor-history__row dt{
  margin: 0;
  font-size: 16px;
  line-height: 2;
  font-weight: 500;
  color: #0a3f73;
}

.doctor-history__row dd{
  margin: 0;
  font-size: 16px;
  line-height: 2;
}

@media (max-width: 1100px){
  .doctor-page__panel{
    padding: 40px 32px 44px;
  }

  .doctor-profile__grid{
    grid-template-columns: 380px 1fr;
    gap: 36px;
  }

  .doctor-profile__name{
    font-size: 34px;
  }

  .doctor-profile__message p{
    font-size: 32px;
  }

  .doctor-profile__text p{
    font-size: 17px;
  }

  .doctor-info-card__title{
    font-size: 21px;
  }

  .doctor-info-card__list li,
  .doctor-history__row dt,
  .doctor-history__row dd{
    font-size: 16px;
  }
}

@media (max-width: 767px){
  .page-doctor{
    padding: 48px 0 80px;
    background: #eef2f5;
  }

  .page-doctor .container{
    width: min(100%, calc(100% - 28px));
  }

  .doctor-page__panel{
    padding: 24px 16px 28px;
    border-radius: 14px;
  }

  .doctor-profile{
    margin-bottom: 28px;
  }

  .doctor-profile__grid{
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .doctor-profile__photo img{
    border-radius: 61% 39% 47% 53% / 52% 48% 55% 45%;
  }

  .doctor-profile__position{
    margin-bottom: 10px;
    font-size: 15px;
  }

  .doctor-profile__name{
    margin-bottom: 18px;
    font-size: 28px;
    line-height: 1.45;
  }

  .doctor-profile__message{
    margin-bottom: 22px;
    padding-left: 16px;
    border-left-width: 3px;
  }

  .doctor-profile__message p{
    font-size: 24px;
    line-height: 1.75;
  }

  .doctor-profile__text p{
    margin-bottom: 14px;
    font-size: 15px;
    line-height: 2;
  }

  .doctor-info-grid{
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 18px;
  }

  .doctor-info-card{
    border-radius: 14px;
  }

  .doctor-info-card__title{
    padding: 14px 16px 14px 30px;
    font-size: 18px;
  }

  .doctor-info-card__title::before{
    left: 14px;
    width: 4px;
    height: 22px;
  }

  .doctor-info-card__list{
    padding: 16px 16px 18px;
  }

  .doctor-info-card__list li{
    font-size: 14px;
    line-height: 1.95;
  }

  .doctor-info-card__list--columns{
    columns: 1;
  }

  .doctor-history{
    padding: 16px 16px 18px;
  }

  .doctor-history__row{
    grid-template-columns: 84px 1fr;
    gap: 12px;
    padding: 4px 0;
  }

  .doctor-history__row dt,
  .doctor-history__row dd{
    font-size: 14px;
    line-height: 1.9;
  }
}




/* =========================
   Doctor page layout adjust
========================= */

/* 専門医・認定医も2列化 */
.doctor-info-card__list--columns{
  columns: 2;
  column-gap: 36px;
}

.doctor-info-card__list--columns li{
  break-inside: avoid;
}

/* PCでは略歴を横幅100% */
@media (min-width: 768px){
  .doctor-info-grid.doctor-info-grid--bottom:first-of-type{
    grid-template-columns: 1fr;
  }

  .doctor-info-grid.doctor-info-grid--bottom:first-of-type .doctor-info-card{
    width: 100%;
  }
}

/* SPでは1列維持 */
@media (max-width: 767px){
  .doctor-info-card__list--columns{
    columns: 1;
  }
}





 /* =========================
   Doctor page layout adjust 02
========================= */

/* 専門医・認定医 と 所属学会 を縦並び・各100%幅に */
@media (min-width: 768px){
  .doctor-info-grid{
    grid-template-columns: 1fr;
  }

  .doctor-info-grid .doctor-info-card{
    width: 100%;
  }
}






/* =========================
   Doctor profile visual sync with index greeting
========================= */

/* 写真を index.html の greeting 写真と同デザインに */
.doctor-profile__photo.greeting__photo{
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
}

/* doctorページ内では左寄せに戻す */
.doctor-profile__grid .doctor-profile__photo{
  justify-self: start;
}

/* タイトル帯を index.html の title-wrap デザインに合わせる */
.doctor-profile__message.greeting__titleWrap{
  margin-bottom: 24px;
}

.doctor-profile__message.greeting__titleWrap > div{
  font-family: "Klee One", cursive;
  font-size: 30px;
  padding-bottom: 20px;
  margin-bottom: 40px;
  color: #18231d;
}

.doctor-profile__message.greeting__titleWrap::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  bottom: -6px;
  height: 1px;
  border-radius: 0;
  background: linear-gradient(
    90deg,
    #00549a 0%,
    #b7daf4 100%
  );
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, .75) 12%,
    rgba(0, 0, 0, 1) 50%,
    rgba(0, 0, 0, .75) 88%,
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, .75) 12%,
    rgba(0, 0, 0, 1) 50%,
    rgba(0, 0, 0, .75) 88%,
    transparent 100%
  );
}

/* 既存のdoctor用見出し装飾は打ち消す */
.doctor-profile__message{
  padding: 0;
  border-left: none;
}

.doctor-profile__message p{
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  color: inherit;
  letter-spacing: inherit;
}

/* SP */
@media (max-width: 767px){
  .doctor-profile__grid .doctor-profile__photo{
    justify-self: center;
  }

  .doctor-profile__message.greeting__titleWrap{
    margin-bottom: 16px;
  }

  .doctor-profile__message.greeting__titleWrap > div{
    font-size: 24px;
    line-height: 1.8;
    padding-bottom: 14px;
    margin-bottom: 24px;
  }
}


 /* =========================
   doctor message underline fix
========================= */
.doctor-profile__message.greeting__titleWrap{
  position: relative;
  display: block;
  width: 100%;
}

.doctor-profile__message.greeting__titleWrap::after{
  left: 0;
  right: 0;
  bottom: 0;
}








/* =========================================
   doctor members add
========================================= */
.doctor-member + .doctor-member{
  margin-top: 64px;
  padding-top: 64px;
  border-top: 1px solid #dbe7f4;
}

.doctor-simple-meta{
  display: grid;
  gap: 8px;
  margin-bottom: 24px;
}

.doctor-simple-meta p{
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
  color: #334155;
}

.doctor-subheading{
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
  color: #0a3f73;
}

.doctor-specialty{
  margin-bottom: 24px;
}

.doctor-specialty p{
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.9;
  color: #334155;
}

.doctor-profile__text--compact p{
  font-size: 16px;
  line-height: 2;
}

/* 渡部先生：院長コメント風の柔らかい吹き出し */
.doctor-comment-bubble{
  position: relative;
  margin-top: 8px;
  padding: 28px 28px 24px;
  background: #f8fbff;
  border: 1px solid #d9e9f8;
  border-radius: 24px;
  box-shadow: 0 10px 24px rgba(47, 143, 218, .08);
}

.doctor-comment-bubble::before{
  content: "";
  position: absolute;
  left: 26px;
  top: -14px;
  width: 26px;
  height: 26px;
  background: #f8fbff;
  border-top: 1px solid #d9e9f8;
  border-left: 1px solid #d9e9f8;
  transform: rotate(45deg);
}

.doctor-comment-bubble__label{
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 700;
  color: #256fb2;
  letter-spacing: .08em;
}

.doctor-comment-bubble p{
  margin: 0 0 12px;
  font-size: 16px;
  line-height: 2;
  color: #334155;
}

.doctor-comment-bubble p:last-child{
  margin-bottom: 0;
}

/* ダミー写真用にも自然に見えるよう補助 */
.doctor-member .doctor-profile__photo img{
  background: #eef5fc;
}

/* SP */
@media (max-width: 767px){
  .doctor-member + .doctor-member{
    margin-top: 40px;
    padding-top: 40px;
  }

  .doctor-simple-meta{
    gap: 6px;
    margin-bottom: 18px;
  }

  .doctor-simple-meta p,
  .doctor-specialty p,
  .doctor-comment-bubble p{
    font-size: 14px;
    line-height: 1.9;
  }

  .doctor-subheading{
    font-size: 16px;
    margin-bottom: 8px;
  }

  .doctor-specialty{
    margin-bottom: 18px;
  }

  .doctor-comment-bubble{
    padding: 22px 18px 18px;
    border-radius: 18px;
  }

  .doctor-comment-bubble::before{
    left: 20px;
    top: -10px;
    width: 20px;
    height: 20px;
  }

  .doctor-comment-bubble__label{
    font-size: 12px;
    margin-bottom: 10px;
  }
}







/* =========================
   doctor member layout refine
========================= */
.doctor-member .doctor-profile{
  margin-bottom: 0;
}

.doctor-member .doctor-profile__content{
  min-width: 0;
}

.doctor-member .doctor-profile__name{
  margin-bottom: 48px;
}

.doctor-member .doctor-info-grid{
  margin-top: 24px;
}

.doctor-member .doctor-info-grid:first-of-type{
  margin-top: 32px;
}

/* 渡部先生の吹き出しは院長本文の代わりとして少し上質に */
.doctor-comment-bubble{
  margin-top: 8px;
}

@media (max-width: 767px){
  .doctor-member .doctor-info-grid{
    margin-top: 16px;
  }

  .doctor-member .doctor-info-grid:first-of-type{
    margin-top: 22px;
  }

  .doctor-member .doctor-profile__name{
    margin-bottom: 14px;
  }
}



.doctor-member__btnWrap{
  margin-bottom: 32px;
}





/* =========================================
   Dermatology Overview Page
========================================= */
.page-dermatology-overview{
  padding: 80px 0 120px;
  background: #eef2f5;
}

.page-dermatology-overview .container{
  max-width: 1280px;
}

.derma-overview__panel{
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 12px 30px rgba(10, 35, 66, .10);
  padding: 56px 56px 60px;
}

.derma-overview__intro{
  margin-bottom: 48px;
}

.derma-overview__eyebrow{
  margin: 0 0 10px;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #256fb2;
  font-weight: 600;
}

.derma-overview__title{
  margin: 0 0 20px;
  font-size: 34px;
  line-height: 1.5;
  color: #0a3f73;
  font-weight: 700;
}

.derma-overview__lead p{
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 2.05;
  color: #334155;
}

.derma-overview__lead p:last-child{
  margin-bottom: 0;
}

.medical--subpage{
  padding: 0;
  background: transparent;
}

.medical__inner--subpage{
  width: 100%;
}

.medical__grid--subpage{
  gap: 42px 56px;
}

.medical-card--current{
  position: relative;
}


@media (max-width: 1100px){
  .derma-overview__panel{
    padding: 40px 32px 44px;
  }

  .medical__grid--subpage{
    gap: 36px;
  }
}

@media (max-width: 767px){
  .page-dermatology-overview{
    padding: 48px 0 80px;
  }

  .page-dermatology-overview .container{
    width: min(100%, calc(100% - 28px));
  }

  .derma-overview__panel{
    padding: 24px 16px 28px;
    border-radius: 14px;
  }

  .derma-overview__intro{
    margin-bottom: 28px;
  }

  .derma-overview__title{
    font-size: 26px;
    line-height: 1.55;
  }

  .derma-overview__lead p{
    font-size: 15px;
    line-height: 1.95;
  }

  .medical__grid--subpage{
    gap: 32px;
  }

  .medical-card--current::after{
    position: static;
    margin: 0 0 12px auto;
    width: fit-content;
  }
}


/* =========================
   Header Web Reserve button (PC only)
========================= */
.nav-item--webreserve{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-left: 18px;
  padding: 0 18px !important;
  border-radius: 999px !important;
  background: #ef496d;
  color: #fff !important;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 10px 24px rgba(239, 73, 109, .24);
  transition: background .2s ease, transform .2s ease;
}

nav.primary a.nav-item--webreserve::before{
  content: none !important;
}

.nav-item--webreserve:hover{
  background: #d93f62;
  transform: translateY(-1px);
}

/* =========================
   Medical card links
========================= */
.medical-card__thumbLink{
  display: block;
  width: 100%;
  height: 100%;
}

.medical-card__thumbLink:hover img,
.medical-card__thumbLink:focus-visible img{
  transform: scale(1.03);
}

.medical-card__thumb img{
  transition: transform .25s ease;
}

@media (max-width: 768px){
  .nav-item--webreserve{
    display: none !important;
  }
}












/* =========================================
   News page – blue theme
========================================= */

/* ---- page wrapper ---- */
.page-news {
  padding: 80px 0 120px;
  background: #eef2f5;
}

.page-news .container {
  max-width: 1100px;
}

.news-page__panel {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 12px 30px rgba(10, 35, 66, .10);
  padding: 56px 64px 64px;
}

/* ---- page header ---- */
.news-page__head {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 20px;
  margin-bottom: 40px;
  padding-bottom: 28px;
  border-bottom: 2px solid #e4edf6;
}

.news-page__eyebrow {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #256fb2;
}

.news-page__title {
  margin: 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.3;
  color: #0a3f73;
	width: 100%;
	text-align: center;
}

/* ---- category filter tabs ---- */
.news-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}

.news-filter__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1.5px solid #c5dbf0;
  background: #fff;
  color: #0a3f73;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: .22s ease;
  font-family: inherit;
}

.news-filter__btn:hover,
.news-filter__btn.is-active {
  background: #0062b2;
  border-color: #0062b2;
  color: #fff;
}

/* ---- article list ---- */
.news-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ---- single article card ---- */
.news-article {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 0 10px;
  padding: 28px 0;
  border-bottom: 1px solid #e4edf6;
  align-items: center;
}

.news-article:first-child {
  padding-top: 0;
}

.news-article__meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 3px;
}

.news-article__date {
  font-size: 14px;
  font-weight: 600;
  color: #5a7a98;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
	text-align: center;
}

.news-article__cat {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .02em;
  background: #0062b2;
  color: #fff;
  /* border: 1px solid #bdd8f0; */
  line-height: 1.35;
  width: fit-content;
  margin: 0 auto;
}

.news-article__meta .tag {
  margin: 0 auto;
}

.news-article__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-width: 0;
}

.news-article__title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.55;
  color: #0a3f73;
}

.news-article__title a {
  transition: color .2s;
}

.news-article__title a:hover {
  color: #0062b2;
}

.news-article__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.95;
  color: #334155;
}
.news-article__inlineLink {
  text-decoration: none;
  color: #2263b5;
  font-size: 16px;
  border-bottom: 1px dotted #2263b5;
}

/* ---- "もっと見る" button ---- */
.news-more {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

.news-more__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 36px;
  border-radius: 999px;
  border: 2px solid #0062b2;
  color: #0062b2;
  font-size: 15px;
  font-weight: 700;
  transition: .25s ease;
  cursor: pointer;
  background: transparent;
  font-family: inherit;
}

.news-more__btn:hover {
  background: #0062b2;
  color: #fff;
}

/* ---- back link ---- */
.news-back {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid #e4edf6;
  text-align: center;
}

.news-back a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #256fb2;
  transition: color .2s;
}

.news-back a:hover {
  color: #0062b2;
}

.yws-news-detail__back a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 28px;
  border-radius: 999px;
  background: #0062b2;
  color: #fff;
  text-decoration: none;
}

.yws-news-detail__back a:hover {
  color: rgba(255, 255, 255, .9);
}

.news-card > .news-back {
  grid-column: 2;
  margin: 18px 0 0;
  padding-top: 0;
  border-top: 0;
}

@media (max-width: 1024px) {
  .news-card > .news-back {
    grid-column: 1;
  }
}

/* ---- hero override for news page ---- */
.hero--news {
  /* re-use the hero--doctor base; just update the accent color strip */
}

/* =====================
   Responsive
===================== */
@media (max-width: 900px) {
  .news-page__panel {
    padding: 44px 40px 48px;
  }
}

@media (max-width: 767px) {
  .page-news {
    padding: 48px 0 80px;
  }

  .page-news .container {
    width: min(100%, calc(100% - 28px));
  }

  .news-page__panel {
    padding: 28px 20px 32px;
    border-radius: 14px;
  }

  .news-page__head {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 28px;
    padding-bottom: 20px;
  }

  .news-page__title {
    font-size: 28px;
  }

  .news-article {
    grid-template-columns: 1fr;
    gap: 10px 0;
    padding: 22px 0;
  }

  .news-article__meta {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
  }

  .news-article__cat {
    margin: 0;
  }

  .news-article__title {
    font-size: 16px;
  }

  .news-article__text {
    font-size: 14px;
    line-height: 1.85;
  }

  .news-filter__btn {
    min-height: 34px;
    padding: 0 14px;
    font-size: 13px;
  }
}

/* WordPress news CMS */
.news-cms-message {
  margin: 0;
  padding: 16px 0;
  color: #334155;
  font-size: 15px;
  line-height: 1.8;
}

.news-cms-message--error {
  color: #b42318;
}

.tag--info,
.news-article__cat--info {
  background: #0062b2;
  color: #fff;
}

.tag--closed,
.news-article__cat--closed {
  background: #c74545;
  color: #fff;
}
