:root {
  --color-bg: #ffffff;
  --color-bg-alt: #f5f5f5;
  --color-text: #333333;
  --color-main: #206ec0;
  --color-accent: #FFB100;
  --color-border: #dddddd;
  --color-strong: #fff600;
  --header-height: 72px;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  /* font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; */
  font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.7;
}
a {
  color: var(--color-main);
  text-decoration: none;
}
a:hover,
a:active{
  text-decoration: underline;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
.wrapper {
  min-height: 100vh;
  background: var(--color-bg);
}
.inner {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 16px;
}
.is-pc {
  display: none !important;
}
.yellow{
  color: var(--color-strong);
}
/* main{
  margin-top: 67px;
} */
/* main.top-page{
  margin-top: 0;
} */
@media (min-width: 768px) {
  /* main{
    margin-top: 58px;
  } */
}

/* =======================
    HEADER
======================= */
.header {
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100%;
  z-index: 300;
  padding: 10px 0;
  background: #000;
  background-position: center top, center bottom;
}
.header .flex {
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  justify-content: space-between;
}
.header .flex .logo {
  max-width: 150px;
}
.header-inner {
  box-sizing: content-box;
  margin: 0px auto;
  padding: 0px 20px;
}
.drawer-icon{
  position: fixed;
  top: 25px;
  right: 20px;
  z-index: 300;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
.drawer-content {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0px;
  right: 0px;
  z-index: 250;
  display: none;
  background: rgb(0, 0, 0);
  transition: 0.5s;
}
.drawer-icon-nav {
  width: 100%;
  text-align: left;
  position: absolute;
  top: 60px;
  left: 0;
  /* transform: translate(-50%, -50%); */
}
.drawer-icon-nav ul li {
  padding: 0;
  transition: 0.5s;
  border-bottom: 1px solid #444;
}
.drawer-icon-nav ul li.drawer-sub__item{
  border-bottom: 1px solid #000;
  font-size: 1rem;
}
.drawer-icon-nav ul li.drawer-sub__item:last-child{
  border-bottom: none;
}
.drawer-icon-nav ul li.drawer-sub__item a{
  padding: 0.6rem 1rem;
}
.drawer-icon-nav ul li.sns__item{
  border-bottom: none;
}
.drawer-icon-nav ul li a{
  display: block;
  padding: 0.6rem 1rem;
  color: rgb(255, 255, 255);
}
.drawer-icon-nav ul li a:hover,
.drawer-icon-nav ul li a:active{
  text-decoration: none;
  color: var(--color-accent);
}
.drawer-icon-nav ul li span{
  display: inline-block;
  color: #ccc;
}
.drawer-icon-bars {
  width: 25px;
  height: 16px;
  display: block;
  position: relative;
}
.drawer-icon-bar1,
.drawer-icon-bar2,
.drawer-icon-bar3 {
  position: absolute;
  width: 25px;
  height: 2px;
  background: #fff;
  top: 0;
  left: 0;
}
.drawer-icon-bar1 {
  top: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.drawer-icon-bar2 {
  top: 8px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.drawer-icon-bar3 {
  top: 16px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.drawer-icon.is-active .drawer-icon-bar1 {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  top: 8px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.drawer-icon.is-active .drawer-icon-bar2 {
  opacity: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.drawer-icon.is-active .drawer-icon-bar3 {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  top: 8px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.drawer-mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 220;
  display: none;
}
.drawer-mask.is-active {
  display: block;
}
.drawer-ul li a {
  text-transform: uppercase;
  font-size: 1.3rem;
}
.d-sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 0 auto;
  margin-top: 40px;
  justify-content: center;
}
.d-sns li a {
  display: block;
  margin: 0 auto;
  height: 30px;
  width: auto;
}
.d-sns li img {
  margin: 0 auto;
  height: 30px;
  width: auto;
}
/* =========================
   Drawer（スマホ）用 プロフィール サブメニュー
   ========================= */
.drawer-has-sub {
  border-bottom: 1px solid #e0e0e0;
}
/* 親トグルボタン */
.drawer-sub-toggle {
  width: 100%;
  padding: 0.6rem 1rem;
  border: none;
  background: none;
  text-align: left;
  font-size: 1.3rem;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
/* 右側の「＋ / −」アイコン */
.drawer-sub-toggle__icon {
  display: inline-block;
  width: 2rem;
  text-align: center;
  font-size: 2rem;
  line-height: 1;
  position: relative;
}
.drawer-sub-toggle__icon::before {
  content: '+';
}
.drawer-has-sub.is-open .drawer-sub-toggle__icon::before {
  content: '−';
}
/* サブメニュー本体 */
.drawer-sub {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #444;
}
/* 開いているとき */
.drawer-has-sub.is-open > .drawer-sub {
  display: block;
}
.drawer-sub__item a {
  display: block;
  padding: 0.6rem 1.4rem;
  font-size: 0.95rem;
  color: #333;
  text-decoration: none;
}
.drawer-icon-nav ul li.drawer-sub__item a:hover,
.drawer-icon-nav ul li.drawer-sub__item a:active {
  background-color: #f0f0f0;
  color: #000;
}
/* これはスマホ専用のナビ想定なので PC では念のため無効化しておく */
@media (min-width: 1025px) {
  .drawer-content {
    display: none !important;
  }
}


/* =======================
    HERO
======================= */
.hero {
  position: relative;
  color: #fff;
  background: #000;
  z-index: 0;
}
.hero__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: -1;
}
.hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/hero.jpg") center/cover no-repeat; /* 講演写真に差し替え */
  opacity: 0.6;
}
.hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.3), rgba(0,0,0,0.0));
  background: linear-gradient(0deg, #ffffff80, #0000000d 50%);
}
.hero__inner {
  padding: 102px 16px 30px;
}
.hero__content {
  max-width: 720px;
}
.hero__kicker {
  color: #fff;
}
.hero__title {
  margin: 16px 0 8px;
  font-size: 26px;
  line-height: 1.4;
  font-weight: 700;
  text-shadow: 3px 3px 0 rbga(0,0,0,1);
}
.hero__title span{
  font-size: 1.5rem;
}
.hero__title strong{
  font-size: 3rem;
}
.hero__subtitle {
  font-size: 15px;
  margin-bottom: 16px;
}
.hero__metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
  font-size: 13px;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.hero__metric {
  padding: 6px 10px;
  border: 1px solid rgba(255,255,255,0.6);
  line-height: 1.5rem;
  display: flex;
  align-items: anchor-center;
}
.hero__metric strong{
  font-weight: bold;
  /* color: var(--color-accent); */
}
.hero__metric em{
  font-size: 2rem;
  font-style: normal;
  font-family: serif;
}
.hero__metric_2col{
  line-height: 1.2rem;
}
.hero__metric_2col strong{
  margin-left: 3px;
  margin-top: 10px;
  display: block;
}
.hero__metric_2col em{
  font-size: 2.3rem;
}
.hero__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 20px 0;
  justify-content: center;
  background-size: auto auto;
  /* background-color: rgba(255, 255, 255, 0.3);
  background-image: repeating-linear-gradient(135deg, transparent, transparent 3px, rgba(255, 255, 255, 0.3) 3px, rgba(255, 255, 255, 0.3) 6px ); */
}
.buttons__center{
  justify-content: center;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 290px;
  padding: 1rem 2rem;
  border-radius: 999px;
  font-size: 1.2rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.1s ease, box-shadow 0.1s ease, background 0.1s ease;
}
.btn.btn--small{
  padding: 0.8rem 1rem;
  font-size: 1rem;
}
.btn:hover,
.btn:active{
  text-decoration: none;
}
.btn--primary {
  background: var(--color-main);
  box-shadow: 0 5px 0 #134f8d;
  color: #fff;
}
.btn--primary_target {
  background: #fff;
  border: 2px solid #134f8d;
  box-shadow: 0 5px 0 #134f8d;
  color: #134f8d;
}
.btn--accent {
  background: var(--color-accent);
  box-shadow: 0 5px 0 #b27c00;
  color: #000;
}
.btn--secondary{
  background: #fff;
  border: 2px solid #333;
  box-shadow: 0 5px 0 #333;
  color: #333;
}
.btn--line {
  background: #fff;
  border: 2px solid #06C755;
  box-shadow: 0 5px 0 #06C755;
  color: #06C755;
  margin: 0 0 1rem;
}
.btn--youtube {
  background: #fff;
  border: 2px solid #c4302b;
  box-shadow: 0 5px 0 #c4302b;
  color: #c4302b;
  margin: 0 0 1rem;
}
.btn--primary:hover,
.btn--primary:active,
.btn--primary_target:hover,
.btn--primary_target:active{
  box-shadow: 0 0 0 #134f8d;
  transform: translateY(5px);
}
.btn--secondary:hover,
.btn--secondary:active{
  box-shadow: 0 0 0 #333;
  transform: translateY(5px);
}
.btn--accent:hover,
.btn--accent:active{
  box-shadow: 0 0 0 #b27c00;
  transform: translateY(5px);
}
.btn--line:hover,
.btn--line:active{
  box-shadow: 0 0 0 #06C755;
  transform: translateY(5px);
}
.btn--youtube:hover,
.btn--youtube:active{
  box-shadow: 0 0 0 #c4302b;
  transform: translateY(5px);
}
.wp-block-button__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 290px;
  padding: 1rem 2rem;
  border-radius: 999px;
  font-size: 1.2rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.1s ease, box-shadow 0.1s ease, background 0.1s ease;
  background: #383838;
  box-shadow: 0 5px 0 #000;
  color: #fff;
  line-height: 1.6rem;;
}
.wp-block-button__link:hover,
.wp-block-button__link:active{
  text-decoration: none;
  box-shadow: 0 0 0 #000;
  transform: translateY(5px);
}
.wp-block-buttons{
  margin: 1rem 0;
}

/* =======================
    SECTIONS 共通
======================= */
.section {
  padding: 56px 0;
}
.section--alt {
  background: var(--color-bg-alt);
}
.section__head {
  margin-bottom: 24px;
  text-align: left;
}
.section__head__arch{
  text-align: center;
  font-family: serif;
  font-weight: 700;
  margin-bottom: 1rem;
}
.section__title {
  position: relative;
  display: inline-block;
  margin: 0 0 8px;
  font-size: 1.7rem;
  letter-spacing: 1px;
}
.section__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 40px;
  height: 2px;
  background: var(--color-main);
}
.section__subtitle {
  margin: 0;
  font-size: 1rem;
  color: #666;
}
.top__title{
  text-align: center;
  display: block;
  font-family: serif;
}
.top__title::after{
  background: none;
}
.top__subtitle{
  text-align: center;
}
.section--special__title {
  font-size: 1.7rem;
  letter-spacing: 1px;
  font-family: serif;
  margin: 2rem 0 1rem;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.8);
}
.section--special{
  background: url("../img/bg_special2.png") center/cover no-repeat;
  color: #fff;
  position: relative;
  z-index: 0;
}
.section--special:after{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.4);
  z-index: -1;
}
.section--special.short-ver{
  padding: 1rem 0 2rem;
}
.special__title::after{
  background: none;
}
.section--special .section__subtitle{
  color: #fff;
}
.section--special__box {
  margin: 1em auto;
  max-width: 680px;
}
.section--special__box__inner{
  padding: 2rem;
}
.special__book{
  border: 1px solid #fff;
}
.special__youtube{
  background-color: #fff;
  padding: 1rem;
}
.youtube__title{
  font-family: serif;
}
/* =======================
    NEWS
======================= */
.news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--color-border);
}
.news-list__item {
  border-bottom: 1px solid var(--color-border);
}
.news-list__link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 0;
  font-size: 1rem;
  color: #333;
}
.news-list__link:hover,
.news-list__link:active{
  color: var(--color-main);
  text-decoration: none;
}
.news-list__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.8rem;
  color: #777;
}
.news-list__date {
  min-width: 80px;
}
.news-list__cat {
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid var(--color-border);
}
.news-list__title {
  font-weight: 600;
}
.section__foot {
  margin-top: 2rem;
  text-align: center;
}
.section__center {
  margin-top: 2rem;
  text-align: center;
}
.section__col2 > div{
  padding: 0.5rem 0;
}
/* =======================
    FREE GUIDE
======================= */
.cards {
  display: grid;
  gap: 24px;
}
.card {
  border: 1px solid var(--color-border);
  background: #fff;
}
.card__wrap{
  padding-top: 51%;
  position: relative;
  overflow: hidden;
}
.card__wrap img{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  -o-object-fit: cover;
  object-fit: cover;
}
.card a{
  color: #333;
}
.card a:hover,
.card a:active{
  text-decoration: none;
}
.card a:hover .card__wrap img,
.card a:active .card__wrap img{
  -webkit-transform: scale(1.2);
    transform: scale(1.2);
    -webkit-transition: 0.3s;
    transition: 0.3s;
}
.card__inner {
  padding: 20px;
}
.card__tag {
  display: inline-flex;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.8rem;
  background: rgba(32,110,192,0.06);
  color: var(--color-main);
  margin-bottom: 8px;
}
.card__title {
  margin: 0 0 8px;
  font-size: 1.2rem;
  font-weight: 600;
}
.card__text {
  margin: 0;
  font-size: 1rem;
}

/* =======================
    WEBSITE
======================= */
.website__list{
  margin: 3rem 0 2rem;
}
.website__item{
  display: grid;
  gap: 24px;
  margin-bottom: 3rem;
}
.website__item:last-child{
  margin-bottom: 0;
}
.website__name{
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.website__detail p{
  margin-bottom: 1rem;
}
/* =======================
    BOOK
======================= */
.book {
  display: grid;
  gap: 30px;
  justify-items: center;
  align-items: center;
}
.book.short-ver{
  gap: 1rem;
}
.book__cover {
  max-width: 160px;
  margin: 0 auto;
}
.book__label {
  color: var(--color-accent);
  margin-bottom: 4px;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.8);
}
.book__title {
  font-size: 1.3rem;
  font-weight: 600;
  margin: 0 0 8px;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.8);
}
.book__desc {
  font-size: 1rem;
  margin: 0 0 16px;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.8);
}

/* =======================
    YOUTUBE
======================= */
.youtube-slider {
  margin-top: 8px;
}
.youtube-item {
  padding: 0 8px;
}
.youtube-item__thumb {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--color-border);
  margin-bottom: 8px;
}
.youtube-item__title {
  font-weight: 500;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; /* ← ここを2行に制限 */
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
  max-height: calc(1.4em * 2); /* 2行分 */
  margin-top: 8px;
  font-size: 14px; /* お好みで */
}
.slick-dotted.slick-slider.youtube-slider{
  margin-bottom: 3rem;
}
.youtube-slider .slick-dots li button:before{
  font-size: 12px;
}
.youtube-slider .slick-dots{
  bottom: -35px !important;
}
/* =======================
    PROFILE
======================= */
.profile {
  display: grid;
  gap: 30px;
  justify-items: center;
  align-items: center;
  max-width: 700px;
  margin: 0 auto;
}
.profile__photo {
  max-width: 260px;
  overflow: hidden;
}
.profile__name {
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0 0 4px;
  letter-spacing: 1px;
  font-family: serif;
  text-align: center;
}
.profile__role {
  font-size: 0.9rem;
  color: #666;
  margin: 0 0 1rem;
  text-align: center;
}
.profile__text {
  font-size: 1rem;
  margin: 0 0 1rem;
}
/* =======================
    CONTACT
======================= */
.contact-layout {
  display: grid;
  gap: 24px;
  max-width: 700px;
  margin: 0 auto;
}
.contact-line {
  padding: 1.5rem;
  border-radius: 12px;
  background: #f5f5f5;
  text-align: center;
}
.contact-line__lead {
  margin: 0 0 8px;
  font-weight: 600;
}
.contact-line__note {
  margin: 0 0 12px;
  font-size: 13px;
  color: #555;
}
.contact-form {
  background: #fff;
  border-radius: 12px;
  padding: 1.6rem 1.6rem 2rem;
  border: 1px solid var(--color-border);
}
.contact-form__row {
  margin-bottom: 14px;
}
.contact-form__label {
  display: block;
  margin-bottom: 4px;
  font-size: 1rem;
  font-weight: 600;
}
.contact-form__required {
  display: inline-block;
  margin-left: 4px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: normal;
  color: #fff;
  background: var(--color-main);
}
.contact-form__control,
.contact-form__select,
.contact-form__textarea {
  width: 100%;
  padding: 8px 10px;
  font-size: 1rem;
  border-radius: 6px;
  border: 1px solid var(--color-border);
  outline: none;
}
.contact-form__textarea {
  resize: vertical;
  min-height: 160px;
}
.contact-form__control:focus,
.contact-form__select:focus,
.contact-form__textarea:focus {
  border-color: var(--color-main);
  box-shadow: 0 0 0 1px rgba(32,110,192,0.25);
}
.contact-form__submit {
  text-align: center;
}
.contact-form__row p{
  margin-bottom: 0;
}
.contact-form__submit .wpcf7-form-control{
  background: var(--color-main);
  box-shadow: 0 5px 0 #134f8d;
  color: #fff;
}
.contact-form__submit .wpcf7-form-control:hover,
.contact-form__submit .wpcf7-form-control:active{
  box-shadow: 0 0 0 #134f8d;
  transform: translateY(5px);
}
.contact-form .wpcf7-not-valid-tip{
  font-size: 0.8rem;
}
.contact-form .wpcf7-spinner{
  display: none !important;
}
.contact-form .wpcf7-submit:disabled {
  background-color: #999;
  color: #333;
  border-color: #333;
  box-shadow: 0 0 0 #134f8d;
  transform: translateY(5px);
}
/*独自問い合わせフォームのCSS*/
.contact-form__agree {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  margin-bottom: 16px;
}
.contact-form__confirm{
  margin-top: 2rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}
.contact-confirm-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.95rem;
}
.contact-confirm-table th,
.contact-confirm-table td {
  border: 1px solid #ddd;
  padding: 0.75rem 0.9rem;
  vertical-align: top;
}
.contact-confirm-table th {
  width: 25%;
  background-color: #f5f5f5;
  font-weight: 600;
  color: #333;
}

/* =======================
    FOOTER
======================= */
.site-footer {
  background: #111;
  color: #eee;
  padding: 32px 0 16px;
}
.site-footer__top {
  display: grid;
  gap: 2rem;
  margin-bottom: 1rem;
}
.site-footer__discription{
  max-width: 400px;
  margin: 0 auto 1rem;
}
.site-footer__logo {
  max-width: 300px;
  color: #fff;
  margin: 0 auto 1rem;
}
.footer-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  font-size: 13px;
  justify-content: center;
}
.footer-nav a {
  color: #eee;
}
.site-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 12px;
  font-size: 0.8rem;
  color: #999;
  text-align: center;
}
/* ============================
   Footer Sitemap – Mobile First
   ============================ */
.footer-sitemap {
  padding: 1rem 0;
  max-width: 900px;
  margin: 0 auto;
}
.footer-sitemap__title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--color-accent);
  font-family: serif;
}
/* モバイルベース：1カラム */
.footer-sitemap__grid {
  display: block;
  border-top: 1px solid #444;
  border-right: 1px solid #444;
  border-left: 1px solid #444;
}
.sitemap-col {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sitemap-col:last-child{
  margin-bottom: 0;
}
.sitemap-col__item {
  /* margin-bottom: 1rem; */
  border-bottom: 1px solid #444;
}
/* 親リンク(子なし) */
.sitemap-col__item > a {
  display: block;
  font-weight: 600;
  color: #fff;
  text-decoration: none;
  padding: 1rem;
}
.sitemap-col__item > a:hover,
.sitemap-col__item > a:active {
  color: var(--color-accent);
}
/* 親＋子を持つアイテム（アコーディオンのトリガー） */
.sitemap-toggle {
  width: 100%;
  text-align: left;
  border: none;
  background: none;
  padding: 1rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
/* アイコン（＋ / − 風） */
.sitemap-toggle__icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  position: relative;
}
.sitemap-toggle__icon::before,
.sitemap-toggle__icon::after {
  content: "";
  position: absolute;
  background-color: #ccc;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.sitemap-toggle__icon::before {
  width: 12px;
  height: 2px;
}
.sitemap-toggle__icon::after {
  width: 2px;
  height: 12px;
}
/* 開いているときは縦線を消して「−」にする */
.sitemap-col__item.is-open .sitemap-toggle__icon::after {
  opacity: 0;
}
/* 子リスト（モバイルではアコーディオン） */
.sitemap-sublist {
  list-style: none;
  margin: 0;
  padding-left: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.25s ease;
  background-color: #444;
}
.sitemap-col__item.is-open .sitemap-sublist {
  max-height: 1000px; /* 十分大きければOK */
}
.sitemap-sublist li {
  margin: 0;
}
.sitemap-sublist li a {
  font-size: 1rem;
  color: #f5f5f5;
  text-decoration: none;
  padding: 1rem;
  display: block;
  border-bottom: 1px solid #000;
}
.sitemap-sublist li:last-child a{
  border-bottom: none;
}
.sitemap-sublist li a:hover,
.sitemap-sublist li a:active {
  color: var(--color-accent);
}

/* ============================
   PCレイアウト（768px以上）
   ============================ */
@media (min-width: 768px) {
  .footer-sitemap__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    gap: 24px;
    border: none;
  }
  /* PCでは常に展開状態にして、アコーディオン無効化 */
  .sitemap-sublist {
    max-height: none;
    overflow: visible;
    background: none;
    padding: 0 0 0 0.5rem;
  }
  .sitemap-sublist li {
    margin: 4px 0;
  }
  .sitemap-toggle {
    cursor: default;
    padding-bottom: 4px;
  }
  .sitemap-toggle__icon {
    display: none; /* アイコン非表示 */
  }
  .sitemap-col__item{
    margin-bottom: 1rem;
    border: none;
  }
  .sitemap-col__item > a:hover {
    text-decoration: underline;
  }
  .sitemap-sublist li a{
    font-size: 0.9rem;
    padding: 2px 0;
    display: inline-block;
    border: none;
  }
  .sitemap-sublist li a:hover,
  .sitemap-sublist li a:active {
    text-decoration: underline;
  }
  .sitemap-col__item > a,
  .sitemap-toggle{
    padding: 0 0 0 10px;
    border-left: 3px solid var(--color-accent);
    display: inline-block;
  }
}

/* =======================
    RESPONSIVE
======================= */

@media (min-width: 768px) {
  .btn {
    min-width: 280px;
  }
  .hero__buttons {
    justify-content: left;
  }
  .book {
    justify-items: left;
    align-items: left;
  }
  .book.short-ver{
    gap: 1.5rem;
  }
  .book.short-ver .btn{
    min-width: 220px;
  }
  .book__cover {
    max-width: 220px;
  }
  .profile {
    /* justify-items: left;
    align-items: left; */
  }
  .header-sns {
    margin-top: 0;
    margin-left: 16px;
    flex-wrap: nowrap;
  }
  .header-sns__item {
    width: auto;
  }
  .header-sns__link {
    font-size: 0.8rem;
    padding: 6px 10px;
  }
  .section {
    padding: 64px 0;
  }
  .section__foot {
    text-align: right;
  }
  .cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .website__item {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .website__item:last-child .website__item__img{
    order: 2;
  }
  .website__item:last-child .website__detail{
    order: 1;
  }
  .book {
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    align-items: center;
  }
  .book.short-ver{
    grid-template-columns: minmax(0, 120px) 2fr 1fr;
    align-items: center;
  }
  .profile {
    /* grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    align-items: flex-start; */
  }
  .contact-layout {
    /* grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.5fr); */
  }
  .site-footer__top {
    /* grid-template-columns: minmax(0, 1.3fr) minmax(0, 2fr); */
    align-items: flex-start;
  }
  .section__col2{
    display: flex; /* flexbox */
    flex-wrap: wrap; /* 折返し指定 */
    justify-content: center;
  }
  .section__col2 > div{
    width: calc(50% - 1rem); /* margin padding分を引く */
    padding: 0.5rem;
  }
  .section__col2 > div:nth-child(even){
    text-align: left;
  }
  .section__col2 > div:nth-child(odd){
    text-align: right;
  }
}
@media (min-width: 1000px) {
  .is-sp {
    display: none !important;
  }
  .is-pc {
    display: block !important;
  }
  .header{
    padding: 0;
    background: 
      linear-gradient(rgb(0, 0, 0), rgb(0, 0, 0)) center top / 100% 50% no-repeat,
      linear-gradient(to right, transparent, rgba(0, 0, 0, 0)) center bottom / 100% 50% no-repeat;
    background-position: center top, center bottom;
  }
  .header .flex .logo {
    max-width: 200px;
    margin-right: 20px;
  }
  .header-inner {
    padding: 0px 20px;
  }
  .header .heading {
    padding: 17px 0px;
  }
  .header .global-nav__list {
    display: flex;
  }
  .header .global-nav__item {
    margin-left: 30px;
  }
  .header .global-nav__item a {
    position: relative;
    display: inline-block;
    color: rgb(255, 255, 255);
    text-decoration: none;
  }
  .header .global-nav__item a:hover,
  .header .global-nav__item a:active{
    color: var(--color-accent);
    text-decoration: none;
  }
  .header .bottom {
    padding: 15px 0px;
  }
  .header .bottom .sns {
    display: flex;
    -webkit-box-pack: end;
    justify-content: flex-end;
  }
  .header .bottom .sns li {
    margin-right: 20px;
    width: 20px;
  }
  .header .bottom .sns li:nth-child(1) {
    width: 35px;
  }
  .header .bottom .sns li:last-child {
    margin-right: 0px;
    width: 22px;
  }
  .header .bottom .sns li a {
    display: block;
    text-align: center;
  }
  .header .bottom .sns li a img {
    margin: 0px auto;
  }
  .sns__item a {
    display: block;
    width: 100%;
    height: 100%;
    transition: 0.3s;
  }
  .drawer-icon {
    display: none;
  }
  .hero__content {
    text-align: left;
  }
  .hero__inner {
    padding: 170px 20px 60px;
  }
  .section__title {
    font-size: 2rem;
  }
  .hero__title {
    font-size: 32px;
  }
  .section--special__title {
    font-size: 2rem;
  }
  .section--special__box {
    margin: 1em auto;
    max-width: 700px;
  }
  .section--special.short-ver .section--special__box{
    max-width: 900px;
  }
}
@media (min-width: 1024px){
  .header .flex .logo {
    max-width: 220px;
  }
  .header-inner {
    padding: 0px 40px;
  }
}
@media (min-width: 1180px){
  .header .flex .logo {
    max-width: 300px;
  }
  .header-inner {
    padding: 0px 40px;
  }
}
/* =========================
   グローバルナビ：プロフィールのサブメニュー
   ========================= */
.header .global-nav__item--has-sub {
  position: relative;
}

/* サブメニュー本体 */
.header .global-nav__sub {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  margin: 0;
  padding: 8px 0 0;
  list-style: none;
  background-color: #000;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
  z-index: 999;
}

/* サブメニューの各項目 */
.header .global-nav__sub-item a {
  width: 100%;
  display: block;
  padding: 8px 16px;
  font-size: 0.9rem;
  color: var(--color-accent);
  text-decoration: none;
  white-space: nowrap;
}
.header .global-nav__sub-item a:hover {
  background-color: #f5f5f5;
  color: #333;
}

/* hover か .is-open が付いたときに表示 */
.header .global-nav__item--has-sub:hover > .global-nav__sub,
.header .global-nav__item--has-sub.is-open > .global-nav__sub {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* スマホではドロップダウンを出さない想定（PCだけ） */
@media (max-width: 1024px) {
  .header .global-nav__item--has-sub .global-nav__sub {
    display: none;
  }
}

/* =========================
   1. 共通レイアウト（メイン＋サイドバー）
   ========================= */
.main {
  padding: 60px 0 60px;
}
/* モバイル：基本は1カラム */
.l-main-layout {
  display: block;
}
.l-main-layout .inner {
  padding: 0;
}
/* コンテンツエリア */
.l-main-layout__content {
  flex: 1;
  min-width: 0; /* flex子要素のはみ出し防止（PCレイアウト時に効く） */
}
/* サイドバー（モバイルは下に全幅で表示） */
.l-main-layout__sidebar {
  width: 100%;
  flex-shrink: 0;
  margin-top: 32px;
}
/* サイドバーを使わないページで .no-sidebar を body に付ける想定 */
body.no-sidebar .l-main-layout {
  display: block;
}
body.no-sidebar .l-main-layout__sidebar {
  display: none;
}
/* PC：2カラムレイアウトに切り替え */
@media (min-width: 1024px) {
  .main{
    padding: 100px 0 60px;
  }
  .l-main-layout {
    display: flex;
    gap: 30px;
  }
  .l-main-layout__sidebar {
    width: 280px;
    margin-top: 2rem;
  }
}
/* =========================
   2. 記事（投稿・固定ページ）共通
   ========================= */
.l-main-layout .entry {
  background-color: #fff;
  padding: 2rem 1rem;
}
.l-main-layout .entry__header {
  margin-bottom: 2rem;
  border-bottom: 1px solid #eee;
  padding-bottom: 1rem;
}
.l-main-layout .entry__title {
  font-size: 1.5rem; /* モバイルベース */
  line-height: 1.7;
  margin-bottom: 0.5rem;
  color: #333;
  font-family: serif;
}
.l-main-layout .entry__meta {
  font-size: 0.85rem;
  color: #777;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.l-main-layout .entry__meta a {
  color: #206ec0;
  text-decoration: none;
}
.l-main-layout .entry__meta a:hover {
  text-decoration: underline;
}
.l-main-layout .entry__body {
  font-size: 1rem;
  line-height: 1.9;
  color: #333;
}

/* PCでタイトルを少し大きく */
@media (min-width: 768px) {
  .l-main-layout .entry__title {
    font-size: 1.8rem;
  }
}


/* =========================
   3. 本文内要素（the_content()用）
   ========================= */
.l-main-layout .entry__body p {
  margin: 0 0 1.2em;
}
.l-main-layout .entry__body h2,
.l-main-layout .entry__body h3,
.l-main-layout .entry__body h4,
.l-main-layout .entry__body h5 {
  margin: 2.2em 0 1em;
  line-height: 1.4;
  font-weight: 700;
}
.l-main-layout .entry__body h2 {
  font-size: 1.6rem;
  padding-bottom: 0.4em;
  border-bottom: 2px solid #206ec0;
}
.l-main-layout .entry__body h3 {
  font-size: 1.3rem;
  border-left: 4px solid #206ec0;
  padding-left: 0.6em;
}
.l-main-layout .entry__body h4 {
  font-size: 1.1rem;
}

/* リスト */
.l-main-layout .entry__body ul,
.l-main-layout .entry__body ol {
  margin: 0 0 1.2em 1.4em;
  padding: 0;
}
.l-main-layout .entry__body ul {
  margin: 0 0 1.2em 1.4em;
  padding: 0;
}
.l-main-layout .entry__body ol{
  margin: 0 0 1.2em 0;
  padding: 0;
}
.l-main-layout .entry__body ol {
  list-style: none;
  counter-reset: number;
}
.l-main-layout .entry__body ol li {
  position: relative;
  padding-left: 40px;
}
.l-main-layout .entry__body ol li::before {
  counter-increment: number;
  content: '（' counter(number) '）';
  position: absolute;
  left: 0;
}
.l-main-layout .entry__body ul li {
  margin-bottom: 0.3em;
  list-style-type: disc;
}
.l-main-layout .entry__body ul li::marker{
  color: var(--color-main);
}
blockquote {
  font-family: Georgia, serif;
  font-size: 1rem;
  font-style: italic;
  margin: 1.8em 0;
  padding: 1.2em 40px;
  line-height: 1.7;
  position: relative;
  color: #383838;
  background:#ececec;
}

blockquote:before {
  display: block;
  content: "\201C";
  font-size: 80px;
  position: absolute;
  left: -10px;
  top: -10px;
  color: #7a7a7a;
}

blockquote cite {
  color: #999999;
  font-size: 14px;
  display: block;
  margin-top: 0.5rem;
}

blockquote cite:before {
  content: "\2014 \2009";
}

/* テーブル */
.l-main-layout .entry__body table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.6em 0;
  font-size: 0.95rem;
}
.l-main-layout .entry__body th,
.l-main-layout .entry__body td {
  border: 1px solid #ddd;
  padding: 8px 10px;
}
.l-main-layout .entry__body th {
  background-color: #f5f5f5;
  font-weight: 600;
}

/* 画像 */
.l-main-layout .entry__body img {
  max-width: 100%;
  height: auto;
}
.l-main-layout .entry__body figure {
  margin: 1.6em 0;
}
.l-main-layout .entry__body figcaption {
  margin-top: 0.4em;
  font-size: 0.8rem;
  color: #777;
  text-align: center;
}

/* WordPress デフォルトクラス対応（モバイル時は中央寄せ・縦並び） */
.alignnone,
.aligncenter,
.alignleft,
.alignright {
  height: auto;
}
.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* モバイル：floatせず縦並び */
.alignleft,
.alignright {
  float: none;
  margin: 0 auto 1em;
  display: block;
}

/* PC以上で float を有効化 */
@media (min-width: 768px) {
  .alignleft {
    float: left;
    margin-right: 1em;
    margin-bottom: 0.5em;
  }
  .alignright {
    float: right;
    margin-left: 1em;
    margin-bottom: 0.5em;
  }
}

/* キャプション付き画像 */
.wp-caption {
  max-width: 100%;
}
.wp-caption img {
  display: block;
}
.wp-caption-text {
  font-size: 0.8rem;
  color: #777;
  text-align: center;
  margin-top: 0.4em;
}

/* =========================
   4. サイドバー
   ========================= */
.sidebar {
  font-size: 0.9rem;
}
.sidebar__section {
  margin-bottom: 2rem;
}
.sidebar__inner{
  /* padding: 1.5rem; */
}
.sidebar__title {
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
  color: #fff;
  background-color: var(--color-main);
  padding: 0.8rem;
  letter-spacing: 1px;
  border-radius: 0.5rem 0.5rem 0 0;
}
.sidebar ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border-right: 1px solid #e0e0e0;
  border-left: 1px solid #e0e0e0;
}
.sidebar ul li{
  border-bottom: 1px solid #e0e0e0;
}
.sidebar ul li a{
  display: block;
  padding: 0.5rem 1rem;
}
/* .sidebar li + li {
  margin-top: 6px;
} */
.sidebar a {
  color: #333;
  text-decoration: none;
}
.sidebar a:hover {
  color: #206ec0;
  text-decoration: none;
  background-color: #f5f5f5;
}
/* =========================
   サイドバー：最近の投稿（サムネ付き）
   ========================= */

/* ul の枠線は既存の .sidebar ul に任せる */
.sidebar-posts {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 枠線を li にも維持 */
.sidebar-post {
  border-bottom: 1px solid #e0e0e0;
}

/* サムネ + テキスト横並び */
.sidebar ul li a.sidebar-post__link {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.6rem;
  text-decoration: none;
  color: inherit;
}

/* 既存の .sidebar a:hover の効果を継承させたいので、
   ここでは hover の色変更は追加しない */

/* サムネイル部分 */
.sidebar-post__thumb {
  width: 64px;
  height: 64px;
  border-radius: 6px;
  overflow: hidden;
  background-color: #f5f5f5;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sidebar-post__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* サムネなし */
.sidebar-post__thumb--noimage {
  width: 100%;
  height: 100%;
  font-size: 0.7rem;
  color: #aaa;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* テキスト部分 */
.sidebar-post__body {
  flex: 1;
  min-width: 0;
}

/* .sidebar-post__title {
  display: block;
  font-size: 0.9rem;
  color: #333;
  line-height: 1.5;
  margin-bottom: 4px;
} */
.sidebar-post__title {
  font-size: 0.9rem;
  color: #333;
  display: -webkit-box;
  -webkit-line-clamp: 2; /* 行数指定（2行で省略） */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.5;
  margin-bottom: 4px;
}
.sidebar-post__date {
  display: block;
  font-size: 0.78rem;
  color: #555;
}

/* モバイルでも特に崩れないが、
   画面がかなり狭い場合はサムネ幅を少し落としてもよい */
@media (max-width: 480px) {
  .sidebar-post__thumb {
    width: 56px;
    height: 56px;
  }
}
/* アーカイブアコーディオン */
.archive-year-toggle {
  width: 100%;
  background: #f7f7f7;
  border: none;
  padding: 0.5rem 1rem;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-right: 1px solid #e0e0e0;
  border-left: 1px solid #e0e0e0;
  border-bottom: 1px solid #e0e0e0;
  font-weight: 700;
}
.archive-year-toggle:hover {
  background: #ececec;
}
.archive-months {
  margin: 8px 0 12px 12px;
}
.archive-months li {
  margin: 0;
}
.archive-months a {
  color: #333;
  text-decoration: none;
}
.archive-months a:hover {
  text-decoration: none;
}
.archive-year-icon {
  font-size: 1rem;
  line-height: 1;
}

/* =========================
   5. ページネーション（任意）
   ========================= */
.pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 32px 0 0;
}
.pagination a,
.pagination span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 32px;
  height: 32px;
  padding: 0 6px;
  border-radius: 4px;
  font-size: 0.9rem;
  border: 1px solid #ddd;
  color: #333;
  text-decoration: none;
}
.pagination a:hover {
  border-color: #206ec0;
  color: #206ec0;
}
.pagination .current {
  background-color: #206ec0;
  border-color: #206ec0;
  color: #fff;
}
.wp-block-quote p:last-child {
  margin-bottom: 0;
}

/* =========================
   アーカイブ（カテゴリ・タグなど）
   ========================= */

/* 見出し部分はそのままモバイルベース */
.archive__header {
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid #eee;
}
.archive__title {
  font-size: 1.6rem;
  font-weight: 700;
  color: #333;
  margin-bottom: 8px;
}

@media (min-width: 768px) {
  .archive__title {
    font-size: 2rem;
  }
}
.archive__description {
  font-size: 0.95rem;
  color: #555;
}

/* モバイル：1カラム */
.archive-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

/* PC：2カラム */
@media (min-width: 900px) {
  .archive-list {
    /* grid-template-columns: 1fr 1fr; */
  }
}
.archive-item {
  background-color: #f5f5f5;
  border-radius: 8px;
  overflow: hidden;
  /* box-shadow: 0 4px 12px rgba(0,0,0,0.04);
  transition: transform 0.15s ease, box-shadow 0.15s ease; */
}
.archive-item__link {
  display: flex;
  flex-direction: column; /* モバイルは縦並び */
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.archive-item__link:hover,
.archive-item__link:active{
  text-decoration: none;
}
.archive-item__thumb {
  width: 100%;
  flex-shrink: 0;
  overflow: hidden;
  flex-shrink: 0;
  background-color: #f5f5f5;
  display: flex;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  -o-object-fit: cover;
  object-fit: cover;
}
.archive-item__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.archive-item__thumb--noimage {
  width: 100%;
  height: 100%;
  min-height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f5f5;
  color: #aaa;
  font-size: 0.8rem;
}
.archive-item__body {
  padding: 14px 16px;
  flex: 1;
}
.archive-item__meta {
  font-size: 0.8rem;
  color: #777;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}
.archive-item__cat {
  padding: 2px 8px;
  border-radius: 999px;
  background-color: #f0f6ff;
  color: #206ec0;
}
.archive-item__title {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 6px;
  color: #333;
}
.archive-item__excerpt {
  font-size: 0.9rem;
  color: #555;
  line-height: 1.7;
}
/* .archive-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.06);
} */
.archive-item:hover .archive-item__thumb img,
.archive-item:active .archive-item__thumb img{
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
/* PC以上で横並び＋サムネ固定幅 */
@media (min-width: 768px) {
  .archive-item__link {
    flex-direction: row;
  }
  .archive-item__thumb {
    width: 36%;
  }
}

/* タグ表示 */
.entry__tags {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #eee;
  font-size: 0.9rem;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.entry__tags-label {
  font-weight: 600;
  color: #555;
  margin-right: 4px;
}
.entry__tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 999px;
  background-color: #f0f6ff;
  color: #206ec0;
  text-decoration: none;
  font-size: 0.85rem;
}
.entry__tag:hover {
  background-color: #206ec0;
  color: #fff;
  text-decoration: none;
}

/* =========================================================
   Entry Navigation – Thumbnail Card Style
   ========================================================= */

/* モバイル：縦2枚（上:PREV / 下:NEXT） */
.entry-nav.entry-nav--cards {
  margin: 48px 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* 各カード全体がリンク */
.entry-nav-card {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid #e0e0e0;
  padding: 0;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
  position: relative;
}
.entry-nav-card:hover {
  background-color: #f5f5f5;
  text-decoration: none;
}

/* PREV / NEXT ラベル */
.entry-nav-card__label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  color: #333;
  letter-spacing: 0.08em;
  position: absolute;
  left: 0;
  top: 0;
  background-color: #e0e0e0;
  padding: 0 0.3rem;
  z-index: 1;
}

/* 内部レイアウト（サムネ + 本文） */
.entry-nav-card__inner {
  display: flex;
  gap: 14px;
  align-items: anchor-center;
}

/* サムネイル */
.entry-nav-card__thumb {
  width: 30%;
  max-width: 140px;
  height: 110px;
  flex-shrink: 0;
  overflow: hidden;
  background-color: #f5f5f5;
  display: flex;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  -o-object-fit: cover;
  object-fit: cover;
}
.entry-nav-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.entry-nav-card:hover .entry-nav-card__thumb img,
.entry-nav-card:active .entry-nav-card__thumb img{
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
/* No Image 用 */
.entry-nav-card__thumb--noimage {
  width: 100%;
  height: 100%;
  min-height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  color: #aaa;
}

/* テキスト部分 */
.entry-nav-card__body {
  flex: 1;
  min-width: 0;
  margin-top: -1rem;
}
.entry-nav-card__date {
  display: block;
  font-size: 0.8rem;
  color: #777;
  margin-bottom: 4px;
}
.entry-nav-card__title {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.6;
  color: #206ec0;
  word-break: break-word;
  display: -webkit-box;
  -webkit-line-clamp: 3; /* 行数指定（2行で省略） */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* PREV / NEXT */
.entry-nav-card--prev {
}
.entry-nav-card--next{
  border-top: none;
}
.entry-nav-card--prev .entry-nav-card__label {
  /* 必要ならカスタム */
}
.entry-nav-card--next .entry-nav-card__label {
  text-align: right;
}
.entry-nav .entry-nav-card:last-child{
  border-bottom: 1px solid #e0e0e0;
}
/* PC：横並び2枚にする */
@media (min-width: 768px) {
  .entry-nav.entry-nav--cards {
    flex-direction: row;
  }
  .entry-nav-card__thumb{
    height: 120px;
  }
  .entry-nav-card {
    width: 50%;
  }
  .entry-nav-card--next{
    border-top: 1px solid #e0e0e0;
    border-left: none;
  }
}
/* =========================
   サポート実績 一覧カード
   ========================= */
.support-archive {
  /* margin-top: 2.5rem; */
}
.support-archive__heading {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}
/* グリッドレイアウト（モバイル：1カラム / PC：2カラム） */
.support-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .support-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* カード本体（フラット：box-shadow, border-radius なし） */
.support-card {
  border: 1px solid #ddd;
  background-color: #fff;
}
.support-card__link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.l-main-layout .entry__body h3.support-card__title{
  margin: 0 0 1rem;
}
/* サムネイル部分（フラット＋ホバーで画像拡大） */
.support-card__thumb {
  position: relative;
  overflow: hidden;
  /* アスペクト比を揃えたい場合 */
  aspect-ratio: 16 / 9;
  background-color: #f5f5f5;
}
.support-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform 0.3s ease;
}
.support-card__link:hover,
.support-card__link:active{
  text-decoration: none;
}
/* 画像ホバー時に少しズーム */
.support-card__link:hover .support-card__thumb img,
.support-card__link:active .support-card__thumb img{
  transform: scale(1.05);
}
/* No Image 用 */
.support-card__thumb--noimage {
  width: 100%;
  height: 100%;
  min-height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  color: #aaa;
}
/* テキスト部分 */
.support-card__body {
  padding: 1rem 1.1rem 1.2rem;
}
.support-card__title {
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: #333;
}
.support-card__excerpt {
  font-size: 0.9rem;
  color: #555;
  line-height: 1.7;
}
/* ホバー時にほんのり背景色だけ変える（フラットのまま） */
.support-card__link:hover .support-card__body {
  background-color: #fafafa;
}


/* =========================
   サイドバー検索フォーム
   ========================= */
.sidebar__section--search .sidebar__inner {
  padding: 0.75rem 1rem 1rem;
  border-right: 1px solid #e0e0e0;
  border-left: 1px solid #e0e0e0;
  border-bottom: 1px solid #e0e0e0;
}
.search-form {
  display: flex;
  gap: 0.5rem;
}
.search-form__label {
  flex: 1;
}
.search-form__input {
  width: 100%;
  padding: 0.45rem 0.6rem;
  border-radius: 4px;
  border: 1px solid #ccc;
  font-size: 0.9rem;
  box-sizing: border-box;
  background-color: #f5f5f5;
}
.search-form__input:focus {
  outline: none;
  border-color: #206ec0;
  box-shadow: 0 0 0 1px rgba(32,110,192,0.15);
}
.search-form__submit {
  padding: 0.4rem 0.8rem;
  border-radius: 6px;
  border: none;
  background-color: #fff;
  border: 1px solid var(--color-main);
  color: var(--color-main);
  font-size: 0.85rem;
  font-weight: bold;
  cursor: pointer;
  white-space: nowrap;
}
.search-form__submit:hover,
.search-form__submit:active {
  background-color: var(--color-main);
  color: #fff;
}

/* 非表示テキスト（アクセシビリティ用） */
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* スマホで縦積みにしたい場合 */
@media (max-width: 480px) {
  .search-form {
    flex-direction: column;
  }
  .search-form__submit {
    width: 100%;
    text-align: center;
  }
}

/* =========================
   固定ページ共通
   ========================= */
.large-inner{
  padding: 0 20px;
  margin: 0 auto;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}
.bread {
  position: relative;
  letter-spacing: 0;
}
.bread .bread-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.bread a,
.bread span {
  font-size: 12px;
  display: block;
}
.bread .center {
  padding: 0 10px;
  margin-left: 4px;
}
.bread a {
  text-decoration: underline;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  white-space: nowrap;
}
.bread a:hover {
  opacity: 0.6;
}
@media (min-width: 1024px){
  .large-inner{
    max-width: 1100px;
    padding: 0 40px !important;
  }
  .bread a,
  .bread span {
    font-size: 14px;
  }
}

/* =========================
   固定ページ[プロフィール]
   ========================= */
.profile-page{
  padding: 0;
}
.profile__visual{
  padding-top: 75px;
  background: url("../img/bg_profile30.png") no-repeat center/cover;
}
.profile__detail{
  background: url("../img/bg_profile_background2.png") no-repeat center/cover;
  padding: 3rem 0;
}
.profile__contents{
  position: relative;
}
.profile__main-img{
  width: 60%;
  margin: 0 auto;
}
.profile__heading{
  margin: 1rem 0 2rem;
}
.profile__heading p{
  margin-bottom: 1rem;
}
.profile__heading p:last-child{
  margin-bottom: 0;
}
.profile__bottom{
  padding: 2rem 20px;
  position: relative;
  background-color: var(--color-main);
  margin-left: -20px;
  width: 100vw;
  color: #fff;
}
.profile__bottom .row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.profile__bottom .row .dt {
  width: 70px;
}
.profile__bottom .row .dd {
  width: calc(100% - 70px);
}
.profile__contents{
  margin-top: 3rem;
}
.profile__detail__area{
  padding: 1rem 0 0;
  background: rgba(255,255,255, 0.8);
  margin: 0 auto;
  max-width: 900px;
}
.profile__background{
  padding: 1rem;
}
.profile__background p{
  margin-bottom: 1rem;
}
.profile__background p:last-child{
  margin-bottom: 0;
}
.profile__company{
  margin: 2rem auto 0;
}
.profile__company-table {
  border-collapse: collapse;
  margin-top: 2rem;
  width: 100%;
}
.profile__company-table tr:nth-child(odd) {
  background-color: #fff;
}
.profile__company-table th, .profile__company-table td {
  padding: 1em;
}
.profile__company-table th, .profile__company-table td {
  padding: 1em 0.5em;
}
.profile__company-table th {
  font-weight: bold;
  text-align: center;
  width: 30%;
}
@media (min-width: 1024px){
  .profile__visual{
    padding-top: 110px;
  }
  .profile__main-img{
    position: absolute;
    bottom: 0;
    left: -5%;
    width: 37%;
    z-index: 3;
  }
  .profile__heading{
    padding-bottom: 30px;
    margin: 0;
  }
  .profile__contents .h1-title {
    max-width: 400px;
    margin-bottom: 2rem;
  }
  .profile__heading .wrap{
    width: 65%;
    margin-left: auto;
    position: relative;
    z-index: 2;
  }
  .profile__bottom{
    padding: 30px 0 50px;
    margin-left: 0;
    width: auto;
  }
  .profile__bottom .wrap{
    width: 65%;
    margin-left: auto;
    position: relative;
    z-index: 2;
    color: #fff;
  }
  .profile__bottom::after {
    position: absolute;
    left: -50%;
    width: 300%;
    height: 100%;
    content: "";
    background: var(--color-main);
    z-index: 1;
    top: 0;
  }
  .profile__detail{
    padding: 5rem 0;
  }
  .profile__background{
    padding: 3rem;
  }
  .profile__company-table th, .profile__company-table td {
    padding: 1em;
  }
  .profile__company-table th {
    width: 20%;
  }
}

/* =========================
   留学成功者 一覧カード
   ========================= */
.achiever-archive {
  margin-top: 2.5rem;
}

/* グリッド：SP 1カラム / PC 3カラム */
.achiever-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

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

/* カード本体：フラット（shadow, radius なし） */
.achiever-card {
  border: 1px solid #ddd;
  background-color: #fff;
}
.achiever-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
/* サムネイル：ホバーで画像がスケール */
.achiever-card__thumb {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background-color: #f5f5f5;
}
.l-main-layout .entry__body .achiever-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform 0.3s ease;
}
.achiever-card__link:hover,
.achiever-card__link:active{
  text-decoration: none;
}
.achiever-card__link:hover .achiever-card__thumb img,
.achiever-card__link:active .achiever-card__thumb img {
  transform: scale(1.05);
}
/* No Image */
.achiever-card__thumb--noimage {
  width: 100%;
  height: 100%;
  min-height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  color: #aaa;
}
/* テキスト部分 */
.achiever-card__body {
  padding: 0;
}
.achiever-card__body > div{
  border-bottom: 1px solid #ddd;
  padding-bottom: 0.5rem;
}
.achiever-card__body > div:last-child{
  border: none;
  padding-bottom: 0;
}
.l-main-layout .entry__body h2.achiever-card__title {
  font-size: 1.1rem;
  line-height: 1.5rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
  color: #333;
  padding-bottom: 0;
  font-family: serif;
  display: -webkit-box;
  -webkit-line-clamp: 2; /* 行数指定（2行で省略） */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  border: none;
  color: var(--color-main);
}
/* ユーザー名・肩書き */
.achiever-card__user {
  font-size: 1rem;
  color: #555;
  margin-bottom: 0.6rem;
  font-family: serif;
}
.achiever-card__user-name {
  font-weight: 600;
  margin-right: 0.4em;
}
.achiever-card__user-title {
  font-size: 0.85rem;
}
/* セクション（合格大学／奨学金／その他） */
.achiever-card__section {
  margin-top: 0.5rem;
  display: flex;
}
.achiever-card__section-label {
  font-size: 0.9rem;
  color: var(--color-main);
  width: 4rem;
}
.achiever-card__section-body {
  font-size: 1rem;
  color: #555;
  line-height: 1.6;
}
/* ホバー時、背景だけうっすら */
.achiever-card__link:hover .achiever-card__body, 
.achiever-card__link:active .achiever-card__body{
  background-color: #fafafa;
}
.achiever-card:has(a):hover, 
.achiever-card:has(a):active{
  background-color: #fafafa;
}
/* =========================
   留学成功者：タグフィルタ
   ========================= */
.achiever-filter {
  margin-bottom: 24px;
}
.achiever-filter__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.achiever-filter__btn {
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid #ddd;
  background-color: #f7f7f7;
  font-size: 0.85rem;
  cursor: pointer;
  margin-bottom: 6px;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.achiever-filter__btn.is-active {
  background-color: var(--color-main, #206ec0);
  border-color: var(--color-main, #206ec0);
  color: #fff;
}

/* =========================
   留学成功者：カードレイアウト
   ========================= */
.achiever-archive {
  margin-top: 24px;
}
.achiever-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .achiever-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.achiever-card {
  background-color: #fff;
  border: 1px solid #e0e0e0;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.achiever-card__thumb {
  display: block;
  overflow: hidden;
}
.achiever-card__thumb img {
  width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}
/* ホバー時にサムネだけ拡大 */
.achiever-card__thumb:hover img {
  transform: scale(1.05);
}
.achiever-card__thumb--noimage {
  width: 100%;
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  color: #aaa;
  font-size: 0.8rem;
}
.achiever-card__body {
  font-size: 0.9rem;
  color: #333;
}
.achiever-card__name {
  font-weight: 700;
  margin-bottom: 2px;
}
.achiever-card__universities,
.achiever-card__scholarships,
.achiever-card__other {
  margin-bottom: 6px;
  font-size: 0.85rem;
  line-height: 1.6;
}
/* =========================
   留学成功者ページ ヒーロー（横いっぱいタイトル）
   モバイルファースト
   ========================= */
/* .main__wide-hero{
  margin-top: 67px;
} */
.wide-title {
  position: relative;
  width: 100%;
  min-height: 220px;        /* スマホの高さ */
  padding: 107px 16px 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;

  color: #fff;
  background-color: #123b5a;  /* アイキャッチなしのときのベース色 */
}
/* アイキャッチがあるとき */
.wide-title.has-bg {
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
}
/* オーバーレイ（背景画像が暗くなるフィルター） */
.wide-title::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.45),
    rgba(0, 0, 0, 0.55)
  );
  pointer-events: none;
}
.wide-title__inner {
  position: relative;
  z-index: 1;
  max-width: 960px;
  margin: 0 auto;
}
/* タイトル */
.wide-title__title {
  font-size: 1.8rem;   /* スマホ基準 */
  line-height: 1.4;
  letter-spacing: 0.1em;
  font-family: serif;
}
/* リード文 */
.wide-title__read{
  margin-top: 2rem;
  font-family: serif;
  font-weight: normal;
  font-size: 1rem;
  letter-spacing: 1px;
}
.wide-title__read p{
  margin-bottom: 1rem;
}
.wide-title__read p:last-child{
  margin-bottom: 0;
}

@media (min-width: 768px) {
  /* .main__wide-hero{
    margin-top: 58px;
  } */
  .wide-title {
    min-height: 300px;
    padding: 118px 24px 70px;
  }
  .wide-title__title {
    font-size: 2.4rem;
  }
}

/* =========================
   固定ページの末尾に関連固定ページが
   表示されるカードデザイン
   ========================= */
.sibling-pages {
  margin-top: 40px;
}
.sibling-pages__title {
  font-size: 1.3rem;
  margin-bottom: 16px;
}
.sibling-pages__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 20px;
}
.sibling-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 4px;
  overflow: hidden;
}
.sibling-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.sibling-card__link:hover,
.sibling-card__link:active{
  background-color: #f5f5f5;
  text-decoration: none;
}
.sibling-card__thumb{
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background-color: #f5f5f5;
}
.sibling-card__thumb img {
  width: 100%;
  display: block;
  object-fit: cover;
  transform: scale(1);
  transition: transform 0.3s ease;
}
/* 画像ホバー時に少しズーム */
.sibling-card__link:hover .sibling-card__thumb img,
.sibling-card__link:active .sibling-card__thumb img{
  transform: scale(1.05);
}
.sibling-card__thumb--noimage {
  background: #f5f5f5;
  padding: 40px 0;
  text-align: center;
  font-size: 14px;
  color: #999;
}
.sibling-card__body {
  padding: 15px;
}
.sibling-card__title {
  margin-bottom: 1rem;
  font-size: 1.3rem;
  border-left: 4px solid #206ec0;
  padding-left: 0.6em;
  font-weight: 700;
  line-height: 1.4;
}
.sibling-card__excerpt {
  font-size: 14px;
  color: #555;
}
/* ===== PC（2カラム） ===== */
@media (min-width: 768px) {
  .sibling-pages__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ============================
   ページトップへ戻るボタン
   ============================ */
.scroll-top {
  position: fixed;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(0,0,0,0.8);
  cursor: pointer;
  right: 20px;
  bottom: 20px;
  z-index: 1000;
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.3s, transform 0.3s;
  /* 初期状態は非表示 */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.scroll-top::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-left: 2px solid #fff;
  border-top: 2px solid #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -25%) rotate(45deg);
}
.scroll-top:hover {
  background: rgba(0,0,0,1);
  transform: translateY(0);
}
.scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
  transform: translateY(0);
}
/* 記事投稿のアイキャッチ画像の統一トリミング */
.entry__thumb {
  width: 100%;
  aspect-ratio: 16 / 9; /* ← 好きな比率に変更可能 */
  overflow: hidden;
  background: #f6f6f6;
}
.entry__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;   /* 自動トリミング */
  display: block;
}

