@charset "uft-8";
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,100..700;1,100..700&family=Matangi:wght@300..900&family=UoqMunThenKhung&display=swap');
body{
    color: #333;
}
.toppage,.sub-container,.commitments-container {
    max-width:1400px;
    margin: 0 auto;
    padding: 0;
}
.top-container,.products-container,.reviews-container,.last-text{
    max-width: 1200px;
    margin:0 auto;
    text-align: center;
    justify-content: center;
}
h2{
    font-size: clamp(38px,4.2vw,50px);
    margin: 4rem 0 3.5rem;
    font-family: "UoqMunThenKhung", serif;
}
h3{
    font-size: clamp(20px,3vw,36px);
    margin-bottom: 1.7rem;
}
h4{
    font-size: clamp(17px,2.3vw,28px);
    margin: 0;
}
.toppage{
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: hidden; 
}
.toppage img{
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
}
.top-copy{
    margin: 4rem 0 7rem;
}
.grid-all{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:30px;
    margin: 0 100px;
}
.top-grid{
    margin-bottom: 40px;
}
.top-grid img{
    width: clamp(80px,50vw,50%);
}
.top-grid p{
    font-size: clamp(17px,2vw,28px);
    font-weight: bold;
    margin: 2rem 0 0;
}
.products-container img{
    width: 70%;
}
.products-cta{
    display: inline-block;
    padding: 0.7rem clamp(4rem,8vw,6rem);
    background-color:#D66920 ;
    border-radius: 20px;
    margin: 0 0 70px;
    text-align: center;
    box-shadow: 1px 6px 1px #944918;
}
.products-cta a{
    font-size: clamp(1.3rem,2.7vw,2rem);
    font-weight: bold;
    text-decoration: none;
    color: white;
    display: inline-flex;
    text-align: center;
    gap: 0.7rem;
}
.products-cta a img{
    width: 1.2em;
    height: auto;
    vertical-align: middle ;
}
.products-cta:hover{
    background-color: #e07933;
}
.products-cta:active{
    box-shadow: 0 2px 0 #944918;
    transform: translateY(4px);
}
.reviews-container{
    width: 85%;
}
.reviews{
    display: flex;
    background-color: #DBEBF4;
    margin-bottom: 3rem;
    justify-content: center;
    align-items: center;
    gap: 2rem;
}
.review-item{
    text-align: center;
    margin: 1rem;
}
.reviews img{
    width:35%;
    height: auto;
    margin: 1rem 0;
}
.reviews p{
    text-align: left;
}
.name{
    font-size: 18px;
    font-weight: bolder;
}
.sub-container{
    display: flex;
    background-color: #F6EACE;
    align-items: stretch;
}
.sub-text{
    flex: 1;
    justify-content: center;    
    padding:1rem 0 0 4rem;
}
.sub-text p{
    line-height: 1.7;
    justify-content: center;
}
.sub-img{
    flex: 0.6;
}
.sub-img img{
    height: 100%;
    width: 100%;
}
.spacer{
    display: inline-block;
    margin-bottom: 1rem;
}
.qa-container{
    max-width: 700px;
    margin:0 auto;
    text-align: center;
    justify-content: center;
}
.qa{
    text-align: left;
}
.qa h4{
    margin: 2.5rem 0 1.3rem;
    font-weight:500;
    font-size: 20px;
}
.bolder{
    font-weight: bolder;
}
.commitments-container h2{
    text-align: center;
}
.commitments{
    display: flex;
    background-color: #F6EACE;
    margin-bottom: 3rem;
    align-items: stretch;

}
.commitments-img{
    flex: 0.6;
}
.commitments-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
h5{
    font-size: 20px;
    margin: 1.5rem 0 0.5rem;
}
.commitments-text{
    flex: 1;
    text-align: center;
    display: flex;              /* 追加 */
    flex-direction: column;     /* 縦並びにする */
    justify-content: center;    /* ← 中の要素を縦中央揃えにする */
    padding: 1rem;

}
.message{
    font-size: clamp(17px,1.7vw,20px);
    line-height: 1.7;
    font-weight: 500;
    margin: 4rem 0;
}
.products-copy{
    font-size: clamp(18px,1.9vw,22px);
    color: #b5500e;
    font-weight: bolder;
    margin: 30px 0 0;
}
@media(max-width:768px){
    .products-container img{
        width: 90%;
    }
    .reviews{
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    .reviews img{
        width: 90%;
        order: 2;
        margin: 0 0 1rem;
    }
    .review-item{
        order: 1;
    }
    .sub-container {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        background-image: url("image/dog2.jpg");
        background-size: cover;
        background-position: center;
        flex-direction: column;
        padding: 2rem;
    }

    .sub-img {
        display: none;
    }

    .sub-text {
        background-color: rgba(255, 255, 255, 0.35); 
        padding: 2rem;
        max-width: 90%;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;
        height: auto;
    }

    .sub-text p {
        margin: 0;
        line-height: 1.8;
    }
    .commitments{
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    .commitments-text{
        order: 1;
    }
    .commitments-img{
        order: 2;
    }
    .sp-none{
        display: none;
    }
}
@media(max-width:480px){
    .products-cta{
        padding: 0.7rem clamp(1rem,8vw,4rem);
    }
}