/* =====================================================
   JAPICA Page Styles
===================================================== */
.japica-intro-section {
    padding: clamp(40px, 6vw, 80px) 0;
}

.japica-intro-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.japica-intro-text {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.6;
    color: #5BA699;
    text-align: left;
}

/* Stack Container */
.japica-stack-container {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

/* Overlay Section (画像 + テキストオーバーレイ) */
.japica-overlay-section {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    margin-bottom: 60px;
}

.japica-overlay-section:last-child {
    margin-bottom: 0;
}

/* 奇数セクション：画像左、テキスト右 */
.japica-overlay-section:nth-child(odd) {
    justify-content: flex-start;
}

.japica-overlay-section:nth-child(odd) .japica-overlay-content {
    margin-left: auto;
}

.japica-overlay-section:nth-child(odd) .japica-title-box {
    border-radius: 0;
}


/* 偶数セクション：画像右、テキスト左 */
.japica-overlay-section:nth-child(even) {
    flex-direction: row-reverse;
    justify-content: flex-start;
}

.japica-overlay-section:nth-child(even) .japica-overlay-content {
    margin-left: 0;
    margin-right: auto;
}

.japica-overlay-section:nth-child(even) .japica-title-box {
    border-radius: 0;
}


.japica-overlay-image {
    position: absolute;
    top: 0;
    bottom: 0;
    /* 奇数：ビューポート左端に合わせ、コンテンツの下まで延伸 */
    left: min(0px, calc(600px - 50vw));
    width: 100vw;
}

.japica-overlay-section:nth-child(even) .japica-overlay-image {
    left: auto;
    /* 偶数：ビューポート右端に合わせ、コンテンツの下まで延伸 */
    right: min(0px, calc(600px - 50vw));
    width: 100vw;
}

.japica-overlay-image img {
    /* 高さ基準でスケール、min-widthでコンテンツ開始位置まで必ずカバー */
    width: auto;
    min-width: max(43.33vw, calc(50vw - 80px));
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 偶数セクション：写真をラッパー右端（ビューポート右端）に寄せる */
.japica-overlay-section:nth-child(even) .japica-overlay-image img {
    margin-left: auto;
}

.japica-overlay-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    width: 56.67%;
    margin-left: auto;
}

.japica-overlay-text {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.japica-title-box-wrap {
    background: #DDA5C9;
    position: relative;
}

.japica-text-box-wrap {
    background: #fff;
    border-radius: clamp(12px, 1.67vw, 24px) 0 0 0;
    margin-top: clamp(-13px, -1.74vw, -25px);
    position: relative;
}

.japica-overlay-section:nth-child(even) .japica-text-box-wrap {
    border-radius: 0 24px 0 0;
}

/* 奇数セクション：背景をビューポート右端まで延伸 */
.japica-overlay-section:nth-child(odd) .japica-title-box-wrap::after,
.japica-overlay-section:nth-child(odd) .japica-text-box-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 100%;
    width: max(0px, calc(50vw - 600px));
    background: inherit;
}

/* 偶数セクション：背景をビューポート左端まで延伸 */
.japica-overlay-section:nth-child(even) .japica-title-box-wrap::before,
.japica-overlay-section:nth-child(even) .japica-text-box-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;
    width: max(0px, calc(50vw - 600px));
    background: inherit;
}

.japica-title-box {
    max-width: 900px;
    width: 100%;
    min-height: clamp(110px, 15.14vw, 218px);
    padding: clamp(20px, 2.78vw, 40px) clamp(30px, 4.17vw, 60px) clamp(40px, 5.56vw, 80px);
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    position: relative;
    z-index: 2;
}

.japica-title-content {
    display: flex;
    flex-direction: column;
    color: #fff;
}

.japica-title-icon {
    width: auto;
    height: clamp(50px, 6.94vw, 100px);
    flex-shrink: 0;
}


.japica-overlay-section:nth-child(even) .japica-text-box {
}

.japica-title-box .japica-section-label {
    margin-bottom: 0;
    order: 2;
}

.japica-title-box .japica-section-title {
    margin-bottom: 10px;
    order: 1;
}

/* 偶数セクション（2,4番目）：色反転 */
.japica-overlay-section:nth-child(even) .japica-title-box-wrap {
    background: #5BA699;
}



.japica-section-label {
    display: block;
    font-size: clamp(12px, 1.39vw, 20px);
    font-weight: 500;
    line-height: 1.6;
    margin-bottom: clamp(5px, 0.69vw, 10px);
    letter-spacing: 0.05em;
}

.japica-section-title {
    font-size: clamp(16px, 2.153vw, 31px);
    font-weight: 700;
    line-height: 1.6;
    margin: 0 0 clamp(7px, 0.97vw, 14px);
}

.japica-text-box {
    max-width: 900px;
    width: 100%;
    min-height: clamp(155px, 21.25vw, 306px);
    padding: clamp(30px, 4.17vw, 60px) clamp(30px, 4.17vw, 60px) clamp(40px, 5.56vw, 80px);
    box-sizing: border-box;
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}


.japica-text-box p {
    font-size: clamp(12px, 1.25vw, 18px);
    font-weight: 500;
    line-height: 1.6;
    color: #30403E;
    margin: 0 0 1em;
}

.japica-text-box p:last-child {
    margin-bottom: 0;
}

.japica-text-box .japica-check-list li {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6;
    color: #65BAA9;
    background: none;
    border-bottom: 2px solid #65BAA9;
    border-radius: unset;
    padding: 4px 0;
    margin: 0 10px;
}

.japica-text-box .japica-power-desc {
    color: #30403E;
}

.japica-text-box .japica-powers-list {
    margin-top: 0;
}

.japica-check-list {
    list-style: none;
    padding: 0;
    margin: 0 0 1em 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.japica-check-list li {
    font-size: clamp(12px, 1.25vw, 18px);
    font-weight: 500;
    line-height: 1.6;
    color: #30403E;
    background: rgba(101, 186, 169, 0.15);
    border: none;
    border-radius: 4px;
    padding: 4px 12px;
}

.japica-bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.japica-bullet-list li {
    position: relative;
    padding-left: 1.5em;
    font-size: 18px;
    font-weight: 400;
    line-height: 2;
    color: #444444;
}

.japica-bullet-list li::before {
    content: '・';
    position: absolute;
    left: 0;
}

.japica-image-placeholder {
    width: 100%;
    height: 460px;
    background-color: #D9D9D9;
}

/* Powers List */
.japica-powers-list {
    margin-top: clamp(20px, 3vw, 30px);
}

.japica-power-item {
    margin-bottom: 20px;
}

.japica-power-item:last-child {
    margin-bottom: 0;
}

.japica-power-title {
    font-size: clamp(14px, 1.25vw, 18px);
    font-weight: 500;
    line-height: 1.6;
    color: #30403E;
    background: none;
    border: none;
    margin: 0 0 clamp(6px, 0.5vw, 8px);
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}

.japica-power-num {
    font-family: "Poppins", sans-serif;
    font-size: 28px;
    font-weight: 500;
    line-height: 1;
    color: #DDA5C9;
    background: none;
    border: none;
    flex-shrink: 0;
}

.japica-power-num::after {
    content: '.';
    color: #DDA5C9;
}

.japica-power-text {
    font-size: 20px;
    font-weight: 500;
    line-height: 1.6;
    color: color-mix(in srgb, #A19E99, #000000 20%);
    padding: 0;
    display: inline;
    margin-left: 5px;
}

.japica-power-desc {
    font-size: clamp(10px, 0.97vw, 14px);
    font-weight: 400;
    line-height: 1.8;
    color: #444444;
    margin: 0;
}

.japica-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 1em 0;
}

.japica-tag {
    display: inline-block;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.6;
    color: #65BAA9;
    background: none;
    border: none;
    border-bottom: 2px solid #65BAA9;
    border-radius: unset;
    padding: 4px 0;
    margin: 0 10px;
}

/* Message Section */
.japica-message-section {
    background-color: #5BA699;
    padding: 62px clamp(20px, 5vw, 60px);
    border-radius: 40px;
    width: calc(100% - 40px);
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
}

.japica-message-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.7);
    pointer-events: none;
}

.japica-message-section::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('../images/our-message-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.1;
    pointer-events: none;
}

.japica-message-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: clamp(40px, 5vw, 80px);
    align-items: start;
    position: relative;
    z-index: 1;
}

.japica-message-left {
    flex: 1;
    text-align: center;
}

.japica-message-title {
    display: inline-block;
    font-family: "Poppins", sans-serif;
    font-size: clamp(32px, 4.5vw, 55px);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.08em;
    color: #5BA699;
    margin: 0;
    padding-bottom: clamp(12px, 2vw, 20px);
    border-bottom: 1px solid #5BA699;
    margin-bottom: clamp(16px, 2.5vw, 30px);
}

.japica-message-subtitle {
    font-size: clamp(20px, 2.8vw, 31px);
    font-weight: 700;
    line-height: 1.6;
    color: #5BA699;
    margin: 0 0 clamp(16px, 2.5vw, 30px);
    text-align: center;
}

.japica-message-body p {
    font-size: clamp(14px, 1.5vw, 18px);
    font-weight: 500;
    line-height: 1.6;
    color: #30403E;
    margin: 0 0 clamp(12px, 1.5vw, 20px);
    text-align: center;
}

.japica-message-body p:last-child {
    margin-bottom: 0;
}

.japica-message-visual {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.japica-circle-wrapper {
    position: relative;
    width: clamp(320px, 48vw, 600px);
    height: clamp(300px, 45vw, 560px);
}

.japica-circle-item {
    position: absolute;
    width: clamp(100px, 14vw, 180px);
    height: clamp(100px, 14vw, 180px);
    background-color: #fff;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: clamp(8px, 1.2vw, 15px);
    box-sizing: border-box;
    z-index: 10;
    border: 3px solid color-mix(in srgb, #7EBBB0, #ffffff 30%);
}

.japica-circle-icon {
    display: block;
    width: clamp(50px, 7vw, 90px);
    height: clamp(50px, 7vw, 90px);
    margin: 0 auto;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.japica-circle-item[data-position="1"] .japica-circle-icon {
    background-image: url('../images/message-icon-01.svg');
}

.japica-circle-item[data-position="2"] .japica-circle-icon {
    background-image: url('../images/message-icon-02.svg');
}

.japica-circle-item[data-position="3"] .japica-circle-icon {
    background-image: url('../images/message-icon-03.svg');
}

.japica-circle-item[data-position="4"] .japica-circle-icon {
    background-image: url('../images/message-icon-04.svg');
}

.japica-circle-item[data-position="5"] .japica-circle-icon {
    background-image: url('../images/message-icon-05.svg');
}

.japica-circle-item[data-position="6"] .japica-circle-icon {
    background-image: url('../images/message-icon-06.svg');
}

.japica-circle-text {
    font-size: clamp(10px, 1.3vw, 16px);
    font-weight: 700;
    line-height: 145%;
    color: color-mix(in srgb, #A19E99, #000000 20%);
}

/* 丸の配置 */
.japica-circle-item[data-position="1"] {
    top: 0;
    left: clamp(50px, 8vw, 100px);
}

.japica-circle-item[data-position="2"] {
    top: 0;
    right: clamp(50px, 8vw, 100px);
}

.japica-circle-item[data-position="3"] {
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.japica-circle-item[data-position="4"] {
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

.japica-circle-item[data-position="5"] {
    bottom: 0;
    left: clamp(50px, 8vw, 100px);
}

.japica-circle-item[data-position="6"] {
    bottom: 0;
    right: clamp(50px, 8vw, 100px);
}

.japica-message-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    width: clamp(250px, 38vw, 470px);
    height: clamp(250px, 38vw, 470px);
    background-image: url('../images/message-icon-bg.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.japica-message-logo img {
    width: clamp(100px, 16vw, 200px);
    height: auto;
}

.japica-message-arrow {
    display: flex;
    justify-content: center;
    color: #65BAA9;
    margin: 80px 0;
}

.japica-message-arrow svg {
    height: 124.5px;
    width: auto;
}

