@charset "utf-8";

/*==========================
Article header
========================= */
.mainVisual__wrapper {
    position: relative;
    overflow: hidden;
}

.mainVisual__wrapper .keyImg2,
.mainVisual__wrapper .keyImg,
.mainVisual__wrapper .mainImg {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    opacity: 0;
    animation: bgAnime 15s infinite;
    transition: opacity 1s ease-in-out;
}

.mainVisual__wrapper .keyImg2,
.mainVisual__wrapper .keyImg,
.mainVisual__wrapper .mainImg {
    display: flex;
    align-items: center;
    overflow: hidden;
    width: 100%;
    min-height: 500px;
    height: 50vw;
}

.mainVisual__wrapper .mainImg {
    position: relative;
    background-image: url(../images/MainVisual.jpg);
    background-size: cover;
    background-position: center;
}

.mainVisual__wrapper .keyImg {
    background-image: url(../images/Accessary.jpg);
    background-size: cover;
    background-position: bottom;
    animation-delay: 5s;
}

.mainVisual__wrapper .keyImg2 {
    background-image: url(../images/keyVisual2.jpg);
    background-size: cover;
    animation-delay: 10s;
}

.mainVisual__wrapper .mainImg .vertical-rl {
    margin-left: 6%;
    font-family: "Zen Maru Gothic";
    color: var(--primary-beige);
    font-size: 5.6rem;
    line-height: 1.5;
    letter-spacing: 0.5em;
    font-weight: 700;
    text-shadow: 0 0 4px #4c1900;
}

.mainVisual__wrapper .mainImg .vertical-rl span {
    padding-top: 146px;
    font-size: 2.4rem;
}

.mainVisual__wrapper .keyImg .vertical-rl {
    font-family: "Zen Maru Gothic";
    color: var(--primary-beige);
    font-size: 3.2rem;
    line-height: 1.5;
    letter-spacing: 0.5em;
    font-weight: 700;
    text-shadow: 0 0 4px #4c1900;
    right: 7%;
    animation-delay: 5s;
}

.mainVisual__wrapper .keyImg2 .vertical-rl {
    font-family: "Zen Maru Gothic";
    color: var(--primary-beige);
    font-size: 3.2rem;
    line-height: 1.5;
    letter-spacing: 0.5em;
    font-weight: 700;
    text-shadow: 0 0 4px #4c1900;
    bottom: 8%;
    animation-delay: 10s;
}

@keyframes bgAnime {
    0% { opacity: 0; transform: scale(1.3); }
    10% { opacity: 1; transform: scale(1.2); }
    35% { opacity: 1; transform: scale(1); }
    45% { opacity: 0; transform: scale(1); }
    100% { opacity: 0; transform: scale(1.3); }
}

@media screen and (max-width: 767px) {
    .mainVisual__wrapper .mainImgSP {
        min-height: 630px;
        background-image: url(../images/SP_CafeMainVisual\ 1.jpg);
        background-size: cover;
        background-position: center;
    }

    .mainVisual__wrapper .mainImgSP .vertical-rl {
        writing-mode: vertical-rl;
        position: absolute;
        right: 20px;
        color: var(--primary-beige);
        text-shadow: 0px 0px 4px #4C1900;
        font-family: "Zen Maru Gothic";
        font-size: 3.2rem;
        line-height: 1.3;
        font-weight: 700;
        letter-spacing: 4px;
    }

    .mainVisual__wrapper .mainImgSP .vertical-rl span {
        position: absolute;
        right: 250px;
        font-size: 1.4rem;
        line-height: 1.5;
        letter-spacing: 2px;
        padding: 0;
    }

    .mainVisual__wrapper .keyImgSP {
        background-image: url(../images/Accessary.jpg);
        min-height: 630px;
        animation-delay: 5s;
    }

    .mainVisual__wrapper .keyImgSP .vertical-rl {
        writing-mode: vertical-rl;
        font-size: 2.4rem;
        position: absolute;
        right: 7%;
        animation-delay: 5s;
    }

    .mainVisual__wrapper .keyImg2SP {
        background-image: url(../images/keyVisual2SP.jpg);
        min-height: 630px;
        animation-delay: 10s;
    }

    .mainVisual__wrapper .keyImg2SP .vertical-rl {
        writing-mode: vertical-rl;
        position: absolute;
        top: 30%;
        right: 10%;
        font-size: 2.4rem;
        line-height: 1.3;
        letter-spacing: 4px;
        animation-delay: 10s;
    }
}

/*==========================
section--About
========================= */
.section--About {
    padding: 80px 0 120px;
    position: relative;
}

.About__topic {
    max-width: 1200px;
    margin-left: auto;
    display: grid;
    grid-template-columns: 34% minmax(375px, 100%);
    grid-template-areas:
        "introduction img";
}

.atmosphere {
    width: 20%;
    position: absolute;
    top: 0;
}

.About__introduction {
    grid-area: introduction;
    padding-top: 32px;
    margin-right: 40px;
}

.About__text {
    color: var(--primary-brown);
    font-family: "Zen Maru Gothic";
    font-size: 2.0rem;
    letter-spacing: 0.4em;
    text-decoration: underline;
    text-decoration-color: var(--primary-brown);
    text-decoration-style: dashed;
    margin-bottom: 32px;
}

.About__img {
    grid-area: img;
}

.About__img img {
    height: 474px;
    object-fit: cover;
}

@media screen and (max-width: 767px) {
    .section--About {
        padding: 48px var(--contentPadding);
    }

    .About__topic {
        display: grid;
        grid-template-columns: minmax(var(--contentPadding), 100%);
        gap: 24px;
        justify-content: center;
        grid-template-areas:
            "introduction"
            "img";
    }

    .About__introduction {
        padding-top: 0;
        margin-right: 0;
    }

    .About__img img {
        height: auto;
        object-fit: cover;
    }

    .About__text {
        font-size: 1.8rem;
        margin-bottom: 24px;
    }
}

/*==========================
section Cafe
========================= */
.Cafe {
    padding: 80px 0 0;
}

.Cafe__description {
    max-width: 1200px;
    margin-bottom: 120px;
    display: grid;
    justify-content: start;
    grid-template-columns: minmax(375px, 100%) auto;
    grid-template-areas:
        "Cafe__img Cafe__detail";
}

.Cafe__imgSP {
    display: none;
}

.Cafe__img {
    grid-area: Cafe__img;
    margin-right: 40px;
}

.Cafe__detail {
    grid-area: Cafe__detail;
    padding: 32px 0;
}

.Cafe__img img {
    border-radius: 16px;
}

.Cafe__text1,
.Cafe__text2,
.Cafe__text3 {
    margin-top: 32px;
    font-weight: 700;
}

.Cafe__text2 span {
    background: linear-gradient(transparent 0%, #f6ff5f 0%)
}

@media screen and (max-width: 767px) {
    .Cafe {
        padding: 48px 0 0;
    }

    .Cafe__img {
        display: none;
    }

    .Cafe__imgSP {
        display: block;
    }

    .Cafe__description {
        display: block;
        margin-bottom: 0;
        padding: 0 var(--contentPadding);
    }

    .Cafe__detail {
        padding: 0;
    }

    .Cafe__text1,
    .Cafe__text2,
    .Cafe__text3 {
        margin-top: 24px;
    }
}

/*==========================
section Cafe__section Lunch
========================= */
.Lunch {
    padding: 48px 0 120px;
}

.Lunch .check {
    margin-bottom: 80px;
}

.Menu {
    max-width: 1200px;
    margin: 0 auto;
}

.Menu__imgSP {
    display: none;
}

.Menu__fast {
    margin-bottom: 64px;
    display: grid;
    grid-template-columns: 7% 42% minmax(375px, 100%);
    grid-template-areas:
        ". Menu__description Menu__img";
}

.Menu__img {
    grid-area: Menu__img;
}

.Menu__img img {
    border-radius: 16px;
    height: 434px;
    object-fit: cover;
}

.Menu__description {
    grid-area: Menu__description;
    padding: 32px 0px;
    margin-right: 40px;
}

.Menu__title {
    margin-bottom: 40px;
    text-align: center;
}

.Menu__choice,
.Menu__plus,
.Menu__lunchSet,
.Menu__drink {
    margin-bottom: 8px;
    text-align: center;
    font-weight: 700;
}

.Menu__fixedMenu {
    text-align: center;
    font-weight: 700;
}

.Menu__popular {
    margin-top: 40px;
    color: var(--primary-brown);
    font-family: "Zen Maru Gothic";
    font-size: 2.0rem;
    font-weight: 700;
    letter-spacing: 4px;
}

.Menu__second {
    margin-bottom: 64px;
    display: grid;
    grid-template-columns: minmax(375px, 100%) 42% 7%;
    grid-template-areas:
        "Menu__img Menu__description .";
}

.Menu__img {
    grid-area: Menu__img;
}

.Menu__description {
    grid-area: Menu__description;
}

.Menu__second .Menu__choice {
    margin: 0 auto 8px;
    text-align: justify;
    max-width: 233px;
}

.Menu__twoChoice {
    margin-bottom: 8px;
    text-align: center;
    font-weight: 700;
}

.Menu__third {
    display: grid;
    grid-template-columns: 7% 42% minmax(375px, 100%);
    grid-template-areas:
        ". Menu__description Menu__img";
}

.Menu__img {
    grid-area: Menu__img;
}

.Menu__description {
    grid-area: Menu__description;
}


.Menu__third .Menu__fixedMenu {
    margin-bottom: 8px;
}

@media screen and (max-width: 767px) {
    .Lunch {
        padding: 48px var(--contentPadding);
    }

    .Menu__fast,
    .Menu__second {
        display: block;
        margin-bottom: 48px;
    }

    .Menu__description {
        padding: 0;
        margin: 0;
    }

    .Menu__title {
        margin: 16px 0;
    }

    .Menu__popular {
        margin-top: 16px;
        font-size: 1.8rem;
    }

    .Menu__img {
        display: none;
    }

    .Menu__third,
    .Menu__imgSP {
        display: block;
    }
}

/*==========================
section Cafe__section Sweet
========================= */
/* ▼セクション区切り▼ */
.img1 {
    background-image: url(../images/SweetImg.JPG);
}

.Access::after,
.section--Information::after,
.img1::after {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 120%;
    height: 100px;
    margin: 0 0 -78px -10%;
    border-radius: 100%;
    content: "";
}

.Access::after,
.img1::after {
    background-image: url(../images/BackgroundStone.jpg);
}

.Sweet {
    padding: 80px 0 120px;
    background-image: url(../images/BackgroundStone.jpg);
    position: relative;
}

.Coffee {
    mix-blend-mode: color-burn;
    position: absolute;
    top: 0;
    left: 85%;
}

.Menu__Sweet {
    max-width: 1200px;
    margin: 0 auto 48px;
    display: grid;
    grid-template-columns: minmax(373px, 100%) 42% 7%;
    grid-template-areas:
        "Menu__img Menu__description .";
}

.Menu__img {
    grid-area: Menu__img;
}

.Menu__Sweet .Sweet__img {
    clip-path: inset(90px 0 round 16px);
    /* 画像をトリミング */
    /* 画面サイズに合わせた拡大縮小するが縦横比を維持できるようにトリミング */
}

.Menu__Sweet .Menu__description {
    grid-area: Menu__description;
    padding: 114px 0 0 0;
}

.SweetList {
    max-width: 1200px;
    margin: 0 auto 48px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 373px));
    grid-template-rows: min(248px);
    gap: 40px;
    align-items: center;
}

.SweetItem1,
.SweetItem2 {
    clip-path: inset(63px 0 round 16px);
}

.SweetItem3 img {
    width: 373px;
    height: 248px;
    object-fit: cover;
}

.Cafe__information {
    text-align: center;
    margin-bottom: 16px;
}

.Cupcake {
    mix-blend-mode: color-burn;
    position: absolute;
    bottom: 250px;
    right: 85%;
}

.Cafe__notes {
    text-align: center;
}

.Cafe__information span {
    font-size: 1.8rem;
    font-weight: 700;
}

@media screen and (max-width: 767px) {
    .Sweet {
        padding: 48px var(--contentPadding);
    }

    .Menu__Sweet {
        display: block;
        margin: 0 auto 24px;
    }

    .Menu__Sweet .Menu__description {
        padding: 0;
    }

    .Menu__Sweet .Sweet__img {
        clip-path: none;
    }

    .Menu__Sweet .Sweet__img img {
        height: 256px;
        width: 100%;
        object-fit: cover;
    }

    .SweetList {
        overflow: scroll;
        display: grid;
        grid-template-columns: minmax(260px, 100%) minmax(260px, 100%) minmax(260px, 100%);
        grid-template-rows: min(173px);
    }

    .SweetItem1,
    .SweetItem2 {
        clip-path: none;
    }

    .SweetItem1 img,
    .SweetItem2 img,
    .SweetItem3 img {
        width: 100%;
        height: 173px;
        object-fit: cover;
    }

    .Cafe__information {
        margin-bottom: 48px;
        font-size: 1.6rem;
    }

    .Cafe__notes {
        text-align: start;
    }
}

/*==========================
section Interior
========================= */
/* ▼セクション区切り▼ */
.img2 {
    background-image: url(../images/Table.jpg);
}

.Interior {
    padding: 80px 0 120px;
    position: relative;
}

.Interior__intro {
    margin-bottom: 48px;
    display: grid;
    grid-template-columns: 25% 33% 15% 27%;
    gap: 40px;
    justify-content: flex-end;
    justify-items: end;
    grid-template-areas:
        ". Interior__info Interior__door Interior__counter";
}

.Interior__info {
    grid-area: Interior__info;
    padding: 32px 0;
}

.Interior__door {
    grid-area: Interior__door;
}

.Interior__counter {
    grid-area: Interior__counter;
}

.Interior__door img,
.Interior__counter img {
    border-radius: 16px;
}

.Interior__text {
    color: var(--primary-brown);
    font-family: "Zen Maru Gothic";
    font-size: 2.0rem;
    letter-spacing: 0.4em;
    text-decoration: underline;
    text-decoration-color: var(--primary-brown);
    text-decoration-style: dashed;
    margin-bottom: 32px;
}

.Interior__FloorMap {
    margin: 0 auto 48px;
    width: 678px;
}

.Store {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, auto));
    gap: 40px;
    align-items: start;
}

.Store__img img {
    height: 450px;
    object-fit: cover;
    margin-bottom: 24px;
}

.Store .section__topic {
    text-align: center;
    margin-bottom: 24px;
}

.Store__text {
    margin-bottom: 32px;
    text-align: start;
}

@media screen and (max-width: 767px) {
    .Interior {
        padding: 48px var(--contentPadding);
    }

    .Interior__info {
        display: grid;
        grid-template-columns: 40% 60%;
        grid-template-rows: 96px 96px;
        gap: 24px 16px;
    }

    .Interior__request {
        grid-column: 2/3;
        grid-row: 2/3;
        padding: 16px 0 0 16px;
    }

    .Interior__text {
        grid-column: 1/3;
        grid-row: 1/2;
        font-size: 1.8rem;
    }

    .Interior__intro {
        display: grid;
        grid-template-columns: 40% 50%;
        grid-template-rows: 120px 60px auto;
        gap: 0;
        row-gap: 16px;
        justify-content: space-around;
    }

    .Interior__info {
        grid-column: 1/3;
        grid-row: 1/2;
        padding: 0;
    }

    .Interior__door {
        grid-column: 1/2;
        grid-row: 2/4;
    }

    .Interior__counter {
        grid-column: 2/3;
        grid-row: 3/4;
    }

    .Store__img img,
    .Store .section__topic,
    .Store__text {
        margin-bottom: 16px;
    }

    .Interior__FloorMap {
        max-width: 100%;
    }
}

/*==========================
section Access
========================= */
.Access {
    padding: 80px 0 120px;
    position: relative;
    overflow: hidden;
}

.Access__inner {
    margin-bottom: 48px;
    display: grid;
    grid-template-columns: 434px auto;
    gap: 40px;
    justify-content: center;
    grid-template-areas:
        "Address Map";
}

.Address {
    grid-area: Address;
}

.Address caption {
    color: #823C28;
    text-align: center;
    font-family: "Zen Maru Gothic";
    font-size: 2.0rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 4px;
    margin-bottom: 32px;
}

.Map {
    grid-area: Map;
}

.Access .section__topic {
    padding: 32px 0;
    text-align: center;
}

.Address__infoTitle {
    padding-right: 40px;
    padding-bottom: 40px;
    align-content: space-evenly
}

.Address__text {
    padding-bottom: 40px;
}

@media screen and (max-width: 767px) {
    .Access {
        padding: 48px var(--contentPadding);
    }

    caption {
        margin-bottom: 16px;
    }

    .Access__inner {
        display: block;
        margin-bottom: 0;
    }

    .Access .section__topic {
        padding: 0;
        margin-top: 0;
    }

    .Address__infoTitle {
        padding-right: 8px;
        padding-bottom: 16px;
    }

    .Address__text {
        padding-bottom: 16px;
    }

    .Address {
        padding: 24px 0;
    }
}

/*==========================
section News
========================= */
.section--Information {
    overflow: hidden;
    padding: 80px 0 120px;
    background-image: url(../images/BackgroundStone.jpg);
    position: relative;
}

.section--Information .section__title {
    margin-bottom: 80px;
}

.Ivent {
    max-width: 1200px;
    margin: 0 auto 80px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    position: relative;
}

.Ivent__inner {
    padding: 32px var(--contentPadding) 0;
    background-image: url(../images/SPBackground.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 16px;
    position: absolute;
    left: 5%;
    top: -10%;
}

.Ivent__table {
    width: 400px;
}

.Ivent__title {
    color: var(--primary-brown);
    text-align: center;
    font-size: 2.4rem;
    font-weight: 500;
}

.txt {
    color: var(--primary-brown);
    font-size: 2.4rem;
    font-weight: 700;
}

.day {
    color: var(--primary-beige);
    font-size: 3.2rem;
    font-weight: 700;
}

.surround {
    color: var(--primary-brown);
    font-size: 3.2rem;
    font-weight: 700;
}

.Ivent__info {
    color: #6A4331;
    text-align: center;
    line-height: 1.5;
    padding: 32px var(--contentPadding);
}

.Ivent__frame,
.Ivent__text {
    padding-bottom: 32px;
    text-align: start;
}

.Ivent__img img {
    width: 800px;
    height: 439px;
    object-fit: cover;
}

/* Instagram画像ギャラリー */
.title {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-bottom: 48px;
}

.Instagram__gallery .section__title {
    margin-bottom: 0;
}

/* ▽Instagram埋め込み▽ */

/* Instagramの埋め込み画像コンテナ */
.image-container {
    max-width: 1200px;
    margin: 0 auto;
}

/* Instagram投稿のスタイル */
.instagram-media {
    position: relative;
    overflow: hidden;
    width: 100%;
}

/* 埋め込まれたInstagram画像のスタイル */
.instagram-media blockquote {
    margin: 0;
    padding: 0;
}

/* 画像の中央配置 */
.instagram-media img {
    display: block;
    margin: 0 auto;
}

/* △Instagram埋め込み△ */

@media screen and (max-width: 767px) {
    /* ▼セクション区切り▼ */
    .section--Information::after,
    .Access::after {
        margin: 0 0 -78px -10%;
        /* 余白作成のためのオブジェクトのmargin調整 */
    }

    .section--Information {
        padding: 48px var(--contentPadding);
    }

    .section--Information .section__title {
        margin-bottom: 48px
    }

    .Ivent {
        display: block;
        margin-bottom: 48px;
    }

    .Ivent__inner {
        width: 100%;
        height: auto;
        padding: 8px var(--contentPadding);
        border-radius: 8px;
        margin-top: 16px;
        position: static;
    }

    .Ivent__table {
        width: 100%;
    }

    .Ivent__title {
        font-size: 1.8rem;
        margin-bottom: 24px;
    }

    .txt {
        font-size: 1.8rem;
    }

    .day,
    .surround {
        font-size: 2.4rem;
    }

    .Ivent__frame,
    .Ivent__text {
        padding-bottom: 16px;
    }

    .Ivent__img img {
        height: auto;
        width: 100%;
    }

    .Instagram {
        overflow: scroll hidden;
        justify-content: start;
    }

    .Instagram__gallery .section__title {
        margin-bottom: 0;
    }

    ._ac7v {
        display: block;
    }
}

/*==========================
section Question
========================= */
/* ▼セクション区切り▼ */
.section--Information::after {
    background-image: url(../images/BackgroundColor.jpg);
}

.section--Question {
    padding: 80px 0 120px;
}

.Question__contents {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    padding: 20px var(--contentPadding);
    gap: 40px;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    border-radius: 16px;
    border: 2px dashed var(--primary-brown);
    background: var(--primary-white);
}

.Question__Q {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 32px;
}

.Question__A {
    display: flex;
    align-items: center;
    gap: 20px;
}

.Question__mark {
    color: var(--primary-white);
    display: flex;
    padding: 2px 24px;
    align-items: flex-start;
    border-radius: 50px;
    background: var(--primary-brown);
}

.Answer__mark {
    color: var(--primary-brown);
    display: flex;
    padding: 2px 24px;
    align-items: flex-start;
    border-radius: 50px;
    border: 1px solid var(--primary-brown);
}

.Answer__mark,
.Answer__txt {
    font-weight: 700;
}

@media screen and (max-width: 767px) {
    .section--Question {
        padding: 48px var(--contentPadding);
    }

    .Question__Q {
        margin-bottom: 8px;
    }

    .Question__contents {
        gap: 20px;
    }
}