@charset "UTF-8";
#ais_resident {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

/* ========================================
  代表挨拶・スタッフ紹介（ais_resident アーカイブ）
  body#ais_resident 配下のみ
======================================== */

  /* 共通 blob が本文より前面に来ないように（このページのみ） */
  .ais-common-blob,
  .ais-common-blob--01.pc {
    z-index: 0;
  }
  .ais-subpage__content {
    position: relative;
    z-index: 1;
  }



  /* ========================================
    @media screen and (min-width: 768px), print
  ======================================== */
  @media screen and (min-width: 768px), print {
    /* メディアブロック（共通）
      セクション固有は .story__media 等に付け、
      幅の差分は .story__media:nth-child(n) .c-media__text-area などで上書き
    -------------------------------------*/
    .c-media-wrap {
      width: min(95%, 1200px);
      margin-inline: auto;
      display: flex;
      flex-direction: column;
      gap: 60px;
    }
    .c-media {
      display: flex;
      justify-content: center;
      gap: clamp(24px, -5.714px + 3.869vw, 50px); /* 768px ~ 1440px */
    }
    /* .c-media だけを数える（間に他要素が入ってもズレない） */
    .c-media-wrap > .c-media:nth-child(even of .c-media) {
      flex-direction: row-reverse;
    }
    .c-media__text-area {
      position: relative;
      z-index: 2;
      flex-shrink: 0;
    }
    .c-media__ttl {
      width: max-content;
      margin-bottom: clamp(20px, -25.714px + 5.952vw, 60px); /* 768px ~ 1440px */
      font-size: clamp(20px, 1.714px + 2.381vw, 36px); /* 768px ~ 1440px */
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.1em;
    }
    .c-media__ttl span {
      display: inline-block;
      padding: 10px;
      background-color: #fff;
    }
    .c-media__ttl > span ~ span {
      margin-left: -10px;
      padding-left: 0;
    }
    .c-media__ttl .em {
      margin: 0;
      padding: 0;
      color: #ed6c00;
      background: none;
    }
    .c-media__desc-wrap {
      display: flex;
      flex-direction: column;
      gap: clamp(16px, 0px + 2.083vw, 30px); /* 768px ~ 1440px */
    }
    .c-media__desc {
      font-size: clamp(13px, 9.571px + 0.446vw, 16px); /* 768px ~ 1440px */
      font-weight: 400;
      line-height: calc(30 / 16);
      letter-spacing: 0.1em;
    }
    .c-media__desc span {
      font-weight: 700;
      color: #ed6c00;
    }
    .c-media__catch {
      margin-top: 10px;
      font-size: 18px;
      font-weight: 700;
      line-height: calc(30 / 18);
      letter-spacing: 0.1em;
    }
    .c-media__image-area {
      position: relative;
      z-index: 1;
      flex-shrink: 0;
    }
    .c-media__image img,
    .c-media__image-area img {
      display: block;
      width: 100%;
      height: auto;
    }


    /* fv
    -------------------------------------*/
    .fv__inner {
      margin-top: 116px;
      position: relative;
      overflow: hidden;
    }
    .fv__image {
      display: block;
      width: 100%;
    }
    .fv__image img {
      display: block;
      width: 100%;
      height: auto;
    }
    .fv__catch {
      position: absolute;
      z-index: 2;
      top: clamp(80px, 26.667px + 6.944vw, 160px); /* 768px ~ 1920px */
      width: 100%;
      padding-inline: 1em;
      font-size: clamp(28px, 22.667px + 0.694vw, 36px); /* 768px ~ 1920px */
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.1em;
      text-align: center;
      color: #fff;
    }

    
    /* greeting
    -------------------------------------*/
    .greeting {
      margin-top: clamp(-364px, 86px + -23.438vw, -94px); /* 768px ~ 1920px */
    }
    .greeting__bg-wave {
      position: relative;
      z-index: 0;
      line-height: 0;
    }
    .greeting__bg-wave img {
      display: block;
      width: 100%;
      height: auto;
    }

    .greeting__inner {
      position: relative;
      z-index: 1;
      margin-top: clamp(-144px, 6px + -7.813vw, -54px); /* 768px ~ 1920px */
      padding-bottom: clamp(80px, 6.857px + 9.524vw, 144px); /* 768px ~ 1440px */
      background-color: #fee8b8;
    }

    .greeting__media:nth-of-type(1) {
      align-items: flex-end;
      margin-top: clamp(-113px, 75.333px + -9.809vw, 0px); /* 768px ~ 1920px */

      .c-media__text-area {
        width: clamp(360px, 53.714px + 39.881vw, 628px); /* 768px ~ 1440px */
      }
      .c-media__image-area {
        width: clamp(320px, 89.143px + 30.06vw, 522px); /* 768px ~ 1440px */
        transform: translateY(clamp(-100px, -214.286px + 14.881vw, 0px)); /* 768px ~ 1440px */
      }
    }
    .greeting__media:nth-of-type(2) {
      align-items: flex-start;

      .c-media__text-area {
        width: clamp(380px, 34.857px + 44.94vw, 682px); /* 768px ~ 1440px */
      }
      .c-media__image-area {
        width: clamp(300px, 108px + 25vw, 468px); /* 768px ~ 1440px */
      }
    }


    /* story
    -------------------------------------*/
    .story {
      background-color: #fee8b8;
    }
    .story__inner {
      padding-bottom: 140px;
    }
    .story__head-image {
      display: block;
      width: 100%;
      margin-bottom: 80px;
    }
    .story__head-image img {
      display: block;
      width: 100%;
      height: auto;
    }

    .story .c-media-wrap {
      gap: 80px;
    }

    .story__media {
      .c-media__ttl {
        margin-bottom: clamp(14px, -15.714px + 3.869vw, 40px); /* 768px ~ 1440px */
      }
    }
    .story__media:nth-of-type(1),
    .story__media:nth-of-type(2) {
      .c-media__text-area {
        width: clamp(360px, 54.857px + 39.732vw, 627px); /* 768px ~ 1440px */
      }
      .c-media__image-area {
        width: clamp(320px, 88px + 30.208vw, 523px); /* 768px ~ 1440px */
      }
    }
    .story__media:nth-of-type(3),
    .story__media:nth-of-type(4) {
      .c-media__text-area {
        width: clamp(330px, 78.571px + 32.738vw, 550px); /* 768px ~ 1440px */
      }
      .c-media__image-area {
        width: clamp(350px, 64.286px + 37.202vw, 600px); /* 768px ~ 1440px */
      }
    }
    .story__media:nth-of-type(4) {
      .c-media__desc-wrap {
        margin-top: clamp(10px, -47.143px + 7.44vw, 60px); /* 768px ~ 1440px */
      }
    }

    .story__lead {
      margin-top: 20px; /* c-media-wrap の gap考慮 */
      margin-bottom: -20px; /* c-media-wrap の gap考慮 */
      font-size: clamp(20px, 1.714px + 2.381vw, 36px); /* 768px ~ 1440px */
      font-weight: 700;
      line-height: calc(60 / 36);
      letter-spacing: 0.1em;
      text-align: center;
      color: #ed6c00;
    }


    /* philosophy
    -------------------------------------*/
    .philosophy {
      background-color: #fee8b8;
    }
    .philosophy__inner {
      padding-block: clamp(60px, -20px + 10.417vw, 130px); /* 768px ~ 1920px */
      background: url(../images/resident/philosophy-bg.jpg) no-repeat center
        center / cover;
      border-top-left-radius: 40px;
      border-top-right-radius: 40px;
    }
    .philosophy__content {
      width: min(95%, 1200px);
      margin-inline: auto;
      display: flex;
      justify-content: center;
      gap: clamp(20px, -64.571px + 11.012vw, 94px); /* 768px ~ 1440px */
    }
    .philosophy__ttl {
      width: auto;
      font-size: clamp(21px, 1.571px + 2.53vw, 38px); /* 768px ~ 1440px */
      font-weight: 700;
      line-height: calc(60 / 38);
      letter-spacing: 0.1em;
      color: #fff;
    }
    .philosophy__msg-area {
      width: clamp(420px, 214.286px + 26.786vw, 600px); /* 768px ~ 1440px */
      padding: clamp(30px, 7.143px + 2.976vw, 50px); /* 768px ~ 1440px */
      border-radius: 40px;
      background-color: #fff;
    }
    .philosophy__msg-wrap {
      display: flex;
      flex-direction: column;
      gap: clamp(16px, 0px + 2.083vw, 30px); /* 768px ~ 1440px */
      margin-bottom: 42px;
    }
    .philosophy__msg {
      font-size: clamp(13px, 9.571px + 0.446vw, 16px); /* 768px ~ 1440px */
      font-weight: 500;
      line-height: calc(30 / 16);
      letter-spacing: 0.1em;
    }
    .philosophy__msg-footer {
      text-align: right;
    }
    .philosophy__msg-footer-company {
      margin-bottom: 8px;
      font-size: clamp(14px, 9.429px + 0.595vw, 18px); /* 768px ~ 1440px */
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.1em;
    }
    .philosophy__msg-footer-name {
      font-size: clamp(23px, 19.571px + 0.446vw, 26px); /* 768px ~ 1440px */
      font-weight: 500;
      line-height: calc(42 / 26);
      letter-spacing: 0.1em;
    }
    .philosophy__msg-footer-name span {
      font-size: clamp(14px, 9.429px + 0.595vw, 18px); /* 768px ~ 1440px */
      font-weight: 500;
      line-height: calc(42 / 18);
      letter-spacing: 0.1em;
    }
    

    /* staff
    -------------------------------------*/
    .staff {
      background-color: #fffbf1;
    }

    .staff__inner {
      padding-top: 120px;
      padding-bottom: clamp(180px, 65.714px + 14.881vw, 280px); /* 768px ~ 1920px */
    }
    .staff__title-wrap {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 24px;
      margin-bottom: 80px;
    }
    .staff__title-en {
      font-size: clamp(60px, 37.143px + 2.976vw, 80px); /* 768px ~ 1440px */
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.04em;
      color: #ed6c00;
    }
    .staff__ttl {
      font-size: clamp(24px, 14.857px + 1.19vw, 32px);
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.1em;
    }
    .staff__content {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: clamp(16px, -11.429px + 3.571vw, 40px); /* 768px ~ 1440px */
      width: min(95%, 1160px);
      margin-inline: auto;
    }
    .staff__item {
      display: flex;
      flex-direction: column;
      min-width: 0;
    }
    .staff__item-image {
      width: 100%;
      margin-bottom: 20px;
      aspect-ratio: 360 / 450;
      overflow: hidden;
      border-radius: 10px;
    }
    .staff__item-image picture {
      display: block;
      width: 100%;
      height: 100%;
    }
    .staff__item-image img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .staff__empty {
      width: min(95%, 1160px);
      margin-inline: auto;
      text-align: center;
      font-size: clamp(14px, 9.429px + 0.595vw, 18px); /* 768px ~ 1440px */
      letter-spacing: 0.1em;
      line-height: 1.8;
    }
    .staff__item-meta {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 30px;
    }
    .staff__item-position {
      font-size: 16px;
      font-weight: 400;
      line-height: 1;
      letter-spacing: 0.1em;
      color: #ed6c00;
    }
    .staff__item-name {
      font-size: 24px;
      font-weight: 500;
      line-height: calc(34 / 24);
      letter-spacing: 0.1em;
    }
    .staff__item-comment {
      margin-bottom: 30px;
      font-size: clamp(13px, 9.571px + 0.446vw, 16px); /* 768px ~ 1440px */
      font-weight: 400;
      line-height: calc(30 / 16);
      letter-spacing: 0.1em;
    }
    .staff__item-info {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }
    .staff__item-info-item {
      padding-top: 4px;
      padding-bottom: clamp(18px, 12.286px + 0.744vw, 23px); /* 768px ~ 1440px */
      padding-inline: clamp(10px, 3.143px + 0.893vw, 16px); /* 768px ~ 1440px */
      background-color: #fff;
      border: 4px solid #e5e5e5;
      border-radius: 20px;
    }
    .staff__item-info-label {
      font-size: clamp(13px, 9.571px + 0.446vw, 16px); /* 768px ~ 1440px */
      font-weight: 700;
      line-height: calc(23 / 16);
      letter-spacing: 0.1em;
      color: #ed6c00;
    }
    .staff__item-info-value {
      padding-left: clamp(8px, -21.714px + 3.869vw, 34px); /* 768px ~ 1440px */
      font-size: clamp(14px, 9.429px + 0.595vw, 18px); /* 768px ~ 1440px */
      font-weight: 500;
      line-height: calc(32 / 18);
      letter-spacing: 0.1em;
      color: #000;
      overflow-wrap: anywhere;
      word-break: break-all;
    }

  } /* min-width: 768px の閉じタグ */



  /* ========================================
    @media screen and (max-width: 767px)
  ======================================== */
  @media screen and (max-width: 767px) {
    .has-ais-common-blob .ais-common-blob--01.sp {
      top: -6vw;
    }
    /* メディアブロック（共通）
      セクション固有は .story__media 等に付け、
      幅の差分は .story__media:nth-child(n) .c-media__text-area などで上書き
    -------------------------------------*/
    .c-media-wrap {
      width: 100%;
      display: flex;
      flex-direction: column;
      gap: 12.077vw;
    }
    .c-media {
      display: flex;
      flex-direction: column;
    }
    /* 位置決め */
    .c-media__text-area {
      display: contents;
    }
    .c-media__ttl {
      order: 1;
    }
    .c-media__image-area {
      order: 2;
    }
    .c-media__desc-wrap {
      order: 3;
    }

    .c-media__text-area {
      position: relative;
      z-index: 2;
      flex-shrink: 0;
      width: 100%;
    }
    .c-media__ttl {
      position: relative;
      z-index: 2;
      display: flex;
      flex-direction: column;
      gap: 1.932vw;
      width: max-content;
      margin-right: auto;
      margin-bottom: 7.246vw;
      font-size: 4.83vw;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.1em;
    }
    .c-media__ttl span {
      display: inline-block;
      width: fit-content;
      padding: 1.449vw;
      background-color: #fff;
    }
    .c-media__ttl .em {
      margin: 0;
      padding: 0;
      color: #ed6c00;
      background: none;
    }
    .c-media__desc-wrap {
      display: flex;
      flex-direction: column;
      gap: 7.246vw;
    }
    .c-media__desc {
      font-size: 3.864vw;
      font-weight: 400;
      line-height: calc(30 / 16);
      letter-spacing: 0.1em;
    }
    .c-media__desc span {
      font-weight: 700;
      color: #ed6c00;
    }
    .c-media__catch {
      margin-top: 0.724vw;
      margin-bottom: -2.173vw;
      font-size: 4.347vw;
      font-weight: 700;
      line-height: calc(30 / 18);
      letter-spacing: 0.1em;
    }
    .c-media__image-area {
      position: relative;
      z-index: 1;
      flex-shrink: 0;
      width: 100%;
      margin-top: -3.864vw;
      margin-bottom: 6.763vw;
    }
    .c-media__image img,
    .c-media__image-area img {
      display: block;
      width: 100%;
      height: auto;
    }


    /* fv
    -------------------------------------*/
    .fv__inner {
      margin-top: 4.347vw;
      position: relative;
      overflow: hidden;
    }
    .fv__image {
      display: block;
      width: 100%;
    }
    .fv__image img {
      display: block;
      width: 100%;
      height: auto;
    }
    .fv__catch {
      position: absolute;
      z-index: 2;
      top: 15.942vw;
      width: 100%;
      padding-inline: 1em;
      font-size: 4.83vw;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.1em;
      text-align: center;
      color: #fff;
    }


    /* greeting
      -------------------------------------*/
    .greeting {
      margin-top: 0;
    }
    .greeting__bg-wave {
      position: relative;
      z-index: 0;
      line-height: 0;
      margin-top: -9.178vw;
    }
    .greeting__bg-wave img {
      display: block;
      width: 100%;
      height: auto;
    }

    .greeting__inner {
      position: relative;
      z-index: 1;
      margin-top: -7.246vw;
      padding-inline: 8.695vw;
      padding-bottom: 12.077vw;
      background-color: #fee8b8;
    }

    /* 位置決め */
    .greeting {
      .c-media__ttl {
        order: 1;
      }
      .c-media__desc-wrap {
        order: 2;
      }
      .c-media__image-area {
        order: 3;
      }
    }

    .greeting .c-media-wrap {
      gap: 0;
    }
    .greeting .c-media__ttl {
      margin-top: -6.521vw;
    }
    .greeting .c-media__desc-wrap {
      margin-bottom: 7.246vw;
    }
    .greeting .c-media .c-media__image-area {
      margin-top: 0;
    }


    /* story
      -------------------------------------*/
    .story {
      background-color: #fee8b8;
    }
    .story__inner {
      padding-bottom: 16.183vw;
    }
    .story__head-image {
      display: block;
      width: 100%;
      margin-bottom: 7.729vw;
    }
    .story__head-image img {
      display: block;
      width: 100%;
      height: auto;
    }

    .story .c-media-wrap {
      padding-inline: 8.695vw;
      gap: 12.318vw;
    }

    .story__media {
      .c-media__ttl {
        margin-bottom: 0;
      }
    }

    .story__media:nth-of-type(4) {
      .c-media__image-area {
        margin-top: 0;
      }
    }

    .story__lead {
      margin-top: 0; /* c-media-wrap の gap考慮 */
      margin-bottom: -4.83vw; /* c-media-wrap の gap考慮 */
      font-size: 4.83vw;
      font-weight: 700;
      line-height: calc(34 / 20);
      letter-spacing: 0.1em;
      text-align: center;
      color: #ed6c00;
    }


    /* philosophy
    -------------------------------------*/
    .philosophy {
      background-color: #fee8b8;

      .philosophy__inner {
        padding-block: 14.492vw;
        background: url(../images/resident/philosophy-bg_sp.jpg) no-repeat center top / 100% auto #de8b45;
        border-top-left-radius: 9.661vw;
        border-top-right-radius: 9.661vw;
      }
      .philosophy__content {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 0;
        padding-inline: 4.106vw;
      }
      .philosophy__ttl {
        margin-bottom: 18.84vw;
        font-size: 4.83vw;
        font-weight: 700;
        line-height: calc(34 / 20);
        letter-spacing: 0.1em;
        color: #fff;
      }

      .philosophy__msg-area {
        width: 100%;
        padding: 9.661vw 7.246vw;
        border-radius: 4.83vw;
        background-color: #fff;
      }
      .philosophy__msg-wrap {
        display: flex;
        flex-direction: column;
        gap: 7.246vw;
        margin-bottom: 9.661vw;
      }
      .philosophy__msg {
        font-size: 3.864vw;
        font-weight: 500;
        line-height: calc(30 / 16);
        letter-spacing: 0.1em;
      }
      .philosophy__msg-footer {
        text-align: right;
      }
      .philosophy__msg-footer-company {
        margin-bottom: 1.932vw;
        font-size: 4.347vw;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0.1em;
      }
      .philosophy__msg-footer-name {
        font-size: 6.28vw;
        font-weight: 500;
        line-height: calc(42 / 26);
        letter-spacing: 0.1em;
      }
      .philosophy__msg-footer-name span {
        font-size: 4.347vw;
        font-weight: 500;
        line-height: calc(42 / 18);
        letter-spacing: 0.1em;
      }
    }


    /* staff
    -------------------------------------*/
    .staff {
      background-color: #fffbf1;

      .staff__inner {
        padding-block: 19.323vw;
        padding-bottom: 34.299vw;
        padding-inline: 8.937vw;
      }
      .staff__title-wrap {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 3.381vw;
        margin-bottom: 10.144vw;
      }
      .staff__title-en {
        font-size: 10.144vw;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0.04em;
        color: #ed6c00;
      }
      .staff__ttl {
        font-size: 5.314vw;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.1em;
      }
      .staff__content {
        display: grid;
        grid-template-columns: 1fr;
        gap: 12.452vw;
        width: 100%;
      }
      .staff__item {
        display: flex;
        flex-direction: column;
        min-width: 0;
      }
      .staff__item-image {
        width: 100%;
        margin-bottom: 7.246vw;
        aspect-ratio: 340 / 300;
        overflow: hidden;
        border-radius: 2.415vw;
      }
      .staff__item-image picture {
        display: block;
        width: 100%;
        height: 100%;
      }
      .staff__item-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 20%;
      }
      .staff__empty {
        width: 100%;
        text-align: center;
        font-size: 3.864vw;
        letter-spacing: 0.1em;
        line-height: 1.8;
      }
      .staff__item-meta {
        display: flex;
        flex-direction: column;
        gap: 1.932vw;
        margin-bottom: 4.83vw;
      }
      .staff__item-position {
        font-size: 3.864vw;
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.1em;
        color: #ed6c00;
      }
      .staff__item-name {
        font-size: 5.797vw;
        font-weight: 500;
        line-height: calc(34 / 24);
        letter-spacing: 0.1em;
      }
      .staff__item-comment {
        margin-bottom: 7.463vw;
        font-size: 3.864vw;
        font-weight: 400;
        line-height: calc(30 / 16);
        letter-spacing: 0.1em;
      }
      .staff__item-info {
        display: flex;
        flex-direction: column;
        gap: 4.83vw;
      }
      .staff__item-info-item {
        padding-top: 1.932vw;
        padding-bottom: 5.555vw;
        padding-inline: 3.864vw;
        background-color: #fff;
        border: 0.966vw solid #e5e5e5;
        border-radius: 4.83vw;
      }
      .staff__item-info-label {
        font-size: 3.381vw;
        font-weight: 700;
        line-height: calc(20 / 14);
        letter-spacing: 0.1em;
        color: #ed6c00;
      }
      .staff__item-info-value {
        font-size: 3.864vw;
        font-weight: 500;
        line-height: calc(32 / 16);
        letter-spacing: 0.1em;
        text-align: center;
        color: #000;
        overflow-wrap: anywhere;
        word-break: break-all;
      }
    }

  } /* max-width: 767px の閉じタグ */
} /* #ais_residentの閉じタグ */
