/**
 * Layout
 */
.l-outer {
  min-block-size: calc(100svh - var(--wp-admin--admin-bar--height, 0px));
}

.l-header {
  position: relative;
  z-index: 1000000;
  width: 100%;
  background: #fff;
}

.l-container {
  position: relative;
  display: grid;
  padding-block: 0 150px;
}

.l-container:has(.p-single--voice){
  overflow: clip;
}

.l-container:has(.p-single-bottom__service) {
  padding-block: 0 0;
}

.l-container:has(.p-cb.last-service) {
  padding-block: 0 0;
}

.l-container.is_front:has(.p-cb-no_item) {
  padding-block: 0 0;
}


.l-container:has(.p-single--voice) {
  padding-block: 0 0;
}

.l-container:has(.p-cb) {
  padding-block: 0 150px;
}

.l-contents:has(.p-author-list) {
  inline-size: min(calc(100% - 40px), var(--tcd-base-container-size));
  margin-inline: auto;
}

.l-contents:has(.p-single--service) {
  inline-size: 100%;
  margin-inline: auto;
}

@media (max-width:991px) {
  .l-container:has(.p-cb) {
    padding-block: 0 40px;
  }
}

@media (max-width: 767px) {

  .l-contents:has(.p-author-list) {
    inline-size: min(calc(100% - 40px), 100%);
    margin-inline: auto;
  }

}

@media (max-width: 767px) {
.l-contents:has(.p-page) {
  padding-top: 20px;
}
}


.l-contents {
  display: flex;
  justify-content: center;
  gap: 40px;
  inline-size: min(calc(100% - 40px), var(--tcd-base-container-size));
  margin-inline: auto;
}

.l-contents:has(.p-news-cards-item) {
  inline-size: min(calc(100% - 40px), 900px);
  margin-inline: auto;
}

.l-contents:has(.p-news-cards-item-no_img) {
  inline-size: min(calc(100% - 40px), 900px);
  margin-inline: auto;
}

@media (max-width: 767px) {
  .l-contents:has(.p-author-inner){
    inline-size: 100%;
  }
}


.l-inner {
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), var(--tcd-base-container-size)));
  margin-inline: auto;
}

/* AIDERヘッダー用のinner */
.l-header-inner {
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 80px), 100%));
  margin-inline: auto;
}

.l-header-inner:has(.p-header-cta__button) {
  inline-size:calc(100% - 40px);
  margin-left: 40px;
}
/* AIDERヘッダー用のinnerここまで */

@media (max-width: 991px) {
  .l-header-inner:has(.p-header-cta__button) {
    inline-size:calc(100% - 20px);
    margin-left: 20px;
  }
}

/* AIDERフッター用のinner */
.l-footer_inner {
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 1100px));
  margin-inline: auto;
}
/* AIDERフッター用のinnerここまで */


.l-main {
  container: main / inline-size;
  flex: 1;
  display: grid;
  align-content: start;
  row-gap: 70px;
}

.l-main:has(.p-single--service) {
  row-gap: 100px;
}

.l-main:has(.p-single--voice):not(:has(.p-single-voice-bottom)) {
  margin-bottom: 100px;
}

.l-main:has(.my-tab-wrapper) {
  row-gap: 100px;
}

.l-main:has(.p-author-inner) {
  row-gap: 100px;
}

.l-main:has(.p-single--voice) {
  row-gap: 100px;
}

.l-sidebar {
  container: sidebar / inline-size;
  flex: 0 0 300px;
  display: grid;
}

.l-inner__footer .p-footer-copyright {
  border-top: none;
}

@media (max-width: 991px) {

  .l-main:has(.p-single--voice) {
    row-gap: 70px;
  } 

  .l-main:has(.p-author-inner){
    gap: 40px;
  }

  .l-inner {
    inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 100%));
  }

  .l-inner__footer {
    inline-size: var(--tcd-layout-inner-size, min(100%, 100%));
  }

  .p-footer-copyright .c-sns-icons {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
  }

  .p-footer-copyright .p-footer_copy_right_inner {
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .l-container {
    padding-block: 0 40px;
  }

  .l-contents {
    inline-size: min(calc(100% - 40px), 100%);
  }

  .l-header {
    position: sticky;
    top: 0px;
    z-index: 100;
    background: #fff;
  }

  .l-container.serach_404_no_bg_img {
    border-top: 1px solid #ddd;
  }

  /* ヘッダー追従時にシャドウ付与 */
body.is-scroll .l-header {
  box-shadow: var(--tcd-header-bar-box-shadow, 0 5px 20px 0 rgba(0, 0, 0, 0.1));
}

  .l-contents {
    flex-direction: column;
  }

  .l-sidebar {
    flex: 1;
    order: 2;
  }

  .l-main {
    row-gap: 50px;
  }

}

@media (max-width: 767px) {
  .l-main {
    row-gap: 40px;
  }

  .l-main:has(.p-single--voice) {
    row-gap: 40px;
  } 

  .l-main:has(.p-single--service) {
    row-gap: 40px;
  }

}