@charset "UTF-8";

/* ===============================================
  project
=============================================== */
.p-bg--cream {
	background-image: url('/common/img/bg_cream.jpg');
	background-repeat: repeat;
	background-position: 0 0;
	min-height: 100%;
	animation: bgscroll 20s linear infinite;
}
@-webkit-keyframes bgscroll {
	0% {background-position: 50vw 0;}
	100% {background-position: 0 0;}
}
@keyframes bgscroll {
	0% {background-position: 50vw 0;}
	100% {background-position: 0 0;}
}

/* ==============================
Project: Index Page
============================== */
.p-index-mv__container{
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.forbeginner .p-index-mv__container { background-image: url('/forbeginner/img/mv_index.jpg');
}
.forfarmer .p-index-mv__container { background-image: url('/forfarmer/img/mv_index.jpg');
}
.forconsumer .p-index-mv__container { background-image: url('/forconsumer/img/mv_index.jpg');
}

/* ハンバーガーメニュー開時: ヒーローロゴをメニュー下のレイヤーに */
body.u-overflow-hidden .p-index-mv__container {
    position: relative;
    z-index: 0;
}

.p-index-mv__logo {
    display: none;
}

@media (min-width: 768px) {
    .p-index-mv__container {
        height: clamp(40rem, 60vh, 100rem);
    }
    .p-index-mv__logo {
        display: block;
        position: absolute;
        top: 40px;
        left: 4%;
        width: clamp(20rem, 40%, 80rem);
        height: auto;
        z-index: 10;
        transition: transform 0.3s ease;
    }
    .p-index-mv__logo:hover {
        transform: scale(1.1);
    }
    .p-index-mv__logo:hover img {
        opacity: 1;
    }
}

.p-deco-img-wrap {
    overflow: auto;
}
.p-deco-img {
    float: right;
    width: 15%;
    min-width: 7rem;
    height: auto;
    margin-left: .5em;
    margin-bottom: 0.5em;
    display: block;
}

.p-video-frame {
    display: block;
    margin: 0 auto;
    max-width: 800px;
}
.p-video-frame .c-youtube iframe {
    left: 0;
    bottom: 0;
}

/* index-lead */
.p-index__ttl {
    display: block;
    text-align: center;
    line-height: 3;
}
.p-index__ttl span {
    display: inline;
    text-decoration: underline;
    text-decoration-color: var(--color-secondary);
    text-decoration-thickness: 3px;
    text-underline-offset: 0.7em;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

.p-index-lead__column {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
}

@media (min-width: 960px) {
    .p-index-lead__column {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 2.5em;
    }
    .p-index-lead__column.p-index-lead__column--reverse {
        flex-direction: row-reverse;
    }
}

.p-index-lead__item-txt {
    flex: 1;
    width: 100%;
}

.p-index-lead__item-img {
    flex-shrink: 0;
    width: 70%;
}
@media (min-width: 959px) {
    .p-index-lead__item-img {
        width: clamp(18rem, 27%, 30rem);
    }
}

.p-index-lead__item-txt li {
    position: relative;
    padding-left: 1.5em;
    margin-top: .9em;
    border-bottom: 1px solid var(--color-gray-dark);
    padding-bottom: .9em;
    font-weight: bold;
    font-size: 1.125em;
}
.p-index-lead__item-txt li::before {
    content: "";
    position: absolute;
    top: .75em;
    left: 0;
    width: 0.625em;
    height: 0.625em;
    background-color: var(--color-primary);
    border-radius: 50%;
}

/* index-topic */
.index-topic .p-index-topic__bg{
    width: 94%;
    margin: 0 auto;
    padding: 1em 0 2em;
    border-radius: clamp(5rem, 34.64vw - 215.7px, 20rem) clamp(5rem, 34.64vw - 215.7px, 20rem) 0 0;
}
@media (min-width: 768px) {
    .index-topic .p-index-topic__bg{
        padding: 3em 0 4em;
    }
}

.index-topic .p-index-topic__content {
    display: flex;
    flex-direction: column;
    gap: 1em;
}
.index-topic .p-index-topic__content:nth-of-type(n+2) {
    position: relative;
    margin-top: 6em; 
}

.index-topic .p-index-topic__content:nth-of-type(n+2)::before {
    content: "";
    position: absolute;
    top: -3em; 
    left: 50%;
    transform: translateX(-50%);
    width: 3em;
    aspect-ratio: 78/40;
    background-image: url("/common/img/step-arrow.svg");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

@media (min-width: 768px) {
    .index-topic .p-index-topic__content:nth-of-type(n+2) {
        margin-top: 8em;
    }

    .index-topic .p-index-topic__content:nth-of-type(n+2)::before {
        width: 60px;
        height: 40px;
        top: -5em;
    }
}

/* ==============================
  heading_container (見出しコンテナ)
============================== */
.p-heading_container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
}

@media (min-width: 768px) {
    .p-heading_container {
        flex-direction: row;
        align-items: flex-start;
    }
}

/* ==============================
  heading_tag (見出しタグ)
============================== */
.p-heading_tag {
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: 0em 1em;
    margin-top: .7em;
    border-radius: 999px;
    font-weight: 900;
}

/* ==============================
  voiceimg (画像ラッパー)
============================== */
.p-voiceimg {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
}
.p-voiceimg__img {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 300px;
}
.p-voiceimg__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    border-radius: 300px;
}

/* ==============================
  voiceimg__badge (バッジ)
============================== */
.p-voiceimg__badge {
    position: absolute;
    top: -2.5em;
    left: -2em;
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: 1.2em 1.5em;
    border-radius: 50%;
    font-weight: 900;
    font-size: clamp(0.7em, 2vw, 1em);
    line-height: 1.3;
    text-align: center;
    z-index: 2;
    width: clamp(5em, 10vw, 8em);
    height: clamp(5em, 10vw, 8em);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.3em;
    transition: transform 0.3s ease;
}
.p-voiceimg__badge--green {
    background-color: var(--color-secondary);
}

.p-voiceimg__badge-category {
    font-size: clamp(.9rem, .8em, 1.2rem);
    font-weight: 900;
    display: block;
}
@media (min-width: 768px) {
    .p-voiceimg__badge-category {
        font-size: 1em;
    }
}
@media (min-width: 1280px) {
    .p-voiceimg__badge-category {
        font-size: 1.1em;
    }
}
@media (min-width: 1600px) {
    .p-voiceimg__badge-category {
        font-size: 1.25em;
    }
}

.p-voiceimg__badge-year {
    font-size: clamp(.8rem, .7em, 1.1rem);
    font-weight: 400;
    display: block;
}
@media (min-width: 768px) {
    .p-voiceimg__badge-year {
        font-size: .7em;
    }
}
@media (min-width: 1280px) {
    .p-voiceimg__badge-year {
        font-size: .875em;
    }
}

/* ==============================
  voice-tag (ボイスタグ)
============================== */
.p-voice-tag {
    display: inline-block;
    background-color: #EAF7EB;
    color: var(--color-primary);
    padding: 0.4em .3em;
    border-radius: 999px;
    font-size: 0.6em;
    line-height: 1.4;
}
@media (min-width: 768px) {
    .p-voice-tag {
        padding: 0.4em 1em;
        font-size: 0.8em;
    }
}


/* ==============================
  Project: info (p-info-card)
============================== */
.p-info-card__item {
    display: flex;
    flex-direction: column;
    gap: .5em;
    background-color: var(--color-white);
    padding: .5em 1em .5em;
    border-radius: clamp(20px, 4.5vw, 40px);
    position: relative;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.p-info-card__item-txt {
    order: 2;
    padding: 0 1em;
}

.p-info-card__item-img {
    order: 1;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: clamp(20px, 4.5vw, 40px);
}

.p-info-card__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.p-info-card__caption {
    order: 3;
    padding: 0 1em;
    margin-top: auto;
}

.p-info-card__date,
.p-info-card__cat {
    font-size: 0.875em;
    margin: 0;
}
.p-info-card__caption {
    display: flex;
    flex-direction: row;
    gap: 0.5em;
}



.p-info-card__cat {
    padding-left: 0.5em;
}

.p-info-card__cat::before {
    content: "｜";
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 0.5em;
}

@media (hover: hover) {
    .p-info-card__item:hover {
        opacity: 0.9;
    }
}

/* ==============================
  caution
============================== */
.caution__container {
	width: 100%;
	padding: 2em;
	border-radius: clamp(20px, 4.5vw, 40px);
	background-color: #F8F8EC;
}

@media (min-width: 768px) {
	.c-column .caution__container {
		align-self: stretch;
		height: 100%;
	}
	.caution__container {
		padding: 4em;
	}
}

/* ==============================
  CTA関連セクション（関連ページ・おすすめリンク）
============================== */
.p-related-section {
	width: 100%;
    margin-top: 4em;
}
@media (min-width: 768px) {
    .p-related-section {
        margin-top: 6em;
    }
}

.p-related-section__heading {
	text-align: center;
	margin-bottom: 1.5em;
}

.p-related-section__list {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	gap: 1.5em;
}

@media (min-width: 960px) {
	.p-related-section__list {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
	}

	.p-related-section__list .p-cta-banner {
		flex: 0 1 calc(50% - 0.75em);
		min-width: 0;
	}

	.p-related-section__list .p-cta-banner:only-child {
		flex: 0 0 calc(50% - 0.75em);
	}
}

.p-cta-banner {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	gap: 0;
	background-color: var(--color-white);
	border-radius: clamp(12px, 2.5vw, 20px);
	border: 1px solid var(--color-gray-dark);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: opacity 0.3s ease;
}

@media (hover: hover) {
	.p-cta-banner:hover {
		opacity: 0.92;
	}
	.p-cta-banner:hover .p-cta-banner__arrow {
		transform: translateX(6px);
	}
}

.p-cta-banner__img {
	width: 100px;
	min-width: 80px;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	flex-shrink: 0;
}

.p-cta-banner__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-cta-banner__body {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 0.1em;
	flex: 1;
	padding: 1em 1.25em;
	position: relative;
}

/* 外部リンクアイコン（Lucide注入）のレイアウト */
.p-cta-banner__body > .c-icon {
	flex-shrink: 0;
}

.p-cta-banner__title {
	margin: 0;
	line-height: 1.4;
	flex: 1;
}

.p-cta-banner__arrow {
	flex-shrink: 0;
	width: 2em;
	height: 0.75em;
	background-image: url("/common/img/half-arrow.svg");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: right center;
	transition: transform 0.3s ease;
}

@media (min-width: 768px) {
	.p-cta-banner__img {
		width: 160px;
		min-width: 120px;
	}

	.p-cta-banner__body {
		padding: 1em 1.5em;
	}
}