@charset "utf-8";

/* -----------------------------統一設定 ここから----------------------------- */
/* -----------------------------統一設定 ここから----------------------------- */

:root {
    /* --- カラー（Color） --- */
    --base-color: #faf3e0; /* 背景色 */
    --main-color: #6f4e37; /* メインカラー（コーヒーブラウン） */
    --accent-color: #f27a2c; /* アクセント（ボタンなど） */
    --text-color: #4a3a2a; /* 基本の文字色 */
    --h123-color: #6f4e37; /* 見出しの色 メインと同じ*/
    /* --subtext-color: #8B7A6A; 補足テキスト 2026/1/16時点では利用していない*/
    --ui-color: #ffffff; /* ホワイト要素 */
    --form-color: #d8cfc0; /* ボタンの枠、フォーム背景など */

    --border-color: var(--base-color); /* ヘッダーとフッダーのボーダーカラー */
    --sheet-color: rgb(250, 243, 224, 0.8); /* MV半透明のシート用 */
    --sheet-color_concept: rgb(250, 243, 224, 0.5); /* MV半透明のシート用 */

    /* --- フォントウェイト（太さ） --- */
    --fw-bold: 700; /* ボールド（太字） */
    --fw-medium: 500; /* ミディアム（中太） */
    --fw-regular: 400; /* レギュラー（標準） */

    /*  --- ボタンの枠太さと色 ---  */
    --border-button-bold_color: 3px solid #d8cfc0; /* ボタンの枠の太さ */
    --border-button-radius: 6px; /* 枠の丸み */

    /* --- フォントサイズ --- */
    --fs-h1: 64px;
    --fs-h2: 48px;
    --fs-h3: 36px;
    --fs-h4: 24px;
    --fs-h5: 20px; /* 追加 */
    --fs-body-bold: 16px; /* メインのキャッチコピー用 */
    --fs-Catch-middle-bold: 24px;
    --fs-Catch-large-bold: 48px; /* メインのキャッチコピー用 */
    --fs-body: 16px;
    --fs-small: 12px;

    /* --- フォント種類 --- */
    /* Google Fontsを読み込む */
    --font-jp-round: 'Zen Maru Gothic', sans-serif;
    --font-jp-base: 'Noto Sans JP', sans-serif;
    --font-en-serif: 'Playfair Display', serif;
}

h1,
h2 {
    color: var(--h123-color);
}

h3 {
    font-family: var(--font-jp-round);
    color: var(--text-color);
}

h4 {
    font-family: var(--font-jp-round);
    color: var(--text-color);
}


p {
    font-family: var(--font-jp-base);
    color: var(--text-color);
    line-height: 1.8; /* 文字の行間 */
    letter-spacing: 0.16em; /* 文字間隔 */
}

/* コピーライト */
small {
    font-family: var(--font-en-serif);
    color: var(--main-color);
    font-weight: var(--fw-bold);
}
/* -----------------------------統一設定 ここまで----------------------------- */
/* -----------------------------統一設定 ここまで----------------------------- */

/* -----------------------------ローディング画面 ここから----------------------------- */
/* -----------------------------ローディング画面 ここから----------------------------- */
/* ローディング全体 */
#loading {
    position: fixed;
    inset: 0;
    background: var(--base-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 99999;
}

/* 円のローダー */
.loader {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 6px solid var(--form-color);
    border-top: 6px solid var(--main-color);
    animation: spin 1s linear infinite;
}

/* テキスト */
.loading-text {
    margin-top: 16px;
    font-size: 1rem;
    letter-spacing: 0.08em;
    font-family: var(--font-en-serif);
    color: var(--main-color);
}

/* 回転アニメーション */
/* @keyframesは設計図、spin というアニメの動きを作る */
@keyframes spin {
    /* rotate(0deg) 回ってないスタート時 */
    0% {
        transform: rotate(0deg);
    }
    /* rotate(360deg) 1回転 終了時*/
    100% {
        transform: rotate(360deg);
    }
}
/* -----------------------------ローディング画面 ここから----------------------------- */
/* -----------------------------ローディング画面 ここから----------------------------- */

/* -----------------------------header ここから----------------------------- */
/* -----------------------------header ここから----------------------------- */
/* --- header --- */
header {
    /* ヘッダー全体のスタイル */
    display: flex; /* 横並び */
    justify-content: space-between; /* ロゴとメニューを分ける */
    align-items: center; /* 上下の中央揃い */

    /* 2. サイズの設定 */
    width: 100%; /* 横いっぱい */
    height: 80px; /* figmaのデザインの高さ */
    padding: 0 40px;

    /* 3. 余白と位置の設定 */
    margin: 0 auto; /* 中央揃え */
    padding: 0 40px; /* figmaの左右の余白 ロゴが端っこにぶつからないように */

    background-color: var(--main-color);
}

/* ヘッダーロゴサイズ */
.header_logo {
    height: 80px;
    width: 140px;
}

/* --- ナビゲーション --- */
.header_nav_list {
    display: flex; /* liを横並 */
    padding: 8px 40px;
    gap: 80px;

    /* ナビの枠 */
    display: flex;
    align-items: center;

    /* 線の設定 */
    border: 1px solid var(--border-color);
}

/* ナビの文字 */
.header_nav_list a {
    font-size: var(--fs-body-bold);
    font-family: var(--font-en-serif);
    color: var(--base-color);
}

/* -----------------------------header ここまで----------------------------- */
/* -----------------------------header ここまで----------------------------- */

/* ----------------------------- mv ここから -----------------------------*/
/* ----------------------------- mv ここから -----------------------------*/

/* ‐‐‐ mvのキャッチコピー --- */
.mv {
    position: relative; /* ここを子要素の基準にする 0,0 */
    width: 100%;
    height: 944px; /* 画面いっぱいの高さにする、または固定値を指定 */

    /* 却下、スクロールが気になるので画面の高さ(100vh)からヘッダーの高さ(80px)を引いた分てテスト */
    /* height: calc(100vh - 80px);  */

    /*中身がはみ出てもスクロールバーを出さない */
    /* overflow: hidden; */
}

/* 1440超えても表示できるようにする */
.mv img {
    width: 100%;
    height: 100%; /* ★親と同じ高さにする。これでobject-fitが効くはず */
    object-fit: cover; /* ★これで画像が歪まずに切り抜かれる */
}

/* 半透明の文字ボックス */
.mv_catch_copy {
    position: absolute; /* 親基準に動かす */
    top: 35%;
    left: 50px;
    transform: translateY(-50%); /* 箱の中心を真ん中にする */

    max-width: 659px; /* これ以上はおおきくならないが縮む */
    min-height: 192px; /*  */

    /* 半透明ボックス */
    background-color: var(--sheet-color);
    padding: 24px 48px;
    width: fit-content; /* 文字に合わせて箱を縮める */
}

/* キャッチコピーの文字設定 */
.en_catch {
    font-size: var(--fs-Catch-large-bold);
    font-family: var(--font-jp-round);
    font-weight: var(--fw-bold);
    color: var(--h123-color);

    line-height: 1; /* 文字の行間 */
    letter-spacing: 0.005em; /* 文字間隔 */
    margin-bottom: 24px; /* 英語と日本語の間 */
}

.jp_catch {
    font-size: var(--fs-Catch-middle-bold);
    font-family: var(--font-jp-round);
    font-weight: var(--fw-bold);
    color: var(--h123-color);
}

/*  --- mvボタン配置 ---  */
.mv_buttons {
    position: absolute;
    top: 90%;
    right: 103px;
    transform: translateY(-50%); /* 上下の中央に配置 */
    display: flex;
    gap: 72px; /* ボタン同士の隙間 */
    z-index: 9990; /* h-navより優先度さげないとハンバーガーのメニューに重なる */
}

/* ボタン */
.mv_buttons a {
    display: flex; /* 中身を自由自 */
    justify-content: center; /* 横の真ん中 */
    align-items: center; /* 縦の真ん中 */

    /* ボタンの箱2つのサイズ */
    width: 192px;
    height: 52px;

    /* ボタンの文字と背景色 */
    background-color: var(--accent-color);
    color: var(--ui-color);

    font-family: var(--font-jp-round);

    /* ボタンの枠 */
    border: var(--border-button-bold_color);
    border-radius: var(--border-button-radius);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}

/* --- マウスを乗せた時の設定 --- */
.mv_buttons a:hover {
    /* 背景をコーヒーブラウンに変える */
    background-color: var(--main-color);

    /* 少しだけ上に浮かせる演出（おしゃれに見える） */
    transform: translateY(-3px);

    /* 影をつけて浮かんでいる感じを出すが（左右、上下、ぼかし幅、0.8透明度）でやっとわかるくらい */
    box-shadow: 0 4px 15px rgba(111, 78, 55, 0.8);
}
/* ----------------------------- mv ここまで -----------------------------*/
/* ----------------------------- mv ここまで -----------------------------*/

/* ----------------------------- mvJS ここから -----------------------------*/
/* 全ての画像に共通する設定（まずは全員重ねて隠す） */
.mv img {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0; /* 最初は全員透明 */
    transition: opacity 2s ease; /* 2秒かけてふわっとさせる */
}

/* 「mv_active」というクラスがついた画像だけを表示する */
.mv img.mv_active {
    opacity: 1; /* これがついた時だけ見える */
}
/* ----------------------------- mvJS ここから -----------------------------*/

/* ----------------------------- bodyの豆バックグラウンド ここから -----------------------------*/
/* --- body --- */

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* 画面の高さのびるminを使う。*/
    margin: 0;
    background-color: var(--base-color); /* 画像背景色 */
}

.bg-fixed {
    background-image: url('../img/Bg_Img.png'); /* 背景画像 */
    background-repeat: no-repeat; /* 画像の繰り返し防止 */
    background-size: cover; /* 画像を画面いっぱいに広げる */
    background-position: right; /* 画像を右側に配置する */
    position: fixed; /* スクロールしても背景画像は固定 */

    inset: 0; /* 要素の位置指定（上下左右）top～すべて0の書き方 */
    z-index: -1; /* 一番下 */
}

/* ----------------------------- bodyの豆バックグラウンド ここまで -----------------------------*/

/* --------------- サブタイトル統一設定 ここから ---------------*/
h2 {
    text-align: center; /* 中央 */
    padding: 80px 38px 0 38px; /* 上 右 下 左 の順 */
    /* margin-top: 64px; */
}
h2 .en_sub,
h2 .jp_main {
    display: block; /* spanをブロックに縦にする */
}

h2 .en_sub {
    font-size: var(--fs-body);
    font-family: var(--font-en-serif);
    font-weight: var(--fw-regular);
}

h2 .jp_main {
    font-size: var(--fs-h2);
    font-family: var(--font-jp-round);
    font-weight: var(--fw-bold);

    display: block; /* 縦に並べるため */
    position: relative; /* 疑似線の親にする */
    padding-bottom: 24px; /* 文字と線の間の距離を指定 */
}

/* --- 疑似要素の線 afterで文字の下 --- */
h2 .jp_main::after {
    content: ''; /* 疑似必須 */
    position: absolute; /* 親基準 */
    left: 50%; /* 基準を中央に */
    transform: translateX(-50%); /* 自身の幅の半分戻して完全中央揃え */

    width: 406px; /* 線の長さ */
    max-width: 90%; /* 【重要】画面が406pxより狭い時に、はみ出さないようにする */
    height: 1px; /* 線の太さ */
    background-color: var(--main-color); /* 線の色 */
    bottom: 0; /* jp_mainの下に配置 */
}
/* --------------- サブタイトル統一設定 ここまで ---------------*/

/* --------------- concept ここから ---------------*/
/* 画像の箱 並び設定*/
.concept_content {
    display: flex;

    align-items: flex-start; /* 写真1枚目の上端に合わせる */
    justify-content: center; /* 画面中央に寄せる */
    gap: 180px; /* 写真と文字の間の隙間 */
    margin: 96px auto; /* セクション全体の余白 */
}

/* 画像の小箱で写真管理 画像2枚目 画像3枚目*/
.concept_img {
    display: flex; /* 子要素（img）を並べる */
    flex-wrap: wrap; /* 幅がいっぱいになったら折り返す */
    max-width: 600px;
    max-height: 619px;
    overflow: hidden; /* 619pxより下にはみ出た画像カット */

    row-gap: 32px; /* 上の写真と下の写真の間の隙間 */
    column-gap: 32px; /* 下の2枚の写真同士の横の隙間 */
}

/* 2枚目と3枚目：少し隙間の対処。引いて半分ずつ HTMLの要素取得下記記載でかける様子*/
.concept_img img:nth-child(2),
.concept_img img:nth-child(3) {
    /* 親幅(100%)から隙間(32px)を引いた残りを、2人で等分する計算 */
    width: calc((100% - 32px) / 2);
    /* height: 187px; 縮小自時伸びて表示されるので削除*/
}

/* 右側のキャッチ */
.concept_catch {
    align-items: center; /* 写真の高さに対して文章を上下中央に配置 */
    justify-content: center;
    width: 413px;
}

/* 他統一しているのでサイズだけ指定 */
h4 {
    font-size: var(--fs-h4);
}

/* 他統一しているのでサイズだけ指定 */
p {
    font-size: var(--fs-body);
}

/* 半透明ボックス */
.concept_sheet {
    background-color: var(--sheet-color); /*  */
    width: 413px;
    height: 337px;
    padding: 0px 16px;
}

/* 文字下の間隔 */
.concept_sheet h4 {
    margin-bottom: 32px;
}

.concept_sheet p {
    line-height: 1.8; /* 行間 180% */
    letter-spacing: 0.16em; /* 文字間隔 16% */
    margin-bottom: 1em; /* 文字の改行間 */
}
/* --------------- concept ここまで ---------------*/

/* --------------- recommend_menu ここから ---------------*/

.recommend_catchs {
    display: flex; /* 中の要素を横並びにする魔法の言葉です */
    flex-direction: row;
    justify-self: center;
    gap: 75px; /* 左・中・右 */
    align-items: flex-start; /* 3つの要素の上端を揃えます (中央揃えなら center に変更) */

    max-width: 100%;
    margin: 42px auto 0;
}

.recommend_catch {
    display: flex;
    flex-direction: column;
}

.rec_catchs {
    display: flex;
    flex-direction: row;
    gap: 75px;
}

/* rec_catchの下の間隔 */
.rec_catch h4 {
    padding-bottom: 32px;
}

/* rec_menu */
.rec_menu h4 {
    padding-bottom: 24px;
}

/* rec_menu */
.rec_menu p:not(:last-child) {
    padding-bottom: 72px;
}

/* 上記と同じ下記は上書き、上記はつけない方法 */
/* .rec_menu p:last-child {
padding-bottom: 0;
} */

/* ボタン */
.rec_buttons {
    display: flex;
    margin: 87px auto 177px;
    gap: 72px; /* ボタン同士の隙間 */
    z-index: 9999;
}

.rec_buttons a {
    display: flex; /* 中身を自由自 */
    justify-content: center; /* 横の真ん中 */
    align-items: center; /* 縦の真ん中 */

    /* ボタンの箱2つのサイズ */
    width: 192px;
    height: 52px;

    /* ボタンの文字と背景色 */
    background-color: var(--accent-color);
    color: var(--ui-color);
    font-family: var(--font-jp-round);

    /* ボタンの枠 */
    border: var(--border-button-bold_color);
    border-radius: var(--border-button-radius);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}

/* --- マウスを乗せた時の設定 --- */
.rec_buttons a:hover {
    /* 背景をコーヒーブラウンに変える */
    background-color: var(--main-color);

    /* 少しだけ上に浮かせる演出（おしゃれに見える） */
    transform: translateY(-3px);

    /* 影をつけて浮かんでいる感じを出すが（左右、上下、ぼかし幅、0.8透明度）でやっとわかるくらい */
    box-shadow: 0 4px 15px rgba(111, 78, 55, 0.8);
}

/* --- 特定のボタン（人気メニュー）だけ色を変える 上書き用 --- */
.rec_buttons a.btn_rec {
    background-color: transparent; /* 完全に透明 */
    color: var(--main-color);
    font-family: var(--font-jp-round);

    /* ボタンの枠 */
    border: 2px solid var(--accent-color);
    border-radius: var(--border-button-radius);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}
/* --- 人気メニューボタンだけホバー時の色を変える 上書き用 --- */
.rec_buttons a.btn_rec:hover {
    background-color: var(--accent-color);
    transform: translateY(-3px);
    box-shadow: 0 4px 15px rgba(111, 78, 55, 0.8);
    border: var(--border-button-bold_color);
    border-radius: var(--border-button-radius);
}


/* PHP 対応のため.rec_img img のサイズ指定*/
/* rec_img 画像サイズ制限 */
.rec_img img {
    width: 100%;
    max-width: 400px; /* 最大幅を制限 */
    height: auto;     /* 縦横比を保つ */
    object-fit: cover;/* 画像が歪まないようにする */
}

/* rec_img_wrapper：画像とバッジをまとめる親箱 */
.rec_img_wrapper {
    position: relative;    /* バッジ位置の基準にする */
    display: inline-block; /* 画像サイズに合わせて箱を縮める */
}

/* rec_badge：人気No.1バッジ */
.rec_badge {
    position: absolute;                    /* 親基準で自由に配置 */
    top: 16px;                             /* 上から16px */
    left: 16px;                            /* 左から16px（左上） */

    background-color: var(--accent-color); /* オレンジ背景 */
    color: var(--ui-color);                /* 白文字 */
    font-family: var(--font-jp-round);     /* フォント */
    font-size: var(--fs-small);            /* 小さめのサイズ */
    font-weight: var(--fw-bold);           /* 太字 */

    padding: 6px 12px;                     /* 文字の内側の余白 */
    border-radius: 4px;                    /* 角を少し丸める */
    z-index: 1;                            /* 画像より前面に表示 */
}
/* --------------- recommend_menu ここまで ---------------*/

/* --------------- gallery_img ここから ---------------*/
.gallery_img {
    width: 100%; /* 基本は画面いっぱい*/
    margin: 0 auto; /* 中央寄せ */
    max-width: 1200px; /* これ以上広がらないで画像の上限を決める */

    padding-top: 55px; /* 上余白 */
    padding-bottom: 82px; /* 下余白 */
    padding-left: 20px; /* 左右は82ではなく20 にする*/
    padding-right: 20px; /* 左右は82ではなく20 にする*/
}

/* 画像の配列 */
.gallery_img ul {
    display: grid; /* この箱の中身をエクセルのように並べる宣言 */
    grid-template-columns: repeat(
        3,
        1fr
    ); /* 横：何個並べるか、 frフラクション比率（余りを何個でわけるか）*/
    gap: 82px; /* 画像の間の間隔 */
}

.gallery_img img {
    max-width: 100%; /* 親の幅を超えない設定 */
    height: auto; /* 350＊350の画像 */
}
/* --------------- gallery_img ここまで ---------------*/

/* --------------- access ここから ---------------*/
.access_containers {
    display: flex;
    flex-direction: column; /* 外枠縦 */
}

/* 親要素 横並びにする設定 */
.access_container {
    display: flex; /* 横並び */
    justify-content: center;
    gap: 80px; /* テキストと地図の間の距離 */
    max-width: 1200px; /* 全体の幅 */
    margin: 0 auto; /* 中央寄せ */
    margin-top: 93px;
    margin-bottom: 0;
    align-items: flex-start; /* 上揃え */
}

.access_item {
    display: flex; /* これで横並び（一行） */
    align-items: center; /* アイコンや文字の上下中央を揃える */
    margin-bottom: 80px; /* 次の行との間隔 */

    font-size: var(--fs-h4);
    font-family: var(--font-jp-base);
    color: var(--text-color);
    gap: 1rem;
}

/* 文字を中央にあわせる */
.access_item dt {
    display: flex; /*  これで横並び（一行） */
    align-items: center; /* アイコンや文字の上下中央を揃える */
}

/* ★最後の項目（電話の行）だけ、下の余白を0に上書きする */
.access_item:last-child {
    margin-bottom: 0;
}

.material-icons {
    font-size: 28px;
    color: var(--accent-color); /* アイコンの色変更 */
    margin-right: 16px; /* アイコンと文字にスペース */
}

.map_buttons {
    /* --- ここから修正 --- */
    /* transform: translate(-50%, -50%); 自身の幅の半分(X)と高さの半分(Y)を戻して完全中央へ */
    /* -------------------- */
    display: flex;
    gap: 72px; /* ボタン同士の隙間 */
    z-index: 9999;
    margin: 121px auto 158px;
}

/* ボタンの箱2つのサイズ */
.map_buttons a {
    display: flex; /* 中身を自由自 */
    justify-content: center; /* 横の真ん中 */
    align-items: center; /* 縦の真ん中 */
    width: 192px;
    height: 52px;

    /* ボタンの文字と背景色 */
    background-color: var(--accent-color);
    color: var(--ui-color);
    font-family: var(--font-jp-round);

    /* ボタンの枠 */
    border: var(--border-button-bold_color);
    border-radius: var(--border-button-radius);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}

/* --- マウスを乗せた時の設定 --- */
.map_buttons a:hover {
    /* 背景をコーヒーブラウンに変える */
    background-color: var(--main-color);

    /* 少しだけ上に浮かせる演出（おしゃれに見える） */
    transform: translateY(-3px);

    /* 影をつけて浮かんでいる感じを出すが（左右、上下、ぼかし幅、0.8透明度）でやっとわかるくらい */
    box-shadow: 0 4px 15px rgba(111, 78, 55, 0.8);
}
/* --------------- access ここまで ---------------*/

/* --------------- footer ここから ---------------*/
.footer {
    text-align: center; /* 文字（smallタグなど）を中央に */
    display: flex;
    flex-direction: column; /* 縦に並べる（ナビ、線、コピーライト） */
    align-items: center; /* 横方向の中央寄せ */
}

.footer_nav {
    display: flex;
    justify-content: center; /* ★左右の中央に寄せる */
    align-items: center; /* 上下の中央に寄せる */

    width: 100%;
    height: 80px;
    background-color: var(--main-color);
}

/* --- ナビゲーション --- */
.footer_nav_list {
    display: flex; /* liを横並 */
    background-color: var(--main-color);
    padding: 8px 40px;
    gap: 80px;
}

/* ナビの文字 */
.footer_nav_list a {
    font-size: var(--fs-body-bold);
    font-family: var(--font-en-serif);
    color: var(--base-color);
}

/* ナビの枠 */
.footer_nav_list {
    display: flex;
    align-items: center;

    /* 線の設定 */
    border: 1px solid var(--border-color);
}

/* フッター全体の構成 */
.footer {
    display: flex;
    flex-direction: column;
    align-items: center; /* 全てのパーツを中央寄せ */
    text-align: center;
    padding: 0;
}

/* 連絡先エリア（TEL, EMAIL, ボタン）を縦に並べて中央寄せ */
.footer_contact {
    display: flex;
    flex-direction: column; /* 縦に並べる */
    align-items: center; /* 横方向の真ん中に寄せる */
    gap: 10px; /* 各項目の間の隙間 */
    margin: 5px 0; /* 上下の余白 */
}

/* ボタンのデザイン */
.btn_contact_us {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 192px; /* ボタンの幅 */
    height: 52px;
    background-color: var(--accent-color);
    color: var(--ui-color);
    text-decoration: none;
    transition: 0.3s;

    /* ボタンの枠 */
    border: var(--border-button-bold_color);
    border-radius: var(--border-button-radius);
}

/* ホバー時 */
.btn_contact_us:hover {
    background-color: var(--main-color);
    transform: translateY(-3px);
    box-shadow: 0 4px 15px rgba(111, 78, 55, 0.4);
}

/* フッダーのロゴとimg */
.footer_logo {
    background: no-repeat right url('../img/Footer_Bg.jpg');
    width: 100%; /* ブラウザ幅 */
}

.footer_logo img {
    display: block;
    margin: 0 auto; /* 左右の余白を自動（中央寄せ） */
}
/* --------------- footer ここまで ---------------*/

/* --------------- スクロールアクション ここから ---------------*/
/* --- スクロール前：隠れている状態 --- */
.fade-in {
    opacity: 0; /* 最初は透明で見えない */
    transform: translateY(40px); /* 40pxだけ下に下げておく */
    transition:
        opacity 1s ease-out,
        transform 1s ease-out; /* 1秒かけてゆっくり変化させる */
}

/* --- スクロール後：JSでクラスがついた瞬間の状態 --- */
.fade-in.is-visible {
    opacity: 1; /* 不透明（見える状態）にする */
    transform: translateY(0); /* 元の高さの位置に戻す */
}
/* --------------- スクロールアクション ここまで ---------------*/

/* --------------- contactフォームページ ここから ---------------*/
/* --------------- contactフォームページ ここから ---------------*/
.contact_inner {
    width: 600px; /* 固定幅ではなく最大幅にする（スマホ対策） */
    margin: 36px auto 32px; /* 上・中央・下の順で指定 */
    position: relative; /* 送信ボタン位置のため */
}

.contact_form h3 {
    align-self: flex-start; /* 親上書きして左開始位置に寄せる */
    width: 100%; /* 下の入力項目と幅を合わせると綺麗に揃う */
    margin: 0 auto 36px;
}

.form_item label,
.form_item input,
.form_item select,
.form_item textarea {
    display: block;
    width: 100%;
    margin-bottom: 16px;
    color: var(--text-color);
    /* 枠線を消すのではなく「透明」にしておくと、focus時にガタつかない */
    /* border: 1px solid transparent; */
}

/* label 以外にだけ背景色を付ける */
.form_item :not(label) {
    /* background-color: var(--form-color); */
    /* border: var(--form-color) solid 2px; */
    font-size: var(--fs-body);
    padding: 0 16px;
}

/* label以外の入力項目がクリックされた時 */
.form_item :not(label):focus {
    outline: none; /* ブラウザ標準の青い線を消す */
    background-color: var(--ui-color); /* 背景を白にする（例） */
    border: 1px solid var(--accent-color); /* 入力中だけ細い枠線を出す（例） */
}

/* ブラウザの自動入力（オートコンプリート）の背景色を、自分の変数に変えないと変更できない様子*/
.form_item input:-webkit-autofill,
.form_item textarea:-webkit-autofill,
.form_item select:-webkit-autofill {
    /* 背景色を var(--~color) で塗りつぶす */
    -webkit-box-shadow: 0 0 0px 1000px var(--ui-color) inset !important;
    /* 文字の色も自分の設定に固定する */
    -webkit-text-fill-color: var(--text-color) !important;
}

/* フォームのサイズ指定 */
.form_item input,
.form_item select {
    height: 50px;
}

.form_item textarea {
    height: 100px;
    padding: 16px;
}

/* 送信ボタンのデザイン */
/* wpcf7-form-controlの仕様がinputタグなので、buttonをinput[type="submit"]に変更するだけ */
.btn_submit {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 192px; /* ボタンの幅 */
    height: 52px;
    background-color: var(--accent-color);
    color: var(--ui-color);
    text-decoration: none;
    font-family: var(--font-jp-round);
    font-size: var(--fs-body);
    transition: 0.3s;
    /* margin-top: 24px; */

    margin: 24px auto 32px;

    /* ボタンの枠 */
    border: var(--border-button-bold_color);
    border-radius: var(--border-button-radius);
}

/* ホバー時 */
.btn_submit:hover {
    background-color: var(--main-color);
    transform: translateY(-3px);
    box-shadow: 0 4px 15px rgba(111, 78, 55, 0.4);
}

/* wpcf7-form-controlの仕様がbrつくよなので削除 */
.wpcf7 br {
    display: none;
}

/* WPのプラグインのデフォルト余白つくので必要な部分だけ指定して削除する */
.wpcf7-form-control-wrap {
    display: block;
    margin: 0;
    padding: 0;
}

/* WPのプラグイン　メール送信できない場合に出力される文字とボーダーがでるのでボーダーだけ削除 */
/* !important で強制上書き */
.wpcf7 form .wpcf7-response-output {
    border: none !important;
}

/* --------------- contactフォームページ ここまで ---------------*/
/* --------------- contactフォームページ ここまで ---------------*/

/* --------------- menuページ ここから ---------------*/
/* --------------- menuページ ここから ---------------*/
/* popular_menu */
.popular_menu_inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 35px auto 131px;
}

.popular_menu_content {
    display: flex;
    flex-direction: row;
    margin: 0 auto;
}

.popular_menu_box {
    margin: 0 auto;
}

.popular_menu_list {
    display: flex;
    gap: 90px;
    margin: 35px auto 183px;
}

.menu_text {
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin: 48px 0;
}

/* all_menu */
.all_menu_list {
    display: flex;
    justify-content: center;
    flex-direction: row;
    width: 100%;
    margin: 0 auto 269px;
}

.all_menu_box {
    display: flex;
    flex-direction: row;
    gap: 194px;
    margin: 56px auto 0;
}

.price_list {
    font-size: var(--fs-body);
    font-family: var(--font-jp-round);
    color: var(--text-color);
    line-height: 1.8; /* 文字の行間 */
    letter-spacing: 0.16em; /* 文字間隔 */
}

/* 各メニュー下の間隔の余白 */
.price_list h4,
.drink_price_list li,
.sweets_price_list li,
.food_price_list li {
    margin-bottom: 56px;
}

/* 各メニューのカフェらしくするためprice_list詳細設定 */
/* リスト全体の余白と点の削除はリセットに記載している */
/* liの設定：横並びにして、下側のラインを揃える */
.drink_price_list li,
.sweets_price_list li,
.food_price_list li {
    display: flex; /* 名前・ドット・値段を横一列に */
    align-items: baseline; /* 文字の下側のラインをピシッと揃える */
}

/* フォント文字とフォントサイズ変更 */
/* ※「*」は、liの中にある全て */
.price_list ul li * {
    font-family: var(--font-jp-base);
    font-size: var(--fs-h5);
}

/* 勝手に改行されない */
.item_name {
    white-space: nowrap; /* 勝手に改行されないように設定できる */
}

/* ドット：のびる役割！ */
.item_dots {
    flex: 1; /* 余っているスキマを全部埋めて伸びる */
    border-bottom: 1px dotted var(--text-color); /* 下側にドット線を引く */
    margin: 0 10px; /* 名前と値段との間に少しスキマを作る */
    position: relative; /*  position: relative;とtop‐4で位置調整 */
    top: -4px; /* ドットの高さを文字の真ん中くらいに微調整 */
    min-width: 30px; /* 一番上のドットをつけて合わせるため */
}

/* 3. 値段：右側に固定 */
.item_price {
    white-space: nowrap; /* 勝手に改行されないように設定できる */
    font-weight: var(--fw-bold); /* 値段だけ太文字採用 */
}

/* ボタンのデザイン .btn_contact_usと併用*/
/* ボタンの位置 */
.contact_buttons {
    display: flex;
    flex-direction: row;
    justify-content: center;
    margin-bottom: 79px;
}
/* --------------- menuページ ここまで ---------------*/
/* --------------- menuページ ここまで ---------------*/

/* --------------- newsページ ここから ---------------*/
/* --------------- newsページ ここから ---------------*/
/* 1. fooderを画面下に配置。bodyをFlexboxにして、縦並びにする bodyは前述に記載*/

/* 2. main（中身）だけやる気をだして「伸びる」設定にする */
main {
    flex: 1; /* ★重要 残りのスペースをmainがすべて埋める */
}

.news_inner {
    height: auto;
    margin: 35px auto;
}

.news_content,
.news_box {
    display: flex;
    flex-direction: row;
    justify-content: center;
    margin-bottom: 89px;
}

.news_list {
    font-size: var(--fs-h4);
    font-family: var(--font-jp-round);
    color: var(--text-color);
    line-height: 1.8; /* 文字の行間 */
    letter-spacing: 0.16em; /* 文字間隔 */
}

.news_list li {
    /* メリット: 日付の長さが変わっても、常に一定の隙間を保てる */
    display: flex; /* 横並びにする */
    gap: 1em; /* 日付とテキストの間の隙間を固定する */

    border-bottom: var(--text-color) solid 1px;
    padding: 1em 0; /* ラインの上下に1emのスキマを作る */
}

/* 一番上の項目だけに上線を追加 */
.news_list li:first-child {
    border-top: var(--text-color) solid 1px;
}
/* --------------- newsページ ここまで ---------------*/
/* --------------- newsページ ここまで ---------------*/

/* --------------- sns-icons ここから ---------------*/
/* --------------- sns-icons ここから ---------------*/

/* リストを横に並べる */
.sns-icons {
    display: flex;
    gap: 20px; /* アイコンの間隔 */
    padding: 0;
}

/* リンクの装飾を消す */
.sns-icons a {
    text-decoration: none;
    color: #333;
    font-size: 16px;
}

/* アイコン個別に色をつける場合 */
.fa-instagram {
    color: #e1306c;
} /* インスタカラー */
.fa-x-twitter {
    color: #000000;
} /* Xの黒 */
.fa-twitter {
    color: #1da1f2;
} /* Twitterの青 */
.fa-facebook {
    color: #1877f2;
} /* Facebookの青 */

/* --------------- パンくずリスト ここから ---------------*/
.pan {
    width: 100%;
    display: flex;
    justify-content: flex-end; /* 左寄せ */
}

/* --------------- 送信確認 ここから ---------------*/
.contact_inner_in p,
.contact_inner_in label {
    display: flex;
    flex-direction: column;
}

.form_buttons p {
    display: flex; /* フレックスボックスを有効にする */
    flex-direction: row; /* 子要素を縦並びにする */
}

/* --------------- 送信完了 ここから ---------------*/

.contact_form_send {
    display: flex; /* フレックスボックスを有効にする */
    flex-direction: column; /* 子要素を縦並びにする */
    align-items: center; /* 横方向を中央寄せにする */
    justify-content: center; /* 縦方向を中央寄せにする */
    text-align: center; /* テキストを中央揃えにする */
}


