@charset "utf-8";

/* top-index
------------------------------------------------------------*/

#top-index {
overflow: hidden;
position: relative;
background: #F7F3EC;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index {
height: 62vw;
max-height: 1080px;
}
}

#top-index:before {
content: "";
width: 100%;
height: 100%;
top: 0;
left: 0;
position: absolute;
background-image: url("../images/index/top_index_bg_sp.webp");
background-repeat: no-repeat;
background-size: 100% auto; /* 横幅100%、高さは自動調整 */
background-position: center top;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index:before {
background-image: url("../images/index/top_index_bg_pc.webp");
background-size: cover;
background-position: center center;
}
}

#top-index .inner-common {
padding-top: 60px;
position: relative;
z-index: 1;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index .inner-common {
padding-top: 90px;
max-width: inherit;
transition: 0.6s;
margin: 0 3%;
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
#top-index .inner-common {
margin: 0 6%;
}
}

.top-index-copy {
margin: 100vw 0 0 0;
padding-bottom: 60px;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.top-index-copy {
margin: 5vw 0 0 0;
padding-bottom: 0;
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
.top-index-copy {
margin: 7vw 0 0 0;
}
}

#top-index p.top-index-label {
color: #B9913B;
font-size: 0.75rem;
font-weight: 500;
letter-spacing: 0.08em;
margin: 0 0 1.2em 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#top-index p.top-index-label {
font-size: 0.875rem;
}
}

#top-index h1 {
color: #1E2942;
font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
font-size: 2.5rem;
font-weight: 500;
line-height: 1.2;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#top-index h1 {
font-size: 3.125rem;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index h1 {
font-size: clamp(3rem, 4vw, 5rem);
}
}

#top-index h1:after {
content: "";
display: block;
width: 72px;
height: 2px;
border-radius: 1px;
background: #B9913B;
margin: 2rem 0 0 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index h1:after {
margin: 1rem 0 0 0; /* キャッチコピー3行調整 */
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
#top-index h1:after {
margin: 2rem 0 0 0;
}
}

#top-index p.top-index-lead {
display: inline-block; /* for scroll-in */
color: #3E3A36;
margin: 2rem 0 0 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index p.top-index-lead {
transition-delay: 0.6s; /* for scroll-in */
margin: 1rem 0 0 0; /* キャッチコピー3行調整 */
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
#top-index p.top-index-lead {
margin: 2.4rem 0 0 0;
}
}

.top-index-btn {
display: flex;
flex-direction: column;
gap: 1.5em;
margin: 2em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.top-index-btn {
flex-direction: row;
width: auto;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.top-index-btn {
transition-delay: 0.9s; /* for scroll-in */
margin: 1.5em 0 0 0; /* キャッチコピー3行調整 */
}
}
@media only screen and (min-width: 1264px) { /* 1264px以上で適用、PCフルサイズ用CSS */
.top-index-btn {
margin: 2em 0 0 0;
}
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.top-index-btn a {
min-width: 13em; /* 必要に応じて上書き */
}
}

.top-index-btn .btn-products {
color: #FFF;
background: #1E2942;
border: solid 1px #1E2942;
}

.top-index-btn .btn-contact {
color: #FFF;
background: #B9913B;
border: solid 1px #B9913B;
}

/* End top-index */


/* index-reason
------------------------------------------------------------*/

#index-reason {
text-align: center;
background-color: #1E2942;
background-image: url("../images/index/index_reason_bg_sp.webp");
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
padding: 40px 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#index-reason {
background-image: url("../images/index/index_reason_bg_pc.webp");
}
}

.index-reason-list {
display: flex;
flex-wrap: wrap;
}

.index-reason-item {
width: 100%;
padding: 1.5em 1em;
position: relative;
border-bottom: solid 1px rgba(185, 145, 59, 0.35);
}

.index-reason-item:last-of-type {
border-bottom: none;
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-reason-item {
width: 50%;
border-bottom: none;
}
.index-reason-item:nth-of-type(odd) {
border-right: solid 1px rgba(185, 145, 59, 0.35);
}
.index-reason-item:nth-of-type(-n+2) {
border-bottom: solid 1px rgba(185, 145, 59, 0.35);
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-reason-item {
width: 25%;
padding: 0.5em 1.5em;
}
.index-reason-item:nth-of-type(odd) {
border-right: none;
}
.index-reason-item:nth-of-type(-n+2) {
border-bottom: none;
}
.index-reason-item:not(:last-of-type) {
border-right: solid 1px rgba(185, 145, 59, 0.35);
}
}

.index-reason-icon {
width: 80px;
margin: 0 auto 1em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-reason-icon {
width: 100px;
}
}

.index-reason-item h2 {
color: #B9913B;
font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
font-size: 1.25rem;
font-weight: 500;
line-height: 1.2;
margin: 0 0 0.7em 0;
}

.index-reason-item p {
color: #FFF;
font-size: 0.875rem;
line-height: 1.6;
}

/* End index-reason */


/* index-solutions
------------------------------------------------------------*/

.index-business-list {
display: flex;
flex-direction: column;
margin: 2.5em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-business-list {
flex-direction: row;
align-items: stretch;
justify-content: space-between;
}
}

.index-business-item {
background-image: url("../images/index/index_business_item_bg.webp");
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
padding: 2em 1.5em;
text-align: center;
border-radius: 10px;
position: relative;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-business-item {
width: calc((100% - 80px) / 3);
padding: 2em 1.25em;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-business-item {
padding: 2.5em 2em;
}
}

.index-business-item:not(:last-of-type) {
margin-bottom: 3em;
}

.index-business-item:not(:last-of-type):after {
content: "";
width: 0;
height: 0;
border-top: solid 7px transparent;
border-bottom: solid 7px transparent;
border-left: solid 10px #1E2942;
position: absolute;
left: 50%;
bottom: -1.8em;
transform: translateX(-50%) rotate(90deg);
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-business-item:not(:last-of-type) {
margin-bottom: 0;
}

.index-business-item:not(:last-of-type):after {
left: auto;
right: -25px;
top: 50%;
bottom: auto;
transform: translateY(-50%);
}
}

.index-business-item h3 {
color: #B9913B;
}

.index-business-icon {
width: 80px;
margin: 1em auto;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-business-icon {
width: 100px;
}
}

.index-business-item ul {
text-align: left;
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-business-item li {
min-height: 3em; /* 1em × 1.5(line-height) ×2行 */
}
}

#index-scene {
margin: 5em 0 0 0;
}

.index-scene-heading .small-heading {
margin-top: 0;
}

.index-scene-list {
display: flex;
flex-wrap: wrap;
gap: 20px 12px;
margin: 2em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-scene-list {
gap: 20px 16px;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-scene-list {
margin: 2.5em 0 0 0;
}
}

.index-scene-list li {
width: calc((100% - 12px) / 2);
text-align: center;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-scene-list li {
width: calc((100% - 48px) / 4);
}
}

.index-scene-list img {
display: block;
width: 100%;
border-radius: 4px;
}

.index-scene-list p {
font-size: 0.875rem;
line-height: 1.5;
margin: 0.5em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-scene-list p {
font-size: 0.9375rem;
}
}

/* End index-solutions */


/* index-products
------------------------------------------------------------*/

.index-products-visual {
background-image: url("../images/index/index_products_visual_bg_sp.webp");
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
margin: 2.5em 0 0 0;
padding: 0.5em 1em;
border-radius: 10px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-products-visual {
padding: 1.5em;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-products-visual {
background-image: url("../images/index/index_products_visual_bg_pc.webp");
padding: 2em;
}
}

.index-products-list {
display: flex;
flex-wrap: wrap;
gap: 0 0.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-products-list {
gap: 1em;
}
}

.index-products-item {
width: calc((100% - 0.5em) / 2);
text-align: center;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-products-item {
width: calc((100% - 3em) / 4);
}
}

.index-products-item img {
display: block;
width: 100%;
height: auto;
filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}

.index-products-btn {
text-align: center;
margin: 4em 0 0 0;
}

.index-products-btn a {
color: #FFF;
background: #1E2942;
border: solid 1px #1E2942;
}

/* End index-products */


/* index-quality
------------------------------------------------------------*/

.index-quality-list {
display: flex;
flex-direction: column;
gap: 2em;
margin: 2.5em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-quality-list {
flex-direction: row;
gap: 3em;
}
}

.index-quality-item {
width: 100%;
background: #F6F6F4;
padding: 2em 1.5em;
text-align: center;
border: solid 1px #FFF;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-quality-item {
width: calc((100% - 3em) / 2);
padding: 2.5em 2em;
}
}

.index-quality-logo {
height: 100px;
display: flex;
align-items: center;
justify-content: center;
margin: 0 0 1.5em 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-quality-logo {
height: 150px;
}
}

.index-quality-logo img {
display: block;
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
}

.index-quality-item h3 {
color: #1E2942;
margin: 0 0 1.5em 0;
}

.index-quality-item ul {
max-width: 400px;
margin: 0 auto;
text-align: left;
}

.index-quality-item > p {
font-size: 0.875rem;
}

/* End index-quality */


/* index-news
------------------------------------------------------------*/

.index-news-list {
width: fit-content;
max-width: 900px;
margin: 3em auto 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list {
margin: 3.5em auto 0;
}
}

.index-news-list li {
width: 100%;
border-bottom: solid 1px #D8D5CF;
}

.index-news-list li:first-of-type {
border-top: solid 1px #D8D5CF;
}

.index-news-list li > a,
.index-news-inner {
display: flex;
flex-direction: column;
width: 100%;
padding: 1.2em 2.5em 1.2em 1em;
position: relative;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list li > a,
.index-news-inner {
flex-direction: row;
align-items: flex-start;
padding: 1.2em 3em 1.2em 2em;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-news-list li > a:hover {
background: #F7F3EC;
opacity: 1;
}
.index-news-list li > a:hover:after {
right: 1.2em;
}
}

.index-news-list time {
color: #8A8782;
font-size: 0.8125rem;
white-space: nowrap;
flex-shrink: 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list time {
width: 9em;
font-size: 0.875rem;
}
}

.index-news-list p {
line-height: 1.5;
margin: 0.5em 0 0 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list p {
flex: 1;
min-width: 0;
margin: 0;
}
}

.index-news-list li > a:after {
content: "";
width: 8px;
height: 8px;
border-top: solid 1px #B9913B;
border-right: solid 1px #B9913B;
position: absolute;
top: 50%;
right: 1em;
transform: translateY(-50%) rotate(45deg);
transition: 0.6s;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list li > a:after {
right: 1.5em;
}
}

/* End index-news */







