@charset "UTF-8";


@media (max-width: 999px) {
  .site-header__inner {
    width: min(100% - 28px, 1440px);
  }

  .global-nav__list {
    gap: 24px;
  }

  .global-nav__list a {
    font-size: 13px;
  }

  .global-nav__contact a {
    min-width: 132px;
    padding-inline: 18px;
  }

  :root {
    --header-height: 60px;
  }

  body.is-menu-open {
    overflow: hidden;
  }
	
.site-header {
	height: 70px;
}

  .site-logo {
    width: 230px;
  }
	
  .menu-button {
    position: relative;
    z-index: 1002;
    display: grid;
    place-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .menu-button span {
    display: block;
    width: 26px;
    height: 2px;
    background: var(--color-navy);
    transition:
      transform 0.25s ease,
      opacity 0.25s ease;
  }

  .menu-button.is-active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-button.is-active span:nth-child(2) {
    opacity: 0;
  }

  .menu-button.is-active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .global-nav {
    position: fixed;
    z-index: 1001;
    inset: var(--header-height) 0 0;
    height: auto;
    visibility: hidden;
    background: rgba(255, 255, 255, 0.98);
    opacity: 0;
    transition:
      opacity 0.25s ease,
      visibility 0.25s ease;
  }

  .global-nav.is-open {
    visibility: visible;
    opacity: 1;
  }

  .global-nav__list {
    flex-direction: column;
    justify-content: center;
    gap: 0;
    height: 100%;
    padding: 34px 28px 60px;
  }

  .global-nav__list li {
    width: min(100%, 420px);
  }

  .global-nav__list a {
    justify-content: center;
    height: auto;
    padding: 18px 12px;
    border-bottom: 1px solid var(--color-border);
    font-size: 15px;
  }

  .global-nav__list > li:not(.global-nav__contact) > a::after {
    display: none;
  }

  .global-nav__contact {
    height: auto;
    margin-top: 28px;
  }

  .global-nav__contact a {
    min-height: 56px;
    border: 0;
  }
	
	.wrapper{
	width: calc(100% - 40px);
	}
	
	.sp{
		display: block;
	}
}





/* =========================================================
   ニュース：999px以下
========================================================= */

@media screen and (max-width: 999px) {
  .news-strip__inner {
    display: block;
	  max-width: 640px;
	  margin-left: auto;
	  margin-right: auto;
  }

  .news-strip__label {
    justify-content: flex-start;
    min-height: 38px;
    padding: 10px 20px;
    border-right: 0;
    border-bottom: 1px solid var(--color-border);
    box-sizing: border-box;
  }

  .news-strip__article {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 6px 12px;
    width: 100%;
    min-width: 0;
    padding: 14px 20px 16px;
    box-sizing: border-box;
    white-space: normal;
  }

  /* 赤丸 */
  .news-strip__dot {
    flex: 0 0 5px;
    width: 5px;
    height: 5px;
  }

  /* EVENT */
  .news-strip__category {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
  }

  /* 日付 */
  .news-strip__article time {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
  }

  /* 記事タイトルは必ず次の行へ */
  .news-strip__article a {
    flex: 0 0 100%;
    width: 100%;
    margin: 4px 0 0;
    padding: 0;
    overflow: visible;
    font-weight: 700;
    line-height: 1.7;
    white-space: normal;
    text-overflow: clip;
  }
}



/* =========================================================
   ファーストビュー：999px以下
========================================================= */
@media screen and (max-width: 999px) {

  /* ファーストビュー全体 */
  .hero {
    width: 100%;
    overflow: hidden;
    background: #fff;
  }

  /*
    PCの左右2カラムを解除し、
    コピー→画像の縦並びに変更
  */
  .hero__inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 0;
    max-height: none;
  }

  /* =======================================================
     コピー部分
  ======================================================= */
  .hero__copy {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    padding:30px 20px 0px;
    box-sizing: border-box;
    background: #fff;
  }

  /*
    PC版で画像側へ張り出している
    白い斜めオブジェクトを解除
  */
  .hero__copy::after {
    display: none;
  }

  .hero__copy-inner {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
  }

  .hero__title {
    margin: 0;
    font-size: clamp(28px, 8.7vw, 48px);
    line-height: 1.55;
    letter-spacing: 0.1em;
  }

  .hero__lead {
    margin: 20px 0 0;
    font-size: clamp(13px, 3.2vw, 16px);
    line-height: 2.15;
    letter-spacing: 0.07em;
  }

  /* お問い合わせボタン */
.button {
	min-width: auto;
	  display: inline-block;
    margin-top: clamp(30px, 7vw, 44px);
    padding: 14px 40px;
    font-size: 14px;
  }

  .hero .button__arrow {
    font-size: 16px;
  }
	
	
	
	

  /* =======================================================
     画像部分
  ======================================================= */
  .hero__visual {
    position: relative;
    z-index: 1;
    width: 100%;
    height: clamp(360px, 88vw, 540px);
    margin-top: -1px;
    overflow: hidden;
    background: #fff;

    /*
      左側を低く、右側を高くすることで
      添付のような斜めの境界を作る
    */
    clip-path: polygon(
      0 25%,
      100% 0,
      100% 100%,
      0 100%
    );
  }

  .hero-slider {
    position: relative;
    width: 100%;
    height: 100%;
  }

  .hero-slider__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;

    /*
      人物が右側にいる写真を想定
      写真によってcenterやleftに調整可能
    */
    object-position: center center;
  }
}


/* =========================================================
   ミッション：999px以下
========================================================= */
@media screen and (max-width: 999px) {

.top_mission{
	padding-top: 80px;
	padding-bottom: 80px;
}

.top_mission p{
	text-align: center;
}

.top_mission_ttl{
	text-align: center;
	font-size: 18px;
	font-weight: 700;
}

.top_mission_flex{
	display: block;
	justify-content: flex-end;
}

.top_mission_flex h2{
	font-size: 24px;
	text-align: center;
}

.top_mission_flex p{
	margin-left: auto;
	font-size: 16px;
	line-height: 2.0;
	text-align: center;
}

}



/* =========================================================
   事業再生支援協会とは：999px以下
========================================================= */
@media screen and (max-width: 999px) {

  /* -------------------------------------------------------
     コーナー全体
     ・最大幅640px
     ・640px未満では左右20pxの余白
  ------------------------------------------------------- */
  .about-content {
    width: calc(100% - 40px);
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
    padding: 72px 0 80px;
    box-sizing: border-box;
  }

  /* -------------------------------------------------------
     共通見出し
  ------------------------------------------------------- */
.main_ttl h2 {
	font-size: 20px;
	line-height: 1.6;
	letter-spacing: 0.06em;
	}

  .about-content .main_ttl__line {
    height: 3px;
    margin-top: 16px;
  }

  .about-content .main_ttl__line::before {
    width: 34%;
    max-width: none;
  }

  /* -------------------------------------------------------
     導入部分
  ------------------------------------------------------- */
  .about-intro {
    padding-top: 56px;
    padding-bottom: 44px;
    text-align: left;
  }

  .about-intro h3 {
    margin: 0;
    font-size: 22px;
    line-height: 1.65;
    letter-spacing: 0.08em;
  }

  .about-intro p {
    margin-top: 34px;
    font-size: 14px;
    line-height: 2;
    letter-spacing: 0.05em;
  }

  /*
    PC用の改行をスマホでは無効化し、
    画面幅に合わせて自然に折り返す
  */
  .about-intro br {
    display: none;
  }

  /* -------------------------------------------------------
     特徴ボックス
     PCの2カラムから縦並びへ変更
  ------------------------------------------------------- */
  .about-boxes {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
  }

  .about-box {
    width: 100%;
    min-height: 0;
    padding: 26px 22px;
    box-sizing: border-box;
  }

  .about-box h4 {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

  .about-box__line {
    width: 52px;
    height: 2px;
    margin: 14px auto 26px;
  }

  .about-box p,
  .about-box__list {
    font-size: 14px;
    line-height: 1.9;
  }

  .about-box__list {
    padding-left: 1.5em;
  }

  .about-box__list li + li {
    margin-top: 8px;
  }
}




/* =========================================================
   セミナー情報：999px以下
========================================================= */
@media screen and (max-width: 999px) {

  /* -------------------------------------------------------
     コーナー全体

     ・最大幅640px
     ・画面幅640px未満では左右20pxの余白
     ・900pxの画面でも中央640px以内
  ------------------------------------------------------- */
  .seminar-content {
    width: calc(100% - 40px);
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
    padding: 42px 0 70px;
    box-sizing: border-box;
  }

  /* -------------------------------------------------------
     セミナー日程・セミナー概要

     PCの2カラムを縦並びへ変更
  ------------------------------------------------------- */
  .seminar-layout {
    display: flex;
    flex-direction: column;
    gap: 64px;
    width: 100%;
    margin-top: 56px;
  }

  /* =======================================================
     セミナー日程
  ======================================================= */
  .seminar-schedule {
    position: static;
    width: 100%;
    min-width: 0;
    border-right: 0;
  }

  /*
    PC版のabsoluteを解除する重要箇所です。
    これによりセミナー日程が通常の高さを持ちます。
  */
  .seminar-schedule__inner {
    position: static;
    inset: auto;
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    padding-right: 0;
    box-sizing: border-box;
  }

  /* 見出し */
  .seminar-schedule h3,
  .seminar-layout > .seminar-overview h3 {
    margin: 0 0 28px;
    font-size: 18px;
    line-height: 1.6;
  }

  /* 日程一覧のスクロール領域 */
  .seminar-schedule__scroll {
    display: block;
    width: 100%;
    max-height: 440px;
    min-height: 0;
    padding-right: 10px;
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;

    scrollbar-width: thin;
    scrollbar-color: #999 #eee;
  }

  .seminar-schedule__scroll::-webkit-scrollbar {
    width: 6px;
  }

  .seminar-schedule__scroll::-webkit-scrollbar-track {
    background: #eee;
  }

  .seminar-schedule__scroll::-webkit-scrollbar-thumb {
    background: #999;
    border-radius: 999px;
  }

  /* -------------------------------------------------------
     日程カード
  ------------------------------------------------------- */
  .seminar-item {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 6px;
    width: 100%;
    min-height: 0;
    margin-bottom: 12px;
  }

  .seminar-item:last-child {
    margin-bottom: 0;
  }

  .seminar-item__area {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 18px 8px;
    font-size: 15px;
    line-height: 1.5;
    text-align: center;
  }

  .seminar-item__detail {
    min-width: 0;
    padding: 8px 0;
  }

  .seminar-item__data {
    width: 100%;
    margin: 0;
  }

  .seminar-item__data > div {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    margin-bottom: 4px;
  }

  .seminar-item__data > div:last-child {
    margin-bottom: 0;
  }

  .seminar-item__data dt,
  .seminar-item__data dd {
    min-width: 0;
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
  }

  .seminar-item__data dt {
    font-weight: 700;
    white-space: nowrap;
  }

  .seminar-item__data dd {
    overflow-wrap: anywhere;
  }

  .seminar-item__map {
    margin-top: 7px;
    font-size: 12px;
    line-height: 1.5;
  }

  .seminar-item__map span {
    font-size: 9px;
  }

  /* =======================================================
     セミナー概要
  ======================================================= */
  .seminar-layout > .seminar-overview {
    width: 100%;
    min-width: 0;
    margin-top: 0;
  }

  .seminar-overview__box {
    width: 100%;
    box-sizing: border-box;
  }

  .seminar-overview__box h4 {
    padding: 12px 16px;
    font-size: 16px;
    line-height: 1.6;
  }

  .seminar-overview__body {
    padding: 18px 16px;
  }

  .seminar-overview__body h5 {
    font-size: 15px;
    line-height: 1.7;
  }

  .seminar-overview__body p {
    margin: 10px 0 20px;
    font-size: 13px;
    line-height: 1.9;
  }

  /*
    「セミナー内容」と「対象者」を縦並びに変更
  */
  .seminar-overview__columns {
    display: block;
    width: 100%;
  }

  .seminar-overview__panel {
    width: 100%;
    padding: 16px;
    box-sizing: border-box;
  }

  .seminar-overview__panel + .seminar-overview__panel {
    border-top: 1px solid #eee;
    border-left: 0;
  }

  .seminar-overview__panel h5 {
    margin-bottom: 14px;
    padding-bottom: 7px;
    font-size: 15px;
  }

  .seminar-overview__panel li {
    padding-left: 1.1em;
    font-size: 13px;
    line-height: 1.8;
  }

  /* =======================================================
     SRC総会
  ======================================================= */
  .src-general-meeting {
    width: 100%;
    max-width: none;
    margin-top: 80px;
  }

  /*
    SRC総会内でもseminar-overviewクラスを使用しているため、
    見出し用に個別指定
  */
  .src-general-meeting > .seminar-overview {
    width: 100%;
    margin: 0;
  }

  .src-general-meeting > .seminar-overview h3 {
    margin: 0 0 28px;
    font-size: 20px;
    line-height: 1.6;
  }

  .src-general-meeting__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  .src-general-meeting__movie {
    width: 100%;
    max-width: 480px;
    border-radius: 12px;
  }

  .src-general-meeting__button {
    width: 100%;
    max-width: 420px;
    min-width: 0;
    min-height: 58px;
    margin-top: 40px;
    padding: 14px 18px;
    gap: 18px;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
  }

}





/* ==================================================
   協会情報：999px未満
================================================== */
@media screen and (max-width: 999px) {
  .association {
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
    box-sizing: border-box;
  }

  /* 上部：見出し＋タブ
  -------------------------------- */
  .association__head {
    display: block;
  }

  .association__title {
    margin: 0;
  }

  /* タブ
  -------------------------------- */
  .association-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    margin-top: 28px;
  }

  .association-tabs__button {
    width: 100%;
    min-width: 0;
    padding: 12px 6px;
    font-size: 14px;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }

  .association-tabs__button + .association-tabs__button::before {
    height: 22px;
  }

  /* 見出し下のライン
  -------------------------------- */
  .association__line {
    height: 2px;
    margin-top: 10px;
  }

  .association__line-active {
    width: 34%;
  }

  /* タブコンテンツ
  -------------------------------- */
  .association__contents {
    margin-top: 48px;
  }

  /* ==================================================
     協会概要
  ================================================== */
  .association-overview {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 40px;
  }

  .association-profile {
    width: 100%;
  }

  .association-profile__row {
    grid-template-columns: 82px minmax(0, 1fr);
    padding: 14px 0;
  }

  .association-profile__row dt,
  .association-profile__row dd {
    font-size: 12px;
    line-height: 1.8;
  }

  .association-profile__row dt {
    padding-right: 10px;
  }

  .association-map {
    width: 100%;
    border-radius: 10px;
  }

  /* ==================================================
     事業内容
  ================================================== */
  .association-business {
    width: 100%;
  }

  .association-business__list > li {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 8px;
  }

  .association-business__list > li + li {
    margin-top: 16px;
  }

  .association-business__number {
    font-size: 12px;
    line-height: 1.9;
  }

  .association-business__content p {
    font-size: 12px;
    line-height: 1.9;
  }

  .association-business__sublist {
    margin-top: 8px;
    padding-left: 22px;
  }

  .association-business__sublist li {
    padding-left: 4px;
    font-size: 12px;
    line-height: 1.9;
  }

  .association-business__sublist li + li {
    margin-top: 5px;
  }

  /* ==================================================
     役員
  ================================================== */
  .association-officers {
    display: block;
    width: 100%;
  }

  .association-officers__column + .association-officers__column {
    margin-top: 14px;
  }

  .association-officers__row {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 10px;
  }

  .association-officers__row + .association-officers__row {
    margin-top: 14px;
  }

  .association-officers__row dt,
  .association-officers__row dd {
    font-size: 12px;
    line-height: 1.8;
  }

  .association-officers__row dt {
    letter-spacing: 0.1em;
  }

  .sp-only {
    display: block;
  }
}


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

@media screen and (max-width: 999px) {
  .contact {
    max-width: 640px;
    box-sizing: border-box;
	  margin-left: auto;
	  margin-right: auto;
  }

  .contact__line {
    margin-top: 22px;
  }

  .contact__line::before {
    width: 34%;
  }

  .contact__intro {
    margin-top: 60px;
  }

  .contact__intro p {
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: 0.06em;
  }

  .contact-form {
    margin-top: 50px;
  }

  .contact-form__row {
    display: block;
    border-bottom: 1px solid #ddd;
  }

  .contact-form__label {
    display: block;
    padding: 15px 18px;
    font-size: 15px;
  }

  .contact-form__field {
    padding: 14px 0 24px;
  }

  .contact-form input,
  .contact-form select {
    height: 58px;
    padding: 0 18px;
    font-size: 15px;
  }

  .contact-form textarea {
    min-height: 220px;
    padding: 18px;
    font-size: 15px;
  }

  .contact-form__select select {
    padding-right: 55px;
  }

  .contact-form__select::before {
    right: 25px;
  }

  .contact-form__select::after {
    right: 17px;
  }

  .contact-form__select + input,
  .contact-form__postal + .contact-form__select {
    margin-top: 14px;
  }

  .contact-form__postal {
    gap: 10px;
  }

  .contact-form .contact-form__postal-input--short {
    width: 86px;
  }

  .contact-form .contact-form__postal-input--long {
    width: 100px;
  }

  .contact-form__row--comment .contact-form__label {
    padding-top: 15px;
  }

  .contact-form__buttons {
    flex-direction: column;
    margin-top: 45px;
  }

  .contact-form__button {
    width: 100%;
    min-height: 60px;
    font-size: 15px;
  }
}



/* =========================================================
   Footer sp
========================================================= */
@media (max-width: 999px) {

  .site-footer__logo {
    padding-left: 20px;
  }

  .site-footer__nav ul {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 16px 24px;
  }

  .site-footer__inner {
    width: calc(100% - 32px);
  }

  .site-footer__main {
    flex-direction: column;
    align-items: center;
    min-height: auto;
    padding: 44px 0 36px;
  }

  .site-footer__logo {
    padding-left: 0;
  }

  .site-footer__logo img {
    width: 180px;
  }

  .site-footer__right {
    width: 100%;
    align-items: center;
    gap: 32px;
  }

  .site-footer__nav {
    width: 100%;
  }

  .site-footer__nav ul {
    flex-direction: column;
    justify-content: center;
    gap: 0;
  }

  .site-footer__nav li {
    width: 100%;
    border-bottom: 1px solid #e8e8e8;
  }

  .site-footer__nav a {
    display: block;
    padding: 13px 8px;
    text-align: center;
    font-size: 15px;
  }

  .site-footer__nav a::after {
    display: none;
  }

  .site-footer__channel {
    width: min(100%, 340px);
  }

  .site-footer__copyright {
    min-height: 44px;
  }
}



/* =========================================================
   プライバシーモーダルSP
========================================================= */
@media (max-width: 999px) {
  .privacy-modal {
	padding: 25px 15px;
  }

  .privacy-modal__dialog {
    width: 100%;
    max-height: calc(100vh - 56px);
  }

  .privacy-modal__scroll {
    max-height: calc(100vh - 56px);
    padding: 30px 20px 26px;
  }

  .privacy-modal__close {
    top: -14px;
    right: -8px;
    width: 34px;
    height: 34px;
  }

  .privacy-modal__title {
    margin-bottom: 24px;
    font-size: 20px;
  }

  .privacy-modal__body {
    font-size: 15px;
    line-height: 1.8;
  }

  .privacy-modal__contact {
    width: 100%;
  }
}



/* =========================================================
   ギャラリー　SP
========================================================= */
@media (max-width: 900px) {

  .gallery-modal__inner {
    grid-template-columns:70px minmax(0, 1fr) 70px;
    padding-inline: 16px;
  }

  .gallery-modal__arrow {
    width: 52px;
    height: 52px;
  }

  .gallery-modal__image-wrap {
    height: 52vw;
  }

}


@media (max-width: 680px) {

  .gallery-content {
    width: calc(100% - 40px);
    padding: 54px 0 72px;
  }

  .gallery-heading {
    margin-bottom: 46px;
  }


  /* 一覧 */
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;

    gap: 10px;
  }

  .gallery-item,
  .gallery-item--large {
    grid-column: auto;
    grid-row: auto;

    aspect-ratio: 4 / 3;

    border-radius: 10px;
  }


  /* モーダル */
  .gallery-modal__inner {
    position: relative;

    display: block;

    min-height: 100vh;

    padding: 60px 20px 100px;
  }

  .gallery-modal__title {
    margin-bottom: 18px;
    font-size: 34px;
  }

  .gallery-modal__image-wrap {
    height: auto;
    aspect-ratio: 4 / 3;

    border-radius: 12px;
  }

  .gallery-modal__arrow {
    position: absolute;
    z-index: 2;

    top: 50%;

    width: 46px;
    height: 46px;

    transform: translateY(-50%);
  }

  .gallery-modal__arrow:hover {
    transform:
      translateY(-50%)
      scale(1.06);
  }

  .gallery-modal__arrow--prev {
    left: 6px;
  }

  .gallery-modal__arrow--next {
    right: 6px;
  }

  .gallery-modal__close {
    width: 220px;
    min-height: 56px;

    margin-top: 20px;

    padding-left: 90px;
  }

}