/*
Theme Name: UNDERLINE
Theme URI: https://underline-saga.jp/
Description: Twenty Twenty-Five の子テーマ（underline-saga.jp 用）
Author: SoraStyle
Template: twentytwentyfive
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 1.0.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: underline
*/

/* カスタムCSSはこのファイル、または theme.json で追加してください。 */

/* 共通 */
html{
    scroll-behavior: smooth;
}

@media screen and (max-width: 781px) {
    .entry-content .pc{
        display: none;
    }
}
@media screen and (min-width: 782px) {
    .entry-content .sp{
        display: none;
    }
}

/* loading */
body.is-loading{
    overflow: hidden;
}
.loading-wrap{
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2147483000;
    margin: 0 !important;
    max-width: none !important;
    max-height: none !important;
    transition: opacity 0.8s ease, visibility 0.8s ease;
}
.loading-wrap.loaded{
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.loading-inner{
    width: 100%;
    height: 100%;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.loading-inner svg{
    width: 758px;
    max-width: 90vw;
    height: auto;
}

/* 初期状態：ロゴ要素は非表示 */
.loading-wrap .loading-part,
.loading-wrap .loading-sub,
.loading-wrap .loading-catch{
    opacity: 0;
    transition: opacity 0.8s ease;
}
.loading-wrap .loading-letter{
    opacity: 0;
    transform: translate3d(0, 10px, 0);
    transition: opacity 0.45s ease, transform 0.45s ease;
}
.loading-wrap .loading-part--line,
.loading-wrap .loading-line{
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s ease;
}

/* 表示 */
.loading-wrap .loading-part.is-show,
.loading-wrap .loading-sub.is-show,
.loading-wrap .loading-catch.is-show{
    opacity: 1;
}
.loading-wrap .loading-letter.is-show{
    opacity: 1;
    transform: translate3d(0, 0, 0);
}
.loading-wrap .loading-part--line.is-show,
.loading-wrap .loading-line.is-show{
    opacity: 1;
    transform: scaleX(1);
}

@media screen and (max-width: 781px) {
    .loading-inner svg{
        width: 100%;
    }
}

.wp-site-blocks{
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
.wp-site-blocks > main {
    flex: 1;
}
.wp-site-blocks > footer{
    margin: 0;
}


@media screen and (max-width: 781px) {
    .header-logo{
        flex-basis: 160px;
    }
}

/* header */
@media screen and (max-width: 781px) {
    .wp-block-navigation .wp-block-navigation-item{
        font-size: 1.5rem;
        text-align: center;
    }
}

/* フッターナビゲーション */
.footer_nav a {
    text-decoration: none;
    transition: opacity 0.3s ease;
}
.footer_nav a:hover {
    opacity: 0.8;
}
@media screen and (max-width: 781px) {
    .footer_nav {
      flex-direction: column;
    }
  
    .footer_nav>* {
      border: none;
      margin: 0 !important;
      padding: 0.25rem 0 !important;
    }
}

/* フォント */
body{
    font-family: "Zen Kaku Gothic New", sans-serif;
}
body *{
    font-family: inherit;
}
.f-en{
    font-family: Roboto, sans-serif;
}

a{
    outline: none;
}

/* section-title */
.section-title-wrap{
}
.section-title-main{
    font-size: 3.75rem;
    font-weight: 900;
}
.section-title-sub{
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.3em;
}
.section-title-sub code{
    display: inline-block;
    position: relative;
    z-index: 1;
    padding: 0 0 0.5rem;
}
.section-title-sub code::after{
    content: "";
    display: block;
    width: 100%;
    height: 12px;
    background: url(./assets/images/common/section-title-sub-underline.png) no-repeat left top;
    background-size: 100% 100%;
    position: absolute;
    bottom: 0;
    left: 0;
}

@media screen and (max-width: 781px) {
    .section-title-main{
        font-size: 1.3rem;
    }
    .section-title-sub{
        font-size: 1rem;
    }
}

/* スクロールアニメーション */
.entry-content .section-title-sub code span{
    opacity: 0;
    visibility: hidden;
    display: inline-block;
    transition: all 0.6s ease;
}
.entry-content .section-title-wrap.scrollin .section-title-sub code span.active{
    opacity: 1;
    visibility: visible;
    transform: scale(1,1);
}
.entry-content .section-title-sub code::after{
    opacity: 0;
    visibility: hidden;
    display: inline-block;
    transform: scale(0,1);
    transform-origin: left top;
    transition: all 0.6s ease;
}
.entry-content .section-title-wrap.scrollin .section-title-sub code.completed::after{
    opacity: 1;
    visibility: visible;
    transform: scale(1,1);
}
.entry-content .section-title-main span{
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 30px, 0);
    display: inline-block;
    transition: all 0.6s ease;
}
.entry-content .section-title-wrap.scrollin .section-title-main span.active{
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
}

/* メイン entry-content 内の各セクション直下（見出しラッパー以外）：ビューポート入場でフェードイン */
main > .entry-content > section > *:not(.section-title-wrap){
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition: opacity 0.65s ease, transform 0.65s ease;
	will-change: opacity, transform;
}
main > .entry-content > section > *:not(.section-title-wrap).is-in-view{
	opacity: 1;
	transform: translate3d(0, 0, 0);
	will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
	main > .entry-content > section > *:not(.section-title-wrap){
		opacity: 1;
		transform: none;
		transition: none;
		will-change: auto;
	}
}


/* news */
.front-news-list{
    margin: 0;
    padding: 0;
    list-style: none;
}
.front-news-list li{
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #cccccc;
    padding: 1rem 1rem;
}
.front-news-list li a{
    text-decoration: none;
    flex: 1;
}
.front-news-list li a:hover{
    text-decoration: underline;
}
.front-news-list li time{
    order: -1;
    width: 160px;
}

@media screen and (max-width: 781px) {
    .front-news-list li {
        flex-direction: column;
        align-items: flex-start;
    }
    .front-news-list li time{
        width: 100%;
    }
}


/* front about */
.about-list{
    gap: 80px !important;
}
.about-list > * {
    position: relative;
}
.about-list > *:not(:last-child)::after{
    content: "";
    display: block;
    width: 1px;
    height: 100%;
    background: #000000;
    position: absolute;
    top: 0;
    right: -40px;
}
.about-list .wp-block-heading{
    font-size: 1.75rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 1rem;
}
.about-list .wp-block-image{
    text-align: center;
}
.about-list p{

}

@media screen and (max-width: 781px) {
    .about-list{
        gap: 80px !important;
    }
    .about-list > *:not(:last-child)::after{
        top: auto;
        right: auto;
        bottom: -40px;
        left: 0;
        width: 100%;
        height: 1px;
    }
    .about-list .wp-block-heading{
        font-size: 1.35rem;
    }
}

@media screen and (max-width: 781px) {
    .entry-content .sp-none{
        display: none;
    }
}


.btn-block{
    background: #000000;
}
.btn-block a{
    position: relative;
    z-index: 1;
    font-weight: 600;
    line-height: 1.4;
    color: #ffffff;
    padding: 0.75rem 1rem !important;
    text-decoration: none;
    border-radius: 0;
    transition: all 0.3s ease;
}
.btn-block a:hover{
    color: #000000;
    opacity: 1;
}
.btn-block a::before{
    content: "";
    display: block;
    width: 25px;
    height: 25px;
    background: url(./assets/images/common/btn-arrow-right.png) no-repeat center center;
    background-size: contain;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 10px;
    margin: auto;
    z-index: 1;
}
.btn-block a::after {
    content: "";
    display: block;
    width: 0;
    height: 100%;
    background: #edff00;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: all 0.3s ease;
}
.btn-block a:hover::after {
    width: 100%;
}

/* program */
@media screen and (max-width: 781px) {
    .program-block h3.wp-block-heading{
        font-size: 1.5rem !important;
    }
    .program-block h4.wp-block-heading{
        font-size: 1.35rem !important;
    }
}


/* profile */
.profile-box{
    cursor: pointer;
}
.profile-box .wp-block-image{
    overflow: hidden;
}
.profile-box .wp-block-image img{
    transition: all 0.3s ease;
}
.profile-box:hover .wp-block-image img{
    transform: scale(1.1);
}
.entry-content .profile-content{
    display: none;
}
.fancybox-container .profile-content{
    width: 760px;
}
.fancybox-container .profile-content .wp-block-image{
    text-align: center;
}


/* practice */
.practice-block h3.wp-block-heading{
    font-size: 2rem ;
}
@media screen and (max-width: 781px) {
    .practice-block h3.wp-block-heading{
        font-size: 1.45rem;
    }
}