@charset "utf-8";

/* ==================================
共通
================================== */
html,
body {
 overflow-x: hidden;
}

img[src$=".svg"] {
 object-fit: unset !important;
}

/* 画面全体を覆う幕 */
#fade-curtain {
 position: fixed;
 inset: 0;
 z-index: 10000;
 background-color: #333;
 opacity: 1;
 transition: opacity 0.4s ease-in-out;
 pointer-events: none;
}

#fade-curtain.is-loaded {
 opacity: 0;
}

a:hover {
 transition: 0.5s;
 opacity: 0.7;
}

body {
 font-size: 16px;
}

img {
 max-width: 100%;
 height: auto;
}

body {
 font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

@media (max-width: 767px) {
 body {
  font-size: 14px;
 }
}

/* ==================================
ヘッダー
================================== */
header {
 z-index: 1000;
 position: relative;
}

.logo img:not([src$=".svg"]) {
 max-width: 500px;
 max-height: 50px;
 transition: all 0.6s ease;
}

.logo img {
 margin: 10px;
}

.position_center {
 text-align: center;
}

.position_right {
 text-align: right;
}

body:has(header.header_layout1.l-hold) main {
 margin-top: 70px;
}

.l-hold {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 70px;
 z-index: 1000;
 max-height: 100px;
 background-color: rgba(255, 255, 255, 0);
 transition: all 0.8s ease;
}

.l-hold.is-scrolled {
 height: 40px;
 background-color: rgba(255, 255, 255, 0.7);
 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.l-hold.is-scrolled .logo img {
 max-height: 30px;
 margin: 5px;
}

header.header_layout2:not(.l-hold) {
 position: absolute;
 width: 100%;
 margin-bottom: 0;
 background: transparent;
}

.logo a {
 display: inline-block;
}

.logo img[src$=".svg"] {
 width: auto;
 height: 50px;
 transition: all 0.6s ease;
}

@media (max-width: 767px) {
 body:has(header.header_layout1.l-hold) main {
  margin-top: 50px;
 }

 .l-hold {
  height: 50px;
 }

 .logo img[src$=".svg"] {
  height: 30px;
  transition: all 0.6s ease;
 }

 .logo img:not([src$=".svg"]) {
  max-width: 200px;
  max-height: 30px;
  transition: all 0.6s ease;
 }

 .l-hold.is-scrolled {
  height: 30px;
 }

 .l-hold.is-scrolled .logo img {
  max-height: 20px;
  margin: 5px;
 }
}

.navi-position-top-left {
 top: 5px;
 left: 10px;
}

.navi-position-top-right {
 top: 5px;
 right: 15px;
}

.navi-position-bottom-left {
 bottom: 5px;
 left: 10px;
}

.navi-position-bottom-right {
 bottom: 5px;
 right: 15px;
}

.sns-iconli li {
 background-color: var(--icon-bgcolor);
}

.sns-iconli li a {
 color: var(--icon-color);
}

.sns-iconli li:has(img) {
 background-color: unset;
}

.sns-iconwrap .sns-iconli li {
 margin: 10px 5px;
}

.sns-iconli li {
 width: 40px;
 aspect-ratio: 1/1;
}

.sns-iconli li a img {
 width: 40px;
}

.sns-iconli li a.mail_icon {
 display: block;
 padding: 8px;
}

.sns-iconli li a.mail_icon:before {
 font-family: "Font Awesome 5 Free";
 content: "\f0e0";
 font-weight: 900;
 -webkit-font-smoothing: antialiased;
 display: block;
 font-style: normal;
 font-variant: normal;
 text-rendering: auto;
}

.sns-iconli li a.tel_icon:before {
 font-family: "Font Awesome 5 Free";
 content: "\f095";
 font-weight: 900;
 -webkit-font-smoothing: antialiased;
 display: block;
 font-style: normal;
 font-variant: normal;
 text-rendering: auto;
}

.sns-iconli li a.mail_icon:before,
.sns-iconli li a.tel_icon:before {
 line-height: 2.5rem;
 font-size: 1.5rem;
 text-align: center;
}

.icon_bg_type2 .sns-iconli li,
.icon_bg_type2 .sns-iconli li a:not(:has(img)),
.icon_bg_type2 .sns-iconli li a img {
 border-radius: 50%;
}

@media (min-width: 911px) {

 .pc-none #menu-btn,
 .pc-none #menu-overlay,
 .pc-none #drawer-menu {
  display: none;
 }

 .icon_position_top .sns-iconli,
 .icon_position_bottom .sns-iconli {
  display: flex;
  align-items: center;
  justify-content: center;
 }

 .icon_position_top {
  position: fixed;
  top: 0;
  right: 60px;
 }

 .icon_position_bottom {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
 }

 .icon_position_left {
  position: fixed;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
 }

 .icon_position_right {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
 }
}

@media (max-width: 910px) {
 header:has(button.navi-position-top-right) .sns-iconwrap:has(ul.icon_line01) {
  position: fixed;
  top: 0;
  right: 60px;
 }

 header:has(button.navi-position-top-right) .sns-iconwrap:has(ul.icon_line02) {
  position: fixed;
  top: 60px;
  right: 10px;
 }

 header:has(button.navi-position-bottom-right) .sns-iconwrap:has(ul.icon_line01) {
  position: fixed;
  bottom: 0;
  right: 60px;
 }

 header:has(button.navi-position-bottom-right) .sns-iconwrap:has(ul.icon_line02) {
  position: fixed;
  bottom: 60px;
  right: 10px;
 }

 header:has(button.navi-position-top-left) .sns-iconwrap:has(ul.icon_line01) {
  position: fixed;
  top: 0;
  left: 60px;
 }

 header:has(button.navi-position-top-left) .sns-iconwrap:has(ul.icon_line02) {
  position: fixed;
  top: 60px;
  left: 10px;
 }

 header:has(button.navi-position-bottom-left) .sns-iconwrap:has(ul.icon_line01) {
  position: fixed;
  bottom: 0;
  left: 60px;
 }

 header:has(button.navi-position-bottom-left) .sns-iconwrap:has(ul.icon_line02) {
  position: fixed;
  bottom: 60px;
  left: 10px;
 }

 .sns-iconwrap .icon_line01 {
  display: flex;
  justify-content: center;
 }

 .sns-iconli li {
  width: 35px;
  aspect-ratio: 1/1;
 }

 .sns-iconli li a img {
  width: 35px;
 }

 .sns-iconli li a.mail_icon:before,
 .sns-iconli li a.tel_icon:before {
  line-height: 2.2rem;
  font-size: 1.2rem;
 }
}


/* ==================================
カラムレイアウト
================================== */
aside {
 align-content: center;
 display: flex;
 flex-wrap: wrap;
}

aside>div {
 width: 100%;
}

article>section:not(:last-child) {
 margin-bottom: 50px;
}

article>section>.h2-wrapper {
 margin-bottom: 30px;
 margin-top: 10px;
}


article>section>.block-child {
 margin-bottom: 15px;
}

article>section>.block-child>h3 {
 margin-bottom: 15px;
 margin-top: 5px;
}

article>section>.block-child>.content-child-button {
 margin: 15px 0;
}

.sns-iconwrap {
 z-index: 100;
}

@media (min-width: 911px) {
 main:not(.column_type1) {
  display: flex;
  justify-content: space-between;
 }

 .l-aside-left {
  position: fixed;
  top: 0;
  left: 0;
  height: 100dvh;
 }

 .l-aside-right {
  position: fixed;
  top: 0;
  right: 0;
  height: 100dvh;
 }

 body:has(.header_layout2) main>article>div:first-child {
  padding-top: 70px;
 }

 .column_type1>article {
  margin: 0 auto;
  max-width: 100%;
 }

 main>article {
  min-height: 100vh;
 }
}

@media (max-width: 910px) {
 .l-aside-left {
  height: 100vh;
 }

 .l-aside-left:has(.left_v02),
 .l-aside-right:has(.right_v02) {
  display: none;
 }

 body:not(.page-home) aside:has(.left_v04),
 body:not(.page-home) aside:has(.right_v04) {
  display: none;
 }
}

article>section:last-child {
 padding-bottom: 50px;
}

@media (min-width: 911px) {
 article>section:first-child {
  margin-top: 20px;
 }

 body:has(.header_layout2).blog-single article>section:first-child,
 body:has(.header_layout2).custom-single article>section:first-child {
  margin-top: 70px;
 }
}

@media (min-width: 768px) and (max-width: 910px) {
 article>section:first-child {
  margin-top: 95px;
 }

 body:has(.header_layout1) article>section:first-child {
  margin-top: 35px;
 }
}

@media (max-width: 767px) {
 article>section:first-child {
  margin-top: 85px;
 }

 body:has(.header_layout1) article>section:first-child {
  margin-top: 35px;
 }
}

@media (min-width: 911px) {

 .column_type1 .l-aside-left,
 .column_type1 .l-aside-right {
  width: 100%;
  position: unset;
 }

 .column_type1 .l-aside-left:has(.no-setting),
 .column_type1 .l-aside-right:has(.no-setting) {
  width: 0;
  height: 0;
 }
}

@media only screen and (max-width: 910px) {

 .column_type1 .l-aside-left:has(.no-setting),
 .column_type1 .l-aside-right:has(.no-setting) {
  width: 0;
  height: 0;
  min-height: 0;
  max-height: 0;
 }
}

/* ==================================
フッター
================================== */
footer {
 color: var(--f-color);
}

/* 動くテキスト */
.move-text-block {
 background-color: var(--block-bg);
}

.move-text-block:has(.text_type07.is-active)::after {
 background-color: var(--first-row-color);
}

.move-text-item {
 color: var(--text-color);
 font-size: clamp(14px, 7cqw, var(--font-size));
 --glow: var(--text-glow);
 text-shadow: 2px 2px 10px var(--glow), -2px 2px 10px var(--glow),
  2px -2px 10px var(--glow), -2px -2px 10px var(--glow);
}

/* 帯状ギャラリー */
.gallery-outer-container .gallery_list {
 animation: var(--gallery-dir) var(--gallery-speed, 10000ms) linear infinite;
}

@media screen and (min-width: 768px) and (hover: hover) {
 .gallery-outer-container[data-hover-stop="1"] .gallery_list_wrapper:hover .gallery_list {
  animation-play-state: paused;
 }
}

.gallery-outer-container .gallery_list>div,
.gallery-outer-container .gallery_list>div>img {
 width: var(--g-width, auto);
 height: var(--g-height, auto);
 max-width: var(--g-max-w, none);
 max-height: var(--g-max-h, none);
 object-fit: cover;
}

/* button */
.content-child-button .button {
 display: block;
 text-align: center;
 padding: 15px;
 border: solid 1px var(--link-color);
 background-color: var(--link-hcolor);
}

.content-child-button .button:hover {
 color: var(--link-hcolor);
 border: solid 1px var(--link-color);
 background-color: var(--link-color);
 opacity: 1.0;
}

/* ==================================
投稿一覧　レイアウト
================================== */
.custom-list-display:not(.contents_display_type3),
article:not(.blog_display_type3) .article-wrapper-inner {
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
}

.custom-list-display a:not(.button):after,
.pagination a:after {
 content: unset !important;
}

.custom-list-display .custom-list-image img {
 aspect-ratio: 16 / 9;
 object-fit: cover;
}

.custom-list-display .custom-list-child,
.article-wrapper-inner .blog-article {
 margin-bottom: 20px;
}

.custom-list-content h3 {
 border-bottom: dotted 1px color-mix(in srgb, currentColor 30%, transparent);
 margin: 10px 0 15px;
}

.article-wrapper-inner .blog-article .blog-content-wrapper h3 {
 border-bottom: dotted 1px color-mix(in srgb, currentColor 30%, transparent);
 margin: 10px 0 5px;
}

.custom-list-content .content-child-button {
 margin: 20px 0 10px;
}

.custom-list-content .content-child-button a {
 width: 70%;
 margin: auto;
 padding: 10px;
}

@media screen and (min-width: 768px) {

 .custom-list-content h3,
 .blog-content-wrapper h3 {
  font-size: 1.4rem;
  font-weight: bold;
 }
}

@media screen and (max-width: 767px) {

 .custom-list-content h3,
 .blog-content-wrapper h3 {
  font-size: 1rem;
  font-weight: bold;
 }
}

/* 横並び（2列　スマホも2列） */
.contents_display_type1 .custom-list-child,
.blog_display_type1 .article-wrapper-inner .blog-article {
 width: calc(50% - 10px);
}

/* 横並び（3列　コンテンツ幅600px以下は2列） */
.contents_display_type2 .custom-list-child,
.blog_display_type2 .article-wrapper-inner .blog-article {
 width: calc(33.333% - 5px);
}

.custom-list-display.contents_display_type::after,
.blog_display_type2 .article-wrapper-inner::after {
 content: "";
 display: block;
 width: calc(33.333% - 5px);
}

.contents_display_type2,
.blog_display_type2 .article-wrapper-inner {
 container-type: inline-size;
}

@container (width < 601px) {

 .contents_display_type2 .custom-list-child,
 .blog_display_type2 .article-wrapper-inner .blog-article {
  width: calc(50% - 10px);
 }

 .custom-list-display.contents_display_type::after,
 .blog_display_type2 .article-wrapper-inner::after {
  content: "";
  display: block;
  width: calc(50% - 10px);
 }
}

/* 縦並び（1列） */
.contents_display_type3 .custom-list-child,
.blog_display_type3 .article-wrapper-inner .blog-article {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
}

.contents_display_type3 .custom-list-child .custom-list-image,
.contents_display_type3 .custom-list-child .custom-list-content,
.blog_display_type3 .article-wrapper-inner .blog-article .blog-image,
.blog_display_type3 .article-wrapper-inner .blog-article .blog-content-wrapper {
 width: calc(50% - 10px);
}

.article-wrapper-inner .blog-article .blog-image img {
 aspect-ratio: 16 / 9;
 width: 100%;
 object-fit: cover;
}

.article-wrapper-inner .blog-article .blog-image img[src$=".svg"] {
 object-fit: unset;
}

/* ブログ記事一覧 */
.section-wrapper {
 padding: 0 10px;
}

.blog-content-wrapper .article-info {
 display: flex;
 justify-content: space-between;
 padding: 0 5px 5px;
}

.blog-content-wrapper .article-info li:first-child {
 padding: 5px 0;
}

.continu-btn {
 text-align: right;
 font-size: 12px;
 font-weight: bold;
}

.blog-content-wrapper .article-info li:last-child a,
.continu-btn a {
 display: inline-block;
 padding: 5px;
}

.blog-content-wrapper .article-info li:last-child a:hover,
.continu-btn a:hover {
 background-color:
  color-mix(in srgb, var(--link-color) 70%, transparent);
 color: var(--link-hcolor);
}