@charset "utf-8";

section {
    text-align: center;
}



header {
    /* padding-top: 1%; */
    background: url(../image/png/image_mv_bg_1440x960.jpg)center center no-repeat;
    background-size: contain;
    width: 100%;
    height: auto;
    aspect-ratio: 1440/960;
    position: relative;
}

/* mvエリア */

.mv_area {
    margin-top: 1%;
    margin-right: 2%;
    width: 90%;
    height: auto;
    position: absolute;
    top: 12%;
    right: 0;
}

.slider .slide1 img,
.slider .slide2 img,
.slider .slide3 img,
.slider .slide4 img {
    width: 100%;
    height: auto;
    display: block;
    /* 余白を防ぐ */
}

.slider .slide1,
.slider .slide2,
.slider .slide3,
.slider .slide4 {
    position: relative;
}

/* .deco_bg .access_top {
    position: absolute;
    top: 50%;
    left: 27%;
    transform: translateY(-50%);
} */

.mv_text {
    padding: 2%;
    background-color: rgb(255, 255, 255, 0.8);
    width: 45%;
    aspect-ratio: 800/190;
    font-size: 3vw;
    position: absolute;
    bottom: 15%;
    left: -7%;
    z-index: 1;
}

.mv_text p:first-child {
    font-size: 2vw;
}

.mv_text p:last-child {
    font-size: 1.2vw;
    letter-spacing: 0.08em;
}


/* コンセプトエリア */
.concept_area {
    position: static;
    background: url(../image/png/image_concept_01_1440x1510.png) center center no-repeat;
    background-size: cover;
    width: 100%;
    height: auto;
    aspect-ratio: 1440 / 1510;
    margin-top: 5%;
}

.concept_area h2 {
    position: relative;
}

.concept_area h2::after {
    position: absolute;
    content: "";
    background-color: #736357;
    width: 5%;
    height: 1%;
    bottom: -15%;
    left: 50%;
    transform: translateX(-50%);
}

.concept_area .concept_contents .concept_heading p {
    margin: 5% 0;
}

.concept_area .concept_text_box {
    display: inline-block;
    text-align: left;
    width: clamp(430px, calc(56.632vw - 5.499px), 810px);
    margin: 0 auto;
}

.concept_area .concept_text {
    line-height: 4;
    font-size: 1.2vw;
}

.concept_area .more_btn {
    margin: 3% 50px 0 0;
    text-align: right;
}



/* フラワーエリア */

/* 4種のブーケ */
.flower_area {
    margin-top: 2%;
}

.flower_area h3,
.vending_area h3 {
    font-weight: 200;
    font-size: 2.5vw;
    letter-spacing: 0.03em;
}

.flower_area h3 span {
    letter-spacing: 0.2em;
}

.flower_area .heading_en {
    display: block;
    margin: -1% 0 5%;
    font-size: 1.3vw;
}

.flower_area .flower_annotation {
    font-size: 1.1vw;
    margin: 1% 0 7%;
}

.flower_area ul {
    flex-wrap: wrap;
    margin: 0 10%;
    gap: 4%;
}

.flower_area ul a {
    width: 100%;
    height: 100%;
    transition: .3s;
    padding: 4%
}

.flower_area ul a:hover {
    opacity: 0.7;
}

.flower_area ul li img {
    width: 23.4vw;
    margin-bottom: 4%;
}

.flower_area ul li {
    width: 46.3%;
    height: auto;
    background-color: #fff;
    box-shadow: 1px 1px 6px rgb(160, 156, 157, 0.25);
    aspect-ratio: 500/400;
}

.flower_area ul li:nth-child(3),
.flower_area ul li:nth-child(4) {
    margin-top: 3%;
}

.flower_area h4 {
    font-size: 1.6vw;
    font-weight: 400;
}

.flower_area .price_text {
    font-size: 1.2vw;
    margin-top: -2%;
}

.flower_area .bouquet_text {
    font-size: 1vw;
    margin-top: 2.5%;
}

.flower_area ul li:nth-child(3) p:last-child {
    line-height: 1.8;
}

.flower_area .more_btn {
    margin: 2% 8% 0 0;
    text-align: right;
}

.flower_area ul li:nth-child(2) rt {
    margin-bottom: 5px;
}



/* 自動販売機 */
.vending_area h3 {
    margin-top: 10%;
}

.vending_area img {
    margin-top: 4%;
    width: 35vw;
}

.flower_area .vending_more_btn {
    text-align: right;
    margin: 2% 20% 0 0;
}

.flower_area .vending_area a {
    transition: .3s;
}

.flower_area .vending_area a:hover {
    opacity: 0.7;
}



/* オンラインショップエリア */
.online_area {
    display: flex;
    flex-direction: column;
    margin: 8% auto 0;
    background: url(../image/png/image_top_online01_1058x615.png) center center no-repeat;
    background-size: cover;
    width: 75%;
    height: auto;
    aspect-ratio: 1058/615;
    position: relative;
}

.online_area h2 {
    position: absolute;
    top: 6%;
    left: 7%;
}

.online_area .online_text {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 55%;
    left: 28%;
    transform: translate(-50%, -50%);
    text-align: left;
    width: 45%;
    aspect-ratio: 500 / 320;
    height: auto;
    background-color: rgba(255, 255, 255, 0.6);
    box-shadow: 0 0 5px rgb(255, 255, 255, 0.6);
}

.online_area ul {
    list-style-position: inside;
    line-height: 2.4;
}

.online_area ul li {
    font-size: 2vw;
    list-style: square;
}

.online_area ul li span {
    font-size: 1vw;
}

.online_area ul li:nth-child(2) {
    margin: 5% 0 3%;
}

.online_area ul li:nth-child(2) span {
    font-size: 1.3vw;
}

.online_area ul li:nth-child(3) {
    font-size: 1vw;
    list-style: none;
    margin-bottom: -5%;
}

.online_area .more_btn {
    position: absolute;
    bottom: 15%;
    right: 48%;
}

/* インフォエリア */
.info_area {
    text-align: center;
    margin: 8% 10% 0;
}

.info_area ul {
    flex-wrap: wrap;
    gap: 3%;
    margin-top: 5%;
}

.info_area li {
    justify-content: flex-start;
    width: 46.3%;
    height: auto;
    background-color: #fff;
    box-shadow: 1px 1px 6px rgb(160, 156, 157, 0.25);
    aspect-ratio: 550/210;
    padding: 1% 3%;
}

.info_area ul li img {
    width: 13vw;
}

.info_area ul li a {
    gap: clamp(14px, calc(2.385vw - 4.337px), 30px);
}

.info_area ul li:nth-child(1),
.info_area ul li:nth-child(2) {
    margin-bottom: 3%;
}

.info_area h3 {
    font-size: 1.5vw;
    font-weight: 400;
    margin-top: 3%;
}

.info_area .info_text {
    text-align: left;
}

.info_area .info-list a {
    transition: .3s;
}

.info_area .info-list a:hover {
    opacity: 0.7;
}

.info_area .more_btn {
    text-align: right;
    margin: 3% 2% 0 0;
}

/* アクセスエリア */
.access_area {
    margin: 8% 10% 10%;
    width: 80%;
    position: relative;
}

.access_area h2 {
    margin-bottom: 3%;
}

.access_area .iframeWrapper {
    width: 40%;
    height: auto;
    aspect-ratio: 432 /340;
}

.access_area iframe {
    width: 100%;
    height: 100%;
}

.access_area .access_content {
    gap: 5%;
    width: 95%;
}

.access_area .access_text {
    display: flex;
    width: 40%;
    height: auto;
    background-color: #fff;
    box-shadow: 1px 1px 6px rgb(160, 156, 157, 0.25);
    aspect-ratio: 550/210;
    flex-direction: column;
    line-height: 2;
    font-size: 1.4vw;
    gap: 13%;
    padding: 3% 4%;
    text-align: right;
}

.access_area .access_top p:nth-child(1) {
    text-align: left;
}

.access_area .more_btn {
    position: absolute;
    bottom: -6%;
    right: 5%;
}

/* コンタクトエリア */
.contact_area {
    background: url(../image/png/image_contact_bg_1253x746.png) center center no-repeat;
    height: 40vw;
    background-size: cover;
    margin-bottom: 8%;
}

.contact_area h2 {
    margin-bottom: 3%;
}

.contact_area h2::before {
    content: "";
    display: inline-block;
    background: url(../image/png/image_deco_01_65x100.png)center center no-repeat;
    width: 5vw;
    height: 7vw;
    background-size: contain;
    vertical-align: -15%;
}

.contact_area h2::after {
    content: "";
    display: inline-block;
    background: url(../image/png/image_deco_01_65x100.png)center center no-repeat;
    width: 7vw;
    height: 7vw;
    background-size: contain;
    vertical-align: -15%;
    transform: scaleX(-1);
    /* 水平反転 */
}

.contact_area span a {
    color: #ea588d;
    background-image: linear-gradient(#e6608d, #e6608d);
    background-size: 0 1px;
    background-position: left bottom;
    background-repeat: no-repeat;
    transition: all 0.5s;
    text-decoration: none;
}

.contact_area span a:hover {
    background-size: 100% 1px;
}

.contact_area p:nth-of-type(3) {
    margin-top: 5%;
}

.contact_area .more_btn a {
    width: 27vw;
    line-height: 3;
}



/* ====================
   responsive
==================== */

@media (min-width: 1441px) {
    .concept_area .concept_text_box {
        width: clamp(810px, calc(56.367vw - 2.255px), 1080px);
    }
}


@media (max-width: 768px) {

    /* header */
    header {
        height: 60vh;
    }


    /* mv */
    .slider .slide1 img,
    .slider .slide2 img,
    .slider .slide3 img,
    .slider .slide4 img {
        width: 125%;
    }

    .mv_area {
        margin-top: 0;
        margin-right: 0;
        top: 15%;
    }

    /* concept */
    .concept_text {
        font-size: 1.5vw;
    }
}


@media (max-width: 510px) {

    /* header */

    header .mv_area .mv_text {
        width: 60%;
    }

    header .mv_text p:first-child {
        font-size: 2.5vw;
    }

    .mv_text p:last-child {
        font-size: 1.6vw;
    }
}

@media (max-width: 500px) {

    /* font-size */
    h2 {
        font-size: 40px;
    }

    h3,
    .flower_area h3,
    .vending_area h3,
    .bouquet_area h4 {
        font-size: 18px;
    }

    .info_area h3 {
        font-size: 15px;
    }

    .bouquet_area .price_text {
        font-size: 11px;
    }

    p,
    .concept_area .concept_text,
    .bouquet_area .bouquet_text,
    .more_btn a {
        font-size: 12px;
    }

    .flower_area .flower_heading_en,
    .vending_area .vending_heading_en,
    .flower_area .flower_annotation {
        font-size: 9px;
    }

    .online_area ul li {
        font-size: clamp(11px, calc(1.6vw + 5px), 13px);
    }

    .online_area ul li span {
        font-size: 7px;
    }

    /* header */
    header {
        background: rgb(232, 181, 181, 0.7);

    }

    /* mv */
    .mv_area {
        margin-top: 7%;
    }


    /* concept area */
    .concept_area {
        background: url(../image/png/bg_flower.png) center center no-repeat;
        width: clamp(375px, calc(100vw - 0px), 500px);
        height: 800px;
        aspect-ratio: 500/800;
    }

    .concept_area .concept_contents {
        padding-bottom: 10%;
    }

    .concept_area .concept_text_box {
        width: auto;
        margin: 2% 0;
    }

    .concept_area .concept_text {
        margin: 0 auto;
        width: 80%;
        line-height: 3;
    }




    /* flower area */
    .flower_area .heading_deco p {
        width: 90%;
        text-align: left;
        margin: 0 auto;
        padding: 0 5%;
    }

    .flower_area .bouquet_area {
        margin: 0 auto;
    }

    .flower_area ul li {
        width: 80%;
        margin-bottom: 5%;
    }

    .flower_area ul li img {
        margin-bottom: clamp(5px, calc(8vw - 25px), 15px);
    }

    .flower_area ul li:nth-child(3),
    .flower_area ul li:nth-child(4) {
        margin-top: 0;
    }

    .flower_area ul li img {
        width: 70%;
    }

    .flower_area .vending_area img {
        width: 50vw;
    }

    .flower_area .vending_more_btn {
        margin: 4% 20% 0 0;
    }



    /* online area */
    .online_area {
        width: 100%;
        margin: 15% auto 0;
    }

    .online_area ul {
        margin-left: 14px;
    }

    .online_area .online_text {
        width: 50%;
    }

    .online_area .more_btn {
        bottom: 10%;
        right: 41%;
    }


    /* info area */
    .info_area {
        margin: 8% 5% 0;
    }

    .info_area ul li {
        width: 90%;
        margin-bottom: 15px;
    }

    .info_area ul li:nth-child(1),
    .info_area ul li:nth-child(2) {
        margin-bottom: 15px;
    }

    .info_area ul li img {
        width: clamp(100px, calc(24vw + 10px), 130px);
    }


    /* access */
    .access_area {
        margin: 8% auto 15%;
    }

    .access_area h2 {
        margin-bottom: 5%;
    }

    .access_area .access_content {
        flex-direction: column;
        width: 100%;
        gap: 10px;
    }

    .access_area .iframeWrapper,
    .access_area .access_text {
        width: 85%;
    }

    .access_area .access_text {
        padding: 3% 8%;
    }


    /* contact */
    .contact_area {
        margin-bottom: 10%;
    }

    .contact_area .more_btn a {
        width: 40vw;
    }

    .contact_area p:nth-child(2) {
        margin-bottom: 10px;
    }

    .contact_area p:nth-child(3) {
        font-size: 9px;
    }


}
