/* ホバーアニメーション */
body.page-id-5252 .wrapper .cplus-cta:hover ,
header.cplus-header nav ul.pc-cplus-nav li a:hover ,
header.cplus-header nav ul.pc-cplus-nav li .cplus-cta:hover ,
footer.cplus-footer .cplus-footer-flex .cplus-footer-right nav ul.cplus-footer-nav li .cplus-sns:hover {
    transform: scale(1.05);
}
body.page-id-5252 .wrapper .cplus-cta:hover ,
footer.cplus-footer .cplus-footer-flex .cplus-footer-right nav ul.cplus-footer-nav li .cplus-footer-nav li a:hover {
    opacity: 0.7;
}
body.page-id-5252 .wrapper .cplus-cta ,
header.cplus-header nav ul.pc-cplus-nav li a ,
header.cplus-header nav ul.pc-cplus-nav li .cplus-cta ,
.mobile-menu ul li a:hover ,
footer.cplus-footer .cplus-footer-flex .cplus-footer-right nav ul.cplus-footer-nav li a ,
footer.cplus-footer .cplus-footer-flex .cplus-footer-right nav ul.cplus-footer-nav li .cplus-sns {
    transition: all 300ms ease-in-out;
}
header.cplus-header nav ul.pc-cplus-nav li .cplus-cta:hover ,
footer.cplus-footer .cplus-footer-flex .cplus-footer-right nav ul.cplus-footer-nav li .cplus-sns:hover {
    background: rgba(179, 84, 61, 1);
}
header.cplus-header nav ul.pc-cplus-nav li a:hover ,
.mobile-menu ul li a:hover ,
footer.cplus-footer .cplus-footer-flex .cplus-footer-right nav ul.cplus-footer-nav li a:hover {
    color: #B3543D;
}
header.cplus-header nav ul.pc-cplus-nav li .cplus-cta:hover  {
    color: #fff;
}



/* メインビジュアルのアニメーション */
.mv-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transform: scale(1.0);
    will-change: transform, opacity;
    z-index: 0;
}
.mv-slide.active {
    z-index: 2;
    animation: slideIn var(--slide-duration, 6000ms) ease-out forwards; /* 表示中：フェードイン＋ズームアウト、手前に */
}
.mv-slide.leaving {
    z-index: 1;
    animation: slideOut var(--fade-time, 1500ms) ease-in-out forwards; /* 退場中：フェードアウト、activeより奥に */
}
@keyframes slideIn {
    0%   { opacity: 0; transform: scale(1.15); }
    20%  { opacity: 1; transform: scale(1.12); }
    100% { opacity: 1; transform: scale(1.0);  }
}
@keyframes slideOut {
    0%   { opacity: 1; }
    100% { opacity: 0; }
}
/* メインビジュアルのアニメーションはここまで */
/* 画像パララックスのアニメーション */
/* 画像パララックスのアニメーションはここまで */
/* コンセプト部分のスクロール制御 */
/* #cplus-concept {
    position: relative;
    background-image:
        linear-gradient(-45deg ,rgba(244, 239, 234, 0.15) 0%, rgba(244, 239, 234, 1) 50%,rgba(244, 239, 234, 0.15) 100%),
        url('../img/renga_white.jpg');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    height: 300vh;
}
#cplus-concept::before {
    content: '';
    z-index: 0;
    position: absolute;
    left: 0;
    top: -160px;
    width: 100%;
    height: 320px;
    background: linear-gradient( rgba(244, 239, 234, 0) 0%, rgba(244, 239, 234, 0.9) 50%, rgba(244, 239, 234, 0) 100%);
    pointer-events: none;
}
#cplus-concept::after {
    content: '';
    z-index: 0;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 160px;
    background: linear-gradient( rgba(244, 239, 234, 0), rgba(244, 239, 234, 1));
    pointer-events: none;
}
#cplus-concept .concept-sticky {
  position: sticky;
  top: 0;
  width: 80vw;
  max-width: 1360px;
  height: 100vh;
  margin: 0 auto;
}
#cplus-concept .concept-sticky .concept-label-wrap {
    z-index: 5; 
    position: absolute;
    top: 160px;
    left: 0;
}
#cplus-concept .concept-sticky .concept-slide {
    opacity: 0;
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: transparent;
    transition: all 300ms ease-in-out;
    pointer-events: none;
}
#cplus-concept .concept-sticky .concept-slide.active {
    opacity: 1;
    pointer-events: auto;
}
#cplus-concept .concept-sticky .concept-slide .concept-body {
    display: flex;
    align-items: center;
    gap: 120px;
    width: 100%;
}
#cplus-concept .concept-sticky #concept-2 .concept-body {
    display: flex;
    flex-direction: column;
    gap: 80px;
}
#cplus-concept .concept-sticky .concept-slide .concept-body .concept-symbol {
    opacity: 0;
    font-family: "Reem Kufi Fun", sans-serif;
    font-size: clamp(240px, 27.8vw, 400px);
    font-weight: 600;
    line-height: 1;
    color: #2b2b2b;
    flex-shrink: 0;
    user-select: none;
    transition: all 300ms ease-in-out;
    transform: translateX(-16px);
}
#cplus-concept .concept-sticky #concept-2 .concept-body .concept-symbol {
    font-size: clamp(130px, 27.8vw, 400px);
    margin: 0 auto;
}
#cplus-concept .concept-sticky .concept-slide.active .concept-body .concept-symbol {
    opacity: 0.15;
    transform: translateX(0);
}
#cplus-concept .concept-sticky .concept-slide .concept-body .concept-text-block {
    opacity: 0;
    flex-shrink: 1;
    transition: all 300ms ease-in-out;
    transform: translateY(12px);
}
#cplus-concept .concept-sticky .concept-slide.active .concept-body .concept-text-block {
  opacity: 1;
  transform: translateY(0);
}
@media (max-width: 1024px) {
    #cplus-concept .concept-sticky .concept-slide .concept-body {
        gap: 80px;
    }
}
@media (max-width: 768px) {
    #cplus-concept .concept-sticky {
        position: sticky;
        width: 90vw;
    }
    #cplus-concept .concept-sticky .concept-slide .concept-body {
        flex-direction: column;
        align-items: flex-start;
        gap: 40px;
    }
    #cplus-concept .concept-sticky .concept-slide .concept-body .concept-symbol {
        margin: 0 auto;
    }
    #cplus-concept .concept-sticky .concept-slide .concept-body .concept-text-block {
        max-width: 100%;
    }

} */
/* コンセプト部分のスクロール制御はここまで */
/* レイヤー部分のスクロール制御 */
.layer-wrapper {
    position: relative;
    height: 300vh;
    background: #F4EFEA;
}
.layer-wrapper .layer-sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
    display: flex;
    align-items: stretch;
}
/* ── 背景写真 ── */
.layer-wrapper .layer-sticky .bg-photo {
    z-index: 0;
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    width: 90vw;
    height: 90vh;
    margin: auto;
    opacity: 0;
    transition: opacity 800ms ease-in-out;
}
.layer-wrapper .layer-sticky .bg-photo.active { 
    opacity: 1;
}
.layer-wrapper .layer-sticky .bg-photo-0 {
    background-image:
    linear-gradient(rgba(43,43,43,0.75), rgba(43,43,43,0.75)),
    url("../img/lyaer01.jpg");
}
.layer-wrapper .layer-sticky .bg-photo-1 {
    background-image:
    linear-gradient(rgba(43,43,43,0.75), rgba(43,43,43,0.75)),
    url("../img/lyaer02.jpg");
}
.layer-wrapper .layer-sticky .bg-photo-2 {
    background-image:
    linear-gradient(rgba(43,43,43,0.75), rgba(43,43,43,0.75)),
    url("../img/lyaer03.jpg");
}
/* ── メインレイアウト ── */
.layer-wrapper .layer-sticky .layer-inner {
    z-index: 3;
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 80px;
    width: 80vw;
    max-width: 1360px;
    margin: 0 auto;
}
/* ── 左カラム ── */
.layer-wrapper .layer-sticky .layer-inner .left-col {
    position: relative;
    margin: -160px 0 0 0;
}
.layer-wrapper .layer-sticky .layer-inner .left-col h2.section-title {
    color: #A68B5B;
}
.layer-wrapper .layer-sticky .layer-inner .left-col h2.section-title span {
    color: #fff;
}
.layer-wrapper .layer-sticky .layer-inner .left-col .panel {
    opacity: 0;
    position: absolute;
    top: 120px;
    left: 0;
    width: 100%;
    transform: translateY(20px);
    transition: all 300ms ease-in-out;
    pointer-events: none;
}
.layer-wrapper .layer-sticky .layer-inner .left-col .panel.active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.layer-wrapper .layer-sticky .layer-inner .left-col .panel-heading h3 {
    color: #fff;
    font-size: clamp(24px, 2.78vw, 40px);
    margin: 0 0 40px 0;
}
.layer-wrapper .layer-sticky .layer-inner .left-col .panel-heading h3 span {
    color: #A68B5B;
}
.layer-wrapper .layer-sticky .layer-inner .left-col .panel-body {
    color: #fff;
}
.layer-wrapper .layer-sticky .layer-inner .left-col .panel-body p span {
    font-size: clamp(16px, 1.39vw, 20px);
}
.layer-wrapper .layer-sticky .layer-inner .left-col .panel-body p span em {
    color: #A68B5B;
    font-style: normal;
}
/* ── 右カラム ── */
.layer-wrapper .layer-sticky .layer-inner .right-col {
    display: flex;
    align-items: center;
    justify-content: center;
}
.layer-wrapper .layer-sticky .layer-inner .right-col .wheel-wrap {
  position: relative;
  width: 25vw;
  min-width: 240px;
  max-width: 350px;
  aspect-ratio: 1;
}
/*
  リング: 背景に border-radius:50% の円 + conic-gradient で3分割の弧を表現
  回転は JS が style.transform = 'rotate(Xdeg)' を直接書き換える
*/
.layer-wrapper .layer-sticky .layer-inner .right-col .wheel-wrap .wheel-ring {
  position: absolute;
  inset: 0;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  border: 1px solid #fff;
}
.layer-wrapper .layer-sticky .layer-inner .right-col .wheel-wrap .wheel-node {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    /* top/left は JS が計算して設定 */
    transform: translate(-50%, -50%);
    z-index: 2;
    width: 28%;
    min-width: 60px;
    max-width: 120px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    font-weight: bold;
    font-size: clamp(11px, 1.25vw, 18px); 
    line-height: 1.4;
    background: #fff;
    color: #2b2b2b;
}
.layer-wrapper .layer-sticky .layer-inner .right-col .wheel-wrap .wheel-node.active {
    width: 44.4%;
    min-width: 80px;
    max-width: 200px;
    background: linear-gradient(120deg, rgba( 166, 139, 91, 1) 0%, rgba( 140, 112, 66, 1) 100%);
    color: #fff;
    font-size: clamp(14px, 1.6vw, 24px);
}
.layer-wrapper .layer-sticky .layer-inner .right-col .wheel-wrap .wheel-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  width: 28%;
  min-width: 60px;
  max-width: 120px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  font-family: "Reem Kufi Fun", sans-serif;
  font-weight: bold;
  font-family: "Reem Kufi Fun", sans-serif;
  font-size: clamp(11px, 1.25vw, 18px); 
  line-height: 1.4;
  background: #2b2b2b;
  color: #fff;
  border: 1px solid rgba(255,255,255,1);
}
/* まとめスライド */
.layer-wrapper .layer-sticky .summary-panel {
    z-index: 4;
    opacity: 0;
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: baseline;
    gap: 80px;
    width: 80vw;
    max-width: 1360px;
    margin: 0 auto;
    color: #2b2b2b;
    transition: all 300ms ease-in-out;
    pointer-events: none;
}

.layer-wrapper .layer-sticky .summary-panel.active {
  opacity: 1;
  pointer-events: auto;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram {
  position: relative;
  width: 100%;
  height: 200px;
  flex-shrink: 0;
}
/* ── 横線 ── */
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-line {
  position: absolute;
  top: 50%;
  height: 1px;
  z-index: 0;
  overflow: hidden;
}
.summary-line-inner {
  position: absolute;
  inset: 0;
  background: #2b2b2b;
  transform: scaleX(0);
  transition: transform 0s;
}
/* ── 円のラッパー ── */
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-node {
    z-index: 1;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 14%;
    min-width: 70px;
    max-width: 120px; 
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-node:nth-of-type(5) {
    width: 20%;
    min-width: 100px;
    max-width: 200px;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .sn-soil {
  left: 0;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .sn-activity {
  left: 22%;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .sn-coceration {
  left: 47%;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .sn-results {
  right: 0;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-node .summary-circle {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-node .summary-circle-center {
    background: #A68B5B;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-node .summary-circle .summary-circle-text {
    font-size: clamp(11px, 1.25vw, 18px);
    font-weight: 600;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-node .summary-circle-center .summary-circle-text {
    font-family: "Reem Kufi Fun", sans-serif;
    font-size: clamp(14px, 1.6vw, 24px);
    line-height: 1.4;
    color: #fff;
}
/*
  左線: Soil端(left:0%) → Co-ceration中心(left:58%)
  Soil側（left端）を起点に右（Co-ceration）へ向かって伸びる
*/
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-line-from-left {
  left: 0%;
  width: 58%;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-line-from-left .summary-line-inner {
  transform-origin: left center;
}
/*
  右線: Results端(right:0%) → Co-ceration中心(right:42%)
  Results側（right端）を起点に左（Co-ceration）へ向かって伸びる
*/
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-line-from-right {
  right: 0%;
  width: 42%;
}
.layer-wrapper .layer-sticky .summary-panel .summary-diagram .summary-line-from-right .summary-line-inner {
  transform-origin: right center;
}
/* アクティブ時にアニメーション発火 */
.layer-wrapper .layer-sticky .summary-panel.active .summary-diagram .summary-line-from-left .summary-line-inner ,
.layer-wrapper .layer-sticky .summary-panel.active .summary-diagram .summary-line-from-right .summary-line-inner {
  transform: scaleX(1);
  transition: transform 0.9s cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: 0.25s;
}
.layer-wrapper .layer-sticky .summary-panel .summary-desc {
    width: fit-content;
    margin: 0 auto;
}
.layer-wrapper .layer-sticky .summary-panel .summary-desc strong {
    color: #A68B5B;
}
@media (max-width: 1024px) {
    .layer-wrapper .layer-sticky {
        height: auto;
        min-height: 100vh;  /* 最低でも画面高さを確保 */
        align-items: flex-start;
    }
    .layer-wrapper .layer-sticky .layer-inner {
        width: 80vw;
        margin: 0 auto;
        grid-template-columns: 1fr;
        grid-template-rows: 1.5fr 1fr;
        gap: 80px;
        margin: auto;
    }
    .layer-wrapper .layer-sticky .layer-inner .right-col {
        justify-content: flex-end;
    }
    .layer-wrapper .layer-sticky .layer-inner .right-col .wheel-wrap {
        width: 35vw;
    }
}
@media (max-width: 768px) {
    .layer-wrapper .layer-sticky .layer-inner .left-col .panel-heading h3 {
        margin: 0 0 24px 0;
    }
    .layer-wrapper .layer-sticky .summary-panel {
        width: 90vw;
        padding: 0;
    }
}
@media (max-width: 480px) {
.layer-wrapper .layer-sticky .layer-inner .left-col .panel-heading h3 {
        margin: 0 0 16px 0;
    }
}
/* レイヤー部分のスクロール制御はここまで */
/* 画像インフィニティスライダーのアニメーション */
#cplus-news .cplus-slider .cplus-slider-track {
    display: flex;
    align-items: flex-end;
    gap: 24px;
    width: max-content;
    animation: cplus-slide 40s linear infinite;
}
#cplus-news .cplus-slider:hover .cplus-slider-track {
    animation-play-state: paused; /* ホバーで一時停止 */
}
@keyframes cplus-slide {
    0%   { transform: translateX(0); }
    100% { transform: translateX(var(--slide-width)); }  /* JS側でpx値をセット */
}
/* 画像インフィニティスライダーのアニメーションはここまで */