:root {
  --main-bg: #ffffff;
  --text-color: #111;
  --accent-color: #333;
  --silver: #0069D9;
  --hover-glow: rgba(0, 0, 0, 0.1);
  --leading-trim: calc((1em - 1lh) / 2);
}

html {
  scroll-behavior: smooth;
}

body {
  line-height: 1;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.site-header {
  background-color: #0056a4; /* 画像から抽出した濃青 */
  padding: 12px 0;
  color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.header-inner {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  flex-direction: row-reverse; /* ← これが原因で右寄りになる！ */
}

.logo {
  font-size: 36px;
  font-weight: 400;
  color: #fff;
  margin: 0;
  letter-spacing: calc(36 * 0.5);
  font-family: "EB Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.header-actions {
  display: flex;
  gap: 20px;
  align-items: center;
  font-size: 14px;
}

.header-actions .header-actions-box {
  padding: 12px ;
  background-color: #fff;
}

.header-actions .btn {
  color: #0056a4;
  border-radius: 4px;
  text-decoration: none;
  font-weight: bold;
  white-space: nowrap;
}

.header-actions .tel {
  color: #0056a4;
  border-radius: 4px;
  text-decoration: none;
  font-weight: bold;
  white-space: nowrap;
}

.main-visual {
  padding: 120px 20px 60px 20px;
  color: #fff;
  background-image: url(../images/main-visual.png);
  background-position: left center;
  background-size: cover;
  color: #000;
}

.main-inner {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.main-catch {
  font-size: 30px;
  font-weight: 400;
  line-height: calc(42 / 30);
  margin-bottom: 6px;
}

.main-subcatch {
  font-size: 70px;
  font-weight: 400;
  margin-bottom: 24px;
  line-height: calc(90 / 70);
  margin-bottom: 60px;
}

.main-intro {
  font-size: 16px;
  line-height: 2;
  font-weight: 300;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  line-height: calc(30 / 16);
}


.feature-block {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #000;
  font-family: "Shippori Mincho", serif;
  padding: 40px 20px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 500px;
}

.block1 {
  background-image: url('../images/feature1.png');
}

.block2 {
  background-image: url('../images/feature2.png');
}

.block3 {
  background-image: url('../images/feature3.png');
}

.feature-content {
  width: 965px;
  background: rgba(255, 255, 255, 0); /* 透過 or 必要に応じ調整 */
  padding: 20px;
}

.feature-title {
  font-size: 36px;
  font-weight: 500;
  line-height: calc( 48 / 36 );
  margin-bottom: 30px;
}

.text-left
{
  text-align: left;
}

.text-right {
  text-align: right;
}

.feature-text {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 16px;
  line-height: calc( 30 / 16 );
}

@media (max-width: 768px) {
  .feature-title {
    font-size: 24px;
  }

  .feature-block {
    padding: 60px 16px;
    background-position: center top;
  }

  .feature-content {
    padding: 0 10px;
  }
}


.flow-section {
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  padding: 40px 20px;
}

.flow-section .section-title {
  font-size: 36px;
  color: #00569b;
  margin-bottom: 8px;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-style: normal;
  display: block;
  padding-bottom: 15px;
}

.section-title::after {
  content: "";
  display: block;
  width: 100px; /* ← 線の長さをここで調整 */
  height: 2px;
  background-color: #fd6b1c;
  margin: 25px auto 0; /* 上に余白を追加し、中央寄せ */
}


.flow-sub {
  font-size: 24px;
  color: #000;
  margin-top: 2opx;
  margin-bottom: 40px;
}

.flow-steps {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  position: relative;
  padding: 60px 20px;
  background: url("../images/flow-bg.png") center bottom no-repeat;
  background-size: contain;
  background-position: center;
}

.flow-step .circle {
  width: 290px;
  height: 290px;
  background: #e3f3fa;
  border-radius: 50%;
  padding: 20px;
  box-sizing: border-box;
  position: relative;
  border: 1px solid #236da9;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.6;
  font-size: 13px;
  color: #333;
}

.flow-step .circle h3 {
  color: #0e60a1;
  font-size: 24px;
  font-weight: bold;
  margin: 20px 0 15px 0;
  line-height: calc( 30 /24 );
}

.flow-step .circle h3::after {
  content: "";
  display: block;
  width: 150px; /* ← 線の長さをここで調整 */
  height: 2px;
  background-color: #FFF;
  margin: 15px auto 0; /* 上に余白を追加し、中央寄せ */
}

.flow-step .circle .icon {
  position: absolute;
  top: 10px;
  font-size: 36px;
  color: #3389ce;
}

.flow-step .circle p {
  font-size: 14px;
  line-height: calc( 24 /14 );
  color: #00569b;
}

.faq-section {
  width: 100%;
  color: #FFF;
}

.faq-section-title-box {
  width: 100%;
  background: radial-gradient(circle, #00569B 0%, #3389CE 100%);
  text-align: center;
  padding: 40px 0 35px 0;
}

.faq-section-title-box .faq-title {
  font-size: 28px;
  text-align: center;
  margin-bottom: 10px;
  display: inline-block;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-style: normal;
}

.faq-section-title-box .faq-title::after {
  content: "";
  display: block;
  width: 160px; /* ← 線の長さをここで調整 */
  height: 1px;
  background-color: #FFF;
  margin: 15px auto 0; /* 上に余白を追加し、中央寄せ */
}

.faq-subtitle {
  text-align: center;
  font-size: 20px;
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-style: normal;
}

.faq-section-inner-box {
  width: 100%;
  background: #002344;
  padding: 75px 0;
}

.faq-section-inner-box .faq-inner {
  max-width: 965px;
  margin: 0 auto;
}



.faq-item {
  margin-bottom: 40px;
}

.faq-item:last-child {
  margin-bottom: 0;
}

.faq-item h3 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
  border-bottom: 1px solid #3389ce;
  padding-bottom: 15px;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  display: inline-block;
}

.faq-item p {
  font-size: 16px;
  line-height: calc( 28 /16 );
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
}


.contact-section {
  padding: 40px 20px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #003366;
}

.contact-title {
  text-align: center;
  font-size: 28px;
  color: #003366;
  margin-bottom: 40px;
  letter-spacing: 0.1em;
}

.contact-form {
  max-width: 640px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 20px 16px;
  align-items: center;
}

.form-group {
  display: contents;
}


.full {
  grid-column: 1 / -1;
}

label {
  font-weight: bold;
  font-size: 14px;
}

.required {
  background-color: #ff5f5f;
  color: #fff;
  font-size: 12px;
  padding: 2px 6px;
  margin-left: 6px;
  border-radius: 2px;
}

input,
select,
textarea {
  width: 100%;
  padding: 6px 10px;
  font-size: 14px;
  border: 1px solid #0e60a1;
  border-radius: 2px;
  box-sizing: border-box;
}

textarea {
  min-height: 100px;
  background-color: #eaf6fd;
}

.radio-group {
  display: flex;
  gap: 20px;
  align-items: center;
}

.radio-group label {
  display: flex;
  align-items: center;
  min-width: 80px; 
  white-space: nowrap; /* 改行させない */
  font-weight: normal;
}

.form-submit {
  text-align: center;
  margin-top: 20px;
}

.form-submit button {
  background: linear-gradient(to bottom, #d92e4a, #bf0029);
  color: #fff;
  font-weight: bold;
  padding: 12px 32px;
  border: none;
  font-size: 16px;
  border-radius: 4px;
  cursor: pointer;
  position: relative;
}

.form-submit button::after {
  content: '▶';
  margin-left: 12px;
  font-size: 14px;
  display: inline-block;
}

.site-footer {
  background-color: #002848;
  color: #ffffff;
  padding: 40px 20px 20px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  text-align: center;
}

.footer-info-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 900px;
  margin: 0 auto 20px;
  text-align: left;
  gap: 12px 40px;
}

.footer-item {
  white-space: nowrap;
}

.footer-copy {
  font-size: 13px;
  color: #ddd;
}




.members-section {
  background-color: #e5f4fb;
  text-align: center;
  padding: 60px 20px;
  font-family: 'Noto Sans JP', sans-serif;
}

.members-subtitle {
  font-size: 30px;
  color: #00569b;
  margin-bottom: 15px;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.members-title {
  font-size: 64px;
  font-weight: bold;
  margin-bottom: 30px;
  color: #00569b;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.members-description {
  font-size: 14px;
  line-height: calc( 28 /14 );
  color: #000;
  margin-bottom: 60px;
}

.members-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  margin-bottom: 40px;
}

.members-grid {
  display: grid;
  grid-template-columns: 1fr; /* ✅ スマホ：1列表示 */
  gap: 60px;
  justify-items: center;
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 0;
  position: relative;
}

/* ✅ PC：2列 × 4行表示（4行2列） */
@media screen and (min-width: 1024px) {
  .members-grid {
    grid-template-columns: repeat(2, 1fr); /* 横2列 */
  }

  .member-01 { grid-column: 1; grid-row: 1; }
  .member-02 { grid-column: 2; grid-row: 1; margin-top: -20px; margin-left: 40px; }
  .member-03 { grid-column: 1; grid-row: 2; margin-left: 50px; }
  .member-04 { grid-column: 2; grid-row: 2; margin-top: -20px; margin-left: -50px; }
  .member-05 { grid-column: 1; grid-row: 3; margin-top: 20px; margin-left: -40px;}
  .member-06 { grid-column: 2; grid-row: 3; margin-top: 30px; margin-left: 100px; }
  .member-07 { grid-column: 1; grid-row: 4; margin-top: 40px; margin-left: -20px;}
  .member-08 { grid-column: 2; grid-row: 4;  }
}


.member-bubble {
  position: relative;
  width: 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.comment-circle {
  position: absolute;
  width: 220px;
  height: 220px;
  background-color: #fff;
  border: 2px solid #0077c8;
  border-radius: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 10px;
  font-size: 14px;
  color: #0056a4;
  line-height: 1.6;
  margin-bottom: -40px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.comment-circle p {
  font-size: 16px;
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  line-height: calc( 26/ 16 );
}

.comment-circle span {
  font-size: 36px;
  color: #0056a4;
  display: block;
  margin-top: 6px;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.face-circle {
  width: 320px;
  height: 320px;
  border-radius: 50%;
  overflow: hidden;
  z-index: 1;
  margin-top: 100px;
  position: relative;
  overflow: visible;
}

.face-circle::after {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  width: 180px;
  height: 180px;
  border: 1px solid #0e60a1;
  border-radius: 50%;
  z-index: 2;
}

.border-ring {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  border: 1px solid #0e60a1;
  pointer-events: none;
  overflow: hidden;
}

.face-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}



.member-01 .face-circle img {
  position: absolute;
  top: 0;
  left: 0;
  width: 360px;
  height: auto;
}


.comment {
  background: #fff;
  border: 2px solid #0077c8;
  border-radius: 50%;
  padding: 20px;
  font-size: 14px;
  line-height: 1.6;
  color: #00335c;
  margin-top: 10px;
}

.comment strong {
  display: block;
  font-size: 18px;
  color: #0056a4;
  margin-top: 6px;
}

.members-footer {
  font-size: 14px;
  color: #000;
  max-width: 720px;
  margin: 0 auto;
  line-height: calc( 28 /14 );
}

.face-wrap {
  position: relative;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  overflow: visible;
}

.face-wrap img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 55%;
  display: block;
}

.face-border {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 1px solid #0e60a1;
  z-index: 1;
  pointer-events: none;
}

/* 吹き出し位置の微調整 */
.member-01 .comment-circle { top: -40px; left: -100px; }
.member-02 .comment-circle { top: -40px; left: -100px; }
.member-03 .comment-circle { bottom: 0; left: -100px; }
.member-04 .comment-circle { top: 0; right: -100px; }
.member-05 .comment-circle { bottom: 0; right: -90px; }
.member-06 .comment-circle { top: -40px; left: -150px; }
.member-07 .comment-circle { top: -75px; left: -100px; }
.member-08 .comment-circle { top: -40px; left: -100px; }

.member-01 .face-border { top: 5px; right: 5px; }
.member-02 .face-border { top: -5px; left: 5px; }
.member-03 .face-border { top: -5px; right: 5px; }
.member-04 .face-border { top: 5px; left: -5px; }
.member-05 .face-border { top: 5px; left: -5px; }
.member-06 .face-border { top: 5px; left: -5px; }
.member-07 .face-border { top: 5px; right: 5px; }
.member-08 .face-border { top: 5px; left: -5px; }


@media screen and (max-width: 768px) {

  /* ヘッダー */
  .header-inner {
    flex-direction: column;
    align-items: center;
  }
  .header-actions {
    flex-direction: column;
    gap: 10px;
  }

  /* メインビジュアル */
  .main-catch {
    font-size: 22px;
    text-align: center;
  }
  .main-subcatch {
    font-size: 36px;
    text-align: center;
  }
  .main-intro {
    font-size: 14px;
  }

  /* 特徴セクション */
  .feature-title {
    font-size: 24px;
    margin-bottom: 16px;
  }
  .feature-text {
    font-size: 14px;
  }

  /* フロー */
  .flow-section .section-title {
    font-size: 24px;
  }
  .flow-sub {
    font-size: 18px;
    margin-bottom: 20px;
  }
  .flow-step .circle {
    width: 220px;
    height: 220px;
    font-size: 12px;
    padding: 15px;
  }
  .flow-step .circle h3 {
    font-size: 18px;
  }
  .flow-step .circle p {
    font-size: 12px;
  }

  /* FAQセクション */
  .faq-section-title-box .faq-title {
    font-size: 22px;
  }
  .faq-subtitle {
    font-size: 16px;
  }
  .faq-item h3 {
    font-size: 16px;
  }
  .faq-item p {
    font-size: 14px;
  }

  /* フォーム */
  .contact-title {
    font-size: 22px;
  }
  .contact-form {
    grid-template-columns: 1fr;
  }
  .radio-group {
    flex-direction: column;
    gap: 5px;
  }

  /* メンバーリスト */
  .members-grid {
    grid-template-columns: 1fr; /* 1列 */
    gap: 30px; /* 少し間隔も縮める */
    padding: 20px 0;
  }

  .member-bubble {
    margin: 0 auto;
    align-items: start;
  }

  .face-wrap {
    margin-right: -100px;
  }

  .face-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    object-position: 50% 55%;
  }

  .comment-circle {
    width: 160px;
    height: 160px;
    font-size: 10px;
    padding: 8px;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    bottom: auto;
    right: auto;
  }

  .comment-circle p {
    font-size: 12px;
    line-height: 1.4;
  }

  .comment-circle span {
    font-size: 18px;
    margin-top: 4px;
  }

  .face-border {
    width: 100%;
    height: 100%;
  }

  /* 吹き出し位置（中央寄せ気味に調整） */
  .member-01 .comment-circle,
  .member-02 .comment-circle,
  .member-03 .comment-circle,
  .member-04 .comment-circle,
  .member-05 .comment-circle,
  .member-06 .comment-circle,
  .member-07 .comment-circle,
  .member-08 .comment-circle {
    top: -60px;
    left: 60px;
    transform: translateX(-50%);
    right: auto;
    bottom: auto;
  }

  /* フッター */
  .footer-info-2col {
    grid-template-columns: 1fr;
    text-align: center;
  }
}