@charset "utf-8";

/* ===================== 
common
===================== */
:root {
    --primary-beige: #FAF6E9;
    --primary-brown: #823C28;
    --primary-darkbrown: #6A4331;
    --primary-black: #494949;
    --primary-orange: #DE4708;
    --primary-white: #FAFAFA;
    --contentWidth: 92.3%;
    /* SPのコンテンツ幅(360/390) */
    --contentPadding: 4.2%;
    /* PC/SP共通のpadding */
}

html {
    font-size: 62.5%;
    /* htmlのフォントサイズを62.5%に設定し、10pxに変換　1rem=10px remの単位を使うため */
}

body {
    font-family:
        "Noto Sans JP",
        "Zen Maru Gothic",
        serif;
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.8;
    color: var(--primary-black);
    background-color: var(--primary-beige);
}

.article__header {
    overflow: hidden;
}

img {
    height: auto;
    /* この2行は決まり文句 */
    border-radius: 16px;
}

.visually-hidden {
    position: absolute;
    clip: rect(0 0 0 0); /* 要素を画面外に隠す */
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    white-space: nowrap; /* テキストが改行されないように */
    border: 0;
  }

.section__img {
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    position: relative;
    height: 50vh;
    background-attachment: fixed;
    background-size: cover;
    background-position: center;
}

.vegetableStore::after,
.Gallery::after,
.section__img::after {
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 120%;
    height: 100px;
    margin: 0 0 -78px -10%;
    border-radius: 100%;
    background-image: url(../images/BackgroundColor.jpg);
    content: "";
}

.ellipse {
    display: block;
    position: relative;
    right: 0;
    bottom: 22px;
    left: 0;
    width: 120%;
    height: 100px;
    margin: 0 0 -78px -10%;
    border-radius: 100%;
    background-image: url(../images/BackgroundColor.jpg);
    content: "";
}

.content__title,
.section__title {
    font-family: "Zen Maru Gothic";
    color: var(--primary-brown);
    font-weight: 700;
    font-size: 3.2rem;
    /* 32pxをremに変換 */
    line-height: 1.5;
    /* 行の高さ */
    letter-spacing: 5px;
    text-align: center;
}

.section__title {
    margin-bottom: 48px;
}

.check {
    display: flex;
    justify-content: center;
    font-weight: 700;
    margin-bottom: 48px;
}

.check::before {
    content: "※";
}

.section__topic,
.Menu__title {
    font-family: "Zen Maru Gothic";
    color: var(--primary-brown);
    font-weight: 700;
    font-size: 2.4rem;
    line-height: 1.5;
    letter-spacing: 4px;
}

.brSP {
    display: none;
}

.brPC {
    display: block;
}

.btn {
    cursor: pointer;
    display: block;
    margin: 0 auto;
    text-align: center;
    height: 50px;
    max-width: 343px;
    border: 3px solid var(--primary-beige);
    border-radius: 16px;
    background-color: var(--primary-orange);
    color: var(--primary-white);
    font-weight: 500;
    line-height: 1;
    padding: 16px 32px 18px;
    box-shadow: 6px 11px 0 0 rgba(115, 48, 28, 0.61);
    position: relative;
    transition: 0.4s;
}

.btn:hover {
    box-shadow: 21px 18px 0 0 rgba(115, 48, 28, 0.61);
    transform: translateX(-8px);
    transform: translateY(-4px);
}

.btn:active {
    box-shadow: 0 0;
    transform: translateY(4px);
}

.btn::before {
    content: "";
    margin: auto;
    position: absolute;
    top: 2px;
    bottom: 0;
    left: 271px;
    width: 13px;
    /* くの字を山なりに見た時、左側の長さ */
    height: 13px;
    /* くの字を山なりに見た時、右側の長さ */
    border-top: 2px solid var(--primary-beige);
    /* くの字を山なりに見た時、左側の太さと色 */
    border-right: 2px solid var(--primary-beige);
    /* くの字を山なりに見た時、右側の太さと色 */
    transform: rotate(45deg);
    /* くの字の向き */
    transition: 0.3s;
}

.btn::after {
    content: '';
    width: 39px;
    height: 2px;
    position: absolute;
    top: 50%;
    right: 53px;
    transition: all .2s linear;
    background-color: var(--primary-beige);
}

.btn:hover::before {
    left: 315px;
    transition: 0.3s;
}

.btn:hover::after {
    right: 10px;
    width: 67px;
}

@media screen and (max-width: 767px) {
    body {
        font-size: 1.4rem;
    }

    img {
        border-radius: 8px;
    }

    .section__img {
        background-attachment: unset;
    }

    .content__title,
    .section__title {
        font-size: 2.4rem;
        line-height: 1.5;
        letter-spacing: 4px;
    }

    .section__title {
        margin-bottom: 48px;
    }

    .check {
        text-align: start;
    }

    .section__topic,
    .Menu__title {
        font-size: 2.0rem;
        letter-spacing: 5px;
        text-align: center;
        margin-bottom: 16px;
    }

    .brSP {
        display: block;
    }

    .brPC {
        display: none;
    }
}

/* ===========================
header
============================== */
.header__container {
    height: 143px;
    padding: 20px 0;
    background-color: rgba(243, 240, 233, 0.20);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}

.header {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.breadcrumb *,
.breadcrumb *:after,
.breadcrumb *:before {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.breadcrumb {
    margin: 1em auto;
    padding: 1em 2em;
    background-color: var(--primary-beige);
    color: var(--primary-white);
    border-radius: 0.5em;
}

.breadcrumb a {
    text-decoration: none;
    color: var(--primary-brown);
}

.breadcrumb .breadcrumbs {
    padding-left: 0;
    margin-top: 0;
    margin-bottom: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
}

.breadcrumb li {
    display: inline-block;
    position: relative;
    padding-right: calc(16px + 8px);
    margin-right: 8px;
    color: var(--primary-brown);
}

.breadcrumb li::before {
    content: '>';
    width: 1em;
    height: 1em;
    line-height: 1;
    text-align: center;
    font-size: 1em;
    color: inherit;
    position: absolute;
    top: 50%;
    right: 0;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

.breadcrumb li:last-of-type::before {
    content: '';
}

.nav__list {
    display: flex;
    align-items: center;
    gap: 63px;
}

.nav__itemSP,
.nav__item {
    color: var(--primary-beige);
    text-shadow: 0px 0px 4px #4C1900;
}

.nav__topic,
.nav__itemSP,
.nav__header,
.header__btn,
.SPnav__icon img,
.nav__itemHover,
.header__container:hover .nav__itemSP,
.menu__triggerMob {
    display: none;
    /* ナビゲーションの最初TOPは削除 */
    /* Xボタンとハンバーガーメニューは削除 */
}

/* header_hover */

@media (any-hover: hover) and (pointer: fine) {
    .header__container {
        height: 143px;
        padding: 20px 0;
        background-color: rgba(243, 240, 233, 0.20);
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 100;
    }

    .header__container:hover {
        background-image: url('../images/BackgroundStone.jpg');
        background-size: contain;
        opacity: 1;
    }
}

.header__container:hover .header__topic:hover {
    opacity: 0.6;
}

.header__container:hover .nav__itemHover {
    display: block;
}

.header__container:hover .nav__list {
    gap: 0;
}

.header__container:hover .nav__item {
    color: var(--primary-brown);
    text-shadow: 0px 0px 4px #D9D7CA;
    margin-right: 30px;
}

.header__container:hover .nav__item:hover {
    color: #DE4708;
    text-shadow: 0px 0px 4px #FAFAFA;
}

.header__container:hover .nav__item {
    border-left: 3px dotted var(--primary-brown);
    height: 42px;
    padding: 0 0 0 30px;
    display: grid;
    place-items: center;
}

/* header_hover */

@media screen and (max-width: 767px) {
    .header {
        max-width: 100%;
    }

    .header__container {
        max-width: 100%;
        height: 80px;
        padding: 8px 5.3%;
        /* 20 / スマホ幅375(%) = 0.053*100 = 5.3% */
        /* 左右に伸び縮をしてほしいからの設定 */
    }

    .header__topic {
        display: block;
        width: 66px;
    }

    .nav__topic img {
        width: 103px;
    }

    .nav {
        background: transparent;
        /* 背景色を無くす */
        width: auto;
        /* 親要素の横幅に合わせる */
        /* 初期値に戻す */
        height: auto;
        /* 親要素の横幅に合わせる */
        /* 初期値に戻す */
        padding: 0;
        /* 初期設定 */
        position: static;
        /* 元ある位置に */
        transform: translate(0);
        /* ずらす設定をなしにする */
    }

    /* .nav初期表示 */
    .nav {
        background-image: url(../images/SPBackground.jpg);
        background-repeat: no-repeat;
        background-size: cover;
        width: 100%;
        /* 画面いっぱいに広げたい */
        height: 100vh;
        /* 画面いっぱい広げたい */
        position: fixed;
        top: 0;
        left: 0;
        z-index: 100;
        /* 背景に潜ったりしないように設定 */
        transform: translateX(-100%);
        /* X軸の-方向にずれてほしい */
        transition: transform 0.6s ease;
        /*transformのみ0.4sのAnimationかける設定となる（プロパティ）*/
    }

    .nav__header {
        padding: 4px 6.4% 16px;
    }

    /* ▼ハンバーガーメニュー▼ */
    /* ボタン本体 */
    .header__btn {
        display: block;
        /* ボタンの横幅 */
        width: 50px;
        /* 中の線を親要素基準で位置指定したいので親要素の設定 */
        position: relative;
        /* マウスを乗せたときに指マークに変わるように */
        cursor: pointer;
        z-index: 100;
    }

    /* 三本線の真ん中 */
    .header__btn span {
        /* 親要素基準で位置決めする宣言 */
        position: absolute;
        /* 親要素の上からの位置(中央揃えになるように50％から線の太さの半分を引く) */
        top: calc(50% - 1.5px);
        /* 親要素の右からの位置 */
        right: 3px;
        /* サイズ指定するためにインライン→ブロック要素に変換 */
        display: block;
        /* 線の横幅 */
        width: 45px;
        /* 線の太さ */
        height: 3px;
        /* 線の色 */
        background-color: var(--primary-brown);
        box-shadow: 0px 0px 4px 0px var(--primary-white);
        /* 線の角丸 */
        border-radius: 4px;
        /* 何か変化があった場合0.5秒かけてアニメーションで滑らかに繋ぐ設定 */
        transition: all 0.5s ease;
    }

    /* 三本線の上と下 */
    .header__btn span::before,
    .header__btn span::after {
        /* 本来は文字等を入れるやつ、入れない場合も擬似要素作る時は必須 */
        content: "";
        /* サイズ指定するためにインライン→ブロック要素に変換 */
        display: block;
        /* 線の横幅 */
        width: 55px;
        /* 線の太さ */
        height: 3px;
        /* 線の色 */
        background-color: var(--primary-brown);
        box-shadow: 0px 0px 4px 0px var(--primary-white);
        /* 線の角丸 */
        border-radius: 4px;
        /* 親要素基準で位置決めする宣言(今回の親要素は三本線の真ん中) */
        position: absolute;
        /* 真ん中の線より20px上に配置 */
        top: -14px;
        /* 右寄せ */
        right: 0;
        /* 何か変化があった場合0.5秒かけてアニメーションで滑らかに繋ぐ設定 */
        transition: all 0.5s ease;
    }

    .header__btn span {
        width: 30px;
    }

    
    /* 三本線の下 */
    .header__btn span::after {
        /* 線の横幅 */
        width: 15px;
        /* 真ん中の線より20px下に配置 */
        top: 14px;
    }
    
    /* ボタンがタッチされた時の三本線 */
    .header__btn:active span,
    .header__btn:active span::before,
    .header__btn:active span::after {
        /* 全て横幅は60pxに */
        width: 60px;
    }

    /* ボタンに.header__btn-activeが追加された時の、三本線の真ん中 */
    .header__btn-active .header__btn span {
        /* 線の色透明に */
        background-color: transparent;
        box-shadow: none;
    }

    /* ボタンに.header__btn-activeが追加された時の、三本線の上 */
    .header__btn-active .header__btn span::before {
        /* 線の横幅 */
        width: 60px;
        /* 真ん中の線と同じ位置に */
        top: 0;
        /* 45度回転 */
        transform: rotate(45deg);
    }

    /* ボタンに.header__btn-activeが追加された時の、三本線の下 */
    .header__btn-active .header__btn span::after {
        /* 線の横幅 */
        width: 60px;
        /* 真ん中の線と同じ位置に */
        top: 0;
        /* -45度回転 */
        transform: rotate(-45deg);
    }

    /* ▲ハンバーガーメニュー▲ */

    .nav.active {
        transform: translateX(0);
    }

    .header__container:hover .nav__list,
    .header__container:hover .nav__itemHover,
    .header__container:hover .nav__item {
        border-left: none;
        /* スタイルをリセット */
        height: auto;
        padding: 0;
        display: none;
        place-items: unset;
        color: inherit;
        /* 元の色に戻す */
        text-shadow: none;
        margin-right: 0;
    }

    .nav__topic {
        width: 20%;
    }

    .nav.active .nav__topic,
    .nav.active .nav__list,
    .nav.active .nav__itemSP,
    .nav.active .nav__item {
        display: block;
        color: var(--primary-beige);
        text-shadow: 0px 0px 4px #4C1900;
        margin: 0 auto 39px;
    }

    .nav.active .nav__itemSP,
    .nav.active .nav__item {
        display: flex;
        align-items: center;
        gap: 24px;
        padding: 0 24%;
        margin-bottom: 48px;
    }

    .nav__header img {
        width: 15%;
        margin-left: 70%;
    }

    .nav__header,
    .SPnav__icon img {
        display: block;
    }

    .menu__triggerMob {
        display: flex;
        align-items: center;
    }

    .TouchBefore {
        width: 55%;
    }

    .TouchAfter {
        display: none;
    }

    .header__btn-active .TouchBefore {
        display: none;
    }

    .header__btn-active .TouchAfter {
        display: block;
        width: 45%;
        margin-right: 18px;
    }
}

/* sp 767px */

/*==========================
footer__btn
========================= */
.ToCafe {
    background: linear-gradient(180deg, rgba(35, 48, 0, 0.60) 2.02%, rgba(35, 48, 0, 0.00) 30%), url(../images/Applepie.jpg);
}

.ToVegetable {
    background: linear-gradient(180deg, rgba(35, 48, 0, 0.60) 2.02%, rgba(35, 48, 0, 0.00) 30%), url(../images/SeasonVegetable.jpg);
}

.ToCafe,
.ToVegetable {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: var(--primary-white);
}

.ToHandmade {
    background: linear-gradient(180deg, rgba(35, 48, 0, 0.60) 2.02%, rgba(35, 48, 0, 0.00) 30%), url(../images/Accessary.jpg);
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: cover;
    color: var(--primary-white);
}

.ToVegetable::before,
.ToHandmade::before {
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 65px;
    right: 29%;
    width: 20px;
    /* くの字を山なりに見た時、左側の長さ */
    height: 20px;
    /* くの字を山なりに見た時、右側の長さ */
    border-top: 5px solid var(--primary-beige);
    /* くの字を山なりに見た時、左側の太さと色 */
    border-right: 5px solid var(--primary-beige);
    /* くの字を山なりに見た時、右側の太さと色 */
    transform: rotate(45deg);
    /* くの字の向き */
    transition: 0.3s;
}

.ToCafe::before {
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 65px;
    left: 29%;
    width: 20px;
    height: 20px;
    border-top: 5px solid var(--primary-beige);
    border-right: 5px solid var(--primary-beige);
    transform: rotate(225deg);
    transition: 0.3s;
}

.ToCafe::after {
    content: "";
    width: 48px;
    height: 5px;
    position: absolute;
    top: 37%;
    left: 29%;
    transition: all .2s linear;
    background-color: var(--primary-beige);
}

.ToHandmade::after,
.ToVegetable::after {
    content: "";
    width: 48px;
    height: 5px;
    position: absolute;
    top: 37%;
    right: 29%;
    transition: all .2s linear;
    background-color: var(--primary-beige);
}

.ToCafe img:hover,
.ToHandmade img:hover,
.ToVegetable img:hover {
    transform: scale(1.1, 1.1);
}

.footer__btnGroup {
    padding: 80px 0 120px;
}

.footer__btn {
    display: flex;
    align-items: center;
    margin-bottom: 80px;
}

.box1,
.box2,
.box3 {
    overflow: hidden;
    width: 100%;
}

.footer__btn .ToCafe,
.footer__btn .ToHandmade,
.footer__btn .ToVegetable {
    display: block;
    min-height: 267px;
    width: 100%;
    border-right: 2px solid var(--primary-white);
    text-align: center;
    font-size: 3.2rem;
    font-weight: 700;
    position: relative;
    transition: 0.4s;
    line-height: 4.8rem;
    text-shadow: 0px 0px 4px #4C1900;
}

.footer__btn span {
    font-weight: 400;
    font-size: 2.0rem;
    line-height: 1.4;
    letter-spacing: 1px;
    text-shadow: 0px 0px 4px #4C1900;
}

.box1:hover .ToCafe,
.box2:hover .ToHandmade,
.box3:hover .ToVegetable {
    transform: scale(1.2, 1.2);
}

.footer__btn a {
    display: inline-block;
    width: 100%;
    padding-top: 70px;
}

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

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

    .footer__btn .ToCafe,
    .footer__btn .ToHandmade,
    .footer__btn .ToVegetable {
        min-height: 200px;
        font-size: 2.4rem;
        padding: 18px;
    }

    .footer__btn span {
        font-size: 1.6rem;
    }

    .ToCafe::after,
    .ToCafe::before {
        left: 80px;
    }

    .ToHandmade::after,
    .ToVegetable::after,
    .ToCafe::after {
        top: 22%;
    }

    .ToHandmade::before,
    .ToVegetable::before,
    .ToCafe::before {
        bottom: 107px;
    }

    .ToHandmade::before,
    .ToHandmade::after,
    .ToVegetable::before,
    .ToVegetable::after {
        right: 80px;
    }
}

/*==========================
article__footer
========================= */
.img3 {
    background-image: url(../images/Exterior.JPG);
}

.article__footer {
    padding: 24px 0;
}

.pageTop {
    position: relative;
}

.pageTop__text {
    position: absolute;
    left: 45%;
    top: 40px;
    z-index: 50;
    color: var(--primary-beige);
    text-shadow: 0px 0px 4px #4C1900;
    font-family: "Zen Maru Gothic";
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
}

.pageTop__img {
    width: 10%;
    margin: 0 auto;
    display: block;
}

.footer__group {
    padding: 0 0 24px;
    margin: 0 auto;
    display: flex;
    max-width: 1200px;
    justify-content: center;
    flex-wrap: wrap;
    gap: 64px;
    position: relative;
}


.pageTop:hover .pageTop__text {
    color: var(--primary-orange);
    text-shadow: 0px 0px 4px var(--primary-white);
}

.footerTitle span {
    position: absolute;
    top: 20%;
    left: 0;
}

.footerTitle img {
    width: 138px;
    height: 138px;
    object-fit: contain;
}

.footerNav__list {
    color: var(--primary-brown);
    font-weight: 700;
}

.footerNav__item {
    display: flex;
    gap: 24px;
    margin-bottom: 16px;
}

.footerNav__item:last-of-type {
    margin-bottom: 0;
}

.footerNav__item:hover {
    color: var(--primary-orange);
}

.footerSNS__title {
    margin-bottom: 24px;
    color: var(--primary-brown);
    line-height: 1.5;
}

.footerNav,
.SNS {
    border-left: 3px dotted var(--primary-brown);
    padding: 0 0 0 64px;
}

.footerSNS__item {
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 24px;
    align-self: stretch;
}

.footerSNS__item:last-of-type {
    margin-bottom: 0;
}

.SNS__icon img {
    border-radius: 0;
}

.SNS__Account {
    font-weight: 600;
}

.SNS__txt {
    color: var(--primary-brown);
}

.SNS__txt span {
    position: absolute;
    top: 0;
    right: -5%;
}

/*==========================
footer
========================= */
.article__footer .btn {
    margin: 80px auto 120px;
}

.footer {
    background-image: url(../images/BackgroundStone.jpg);
    padding: 30px 0;
    display: flex;
    justify-content: space-evenly;
    font-size: 1.2rem;

}

.copy {
    font-size: 1.2rem;
    color: var(--primary-brown);
    line-height: 1.5;
}

@media screen and (max-width: 767px) {
    .article__footer {
        padding: 0 var(--contentPadding) 16px;
    }

    .footer__group {
        gap: 24px;
        padding: 0;
        justify-content: start;
    }

    .pageTop {
        border-bottom: 3px dotted var(--primary-brown);
    }

    .pageTop__text {
        top: 10px;
        left: 30%;
    }

    .pageTop__img {
        width: 25%;
    }

    .footerTitle {
        display: grid;
        align-items: center;
    }

    .footerTitle span {
        top: -110px;
    }

    .footerTitle img {
        width: 108px;
    }

    .footerNav__item {
        margin-bottom: 8px;
    }

    .footerSNS__title {
        margin-bottom: 8px;
    }

    .footerNav,
    .SNS {
        border-left: none;
        padding: 0;
    }

    .SNS {
        border-top: 3px dotted var(--primary-brown);
        width: 100%;
        padding-top: 24px;
    }

    .footerSNS__item {
        margin-bottom: 8px;
    }

    .SNS__txt span {
        left: 70%;
        top: -110px;
    }

    .footer {
        padding: 15px 0;
    }
}

/*==========================
privacy policy
========================= */

/* プライバシーポリシーのタイトル */
.privacy-policy-title {
    text-align: center;
    font-size: 2rem;
    padding: 20px;
    background-color: #4CAF50;
    color: white;
    margin-top: 120px;
}

/* 各セクションのスタイル */
.privacy-policy-section {
    margin: 20px auto;
    padding: 20px;
    max-width: 800px;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* 各セクションの見出し */
.privacy-policy-subtitle {
    font-size: 1.5rem;
    color: #4CAF50;
    margin-bottom: 10px;
}

/* 段落のスタイル */
.privacy-policy-text {
    font-size: 1rem;
    margin-bottom: 10px;
    color: #555;
}

/* リストのスタイル */
.privacy-policy-list {
    list-style-type: disc;
    margin-left: 20px;
}

/* リストアイテムのスタイル */
.privacy-policy-list-item {
    margin-bottom: 8px;
}

/* レスポンシブデザイン - 小さな画面（スマートフォンなど）に対応 */
@media (max-width: 768px) {
    .privacy-policy-section {
        margin: 20px var(--contentPadding);
    }

    .privacy-policy-section {
        padding: 15px;
    }

    .privacy-policy-title {
        font-size: 1.8rem;
    }

    .privacy-policy-subtitle {
        font-size: 1.3rem;
    }

    .privacy-policy-text {
        font-size: 0.95rem;
    }

}