
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}


body {
    font-family: 'Noto Serif JP', serif, sans-serif; 
    color: #444; 
    line-height: 1.6;
    background-color: #f7f5f2;
	margin-top: 45px;
}

a {
    color: #604c3f; 
    text-decoration: none;
}

.section-padding {
    padding: 40px 8%; 
}


.section-title {
    text-align: center;
    font-size: 1.8rem;
	margin-top:50px;
    margin-bottom: 50px;
    color: #604c3f;
}


.header {
    /* 背景色や影などを設定 */
    background-color: #f7f5f2;
    padding: 15px 5%; /* 左右に余白を設定 */

    /* Flexboxでロゴとナビゲーションを横並びにする */
    display: flex;
    justify-content: space-between; /* 要素を左右に分ける */
	align-items: center; /* 高さ中央 */
	position: fixed; /* 画面に固定 */
    top: 0; 
	left: 0;
    width: 100%;     /* 幅を画面全体にする */
    z-index: 1000;    /* 他のコンテンツの上に表示 */
}


.logo {
    font-family: 'Hannari Mincho', serif; 
    font-size: 2rem;
    color: #604c3f;
    text-decoration: none;
    font-weight: 700;
}

.header-right {
        display: block; 
    }

.logoimg{
	width:110px;
	height: auto;
}

.txt-mini{
	font-size: 70%;
	color: 604c3f;
}


.nav-menu {
    display: flex; 
    list-style: none;
    padding: 0;
    margin: 0;
}

.nav-menu li {
    margin-left: 30px; 
}

.nav-menu a {
    color: #444;
    font-size: 1rem;
}

.nav-menu a:hover {
    color: #604c3f;
}

.p-ttl{
	font-size: 1.3rem;
    margin-bottom: 10px;
    color: #604c3f;
	font-weight: 500;
}

.p-no-ttl{
    margin-bottom: 50px;
    color: #604c3f;
	text-align: center;
}


.btn-booking {
    border: 1px solid #604c3f;
    padding: 8px 15px;
    border-radius: 4px;
    background-color: #604c3f;
    color: #fff !important;
    font-weight: bold;
}

.btn-booking:hover {
    background-color: #a37b6a;
    border-color: #a37b6a;
}


.menu-toggle {
    display: none;
}


.menu-items-container {
    display: flex;
    /* デフォルトの縦の間隔を統一 */
    gap: 20px; 
}

/* ★★ メニュー項目全体 (全6カラム) のレイアウトを再設定 ★★ */
    .menu-items-container {
        display: flex; /* Flexboxを再有効化 */
        flex-wrap: wrap; /* カラム落ちを有効にする */
    }

    .menu-column {
        /* 300px以下でカラム落ちするように設定 */
        flex: 1 1 250px; /* 伸縮(1), 縮小(1), 基準幅(250px) */
        min-width: 250px; /* 念のため最小幅も250pxに設定 */
        box-sizing: border-box; 
        padding: 0 10px; /* カラム同士の隙間の調整 */
        margin-bottom: 20px; /* 落ちたカラム間の縦の隙間 */
    }



/* ================================================== */
/* ★★★ ご予約方法セクション (#booking) ★★★ */
/* ================================================== */

/* 予約方法セクションのコンテナ */
.booking-grid {
    gap: 20px; 
    margin: 0 auto;
    text-align: center; /* モバイルでの中央寄せ */
}


.booking-item {
    position: relative; 
    padding: 40px 20px 30px 20px; 
    border-radius: 8px;
    overflow: hidden; 
}

/* ------------------------------------- */
/* デザイン共通/個別スタイル */
/* ------------------------------------- */

.booking-icon-ttl {font-size: 1em; color: #fff;}

/* アイコンサークル */
.booking-icon-circle {
    width: 100px; height: 100px; border-radius: 50%; 
    display: flex; justify-content: center; align-items: center;
    margin: 0 auto 20px auto; 
    font-size: 1.5rem; font-weight: bold;
}
.phone-circle { background-color: #604c3f; color: #fff; }
.line-circle { background-color: #00c300; color: #fff; font-size: 1.2rem; }

/* ================================= */
/* PC対応 (768px以上) - 横並びと space-between を適用 */
/* ================================= */
@media (min-width: 768px) {
    .booking-grid {
        display: flex; 
        flex-direction: row; 
        justify-content: space-between; 
        gap: 0; 
        max-width: 900px; 
        padding: 0; 
    }
    
    .booking-item {
        flex: 1; 
        margin: 0 10px; 
        padding: 40px 30px;
    }
    
    /* 両端のアイテムの余分なマージンを削除して、コンテナの端に合わせる */
    .booking-item:first-child {
        margin-left: 0;
    }
    .booking-item:last-child {
        margin-right: 0;
    }

    /* PCではアイテム内のテキストを中央寄せに戻す */
    .booking-lead, .booking-time, .booking-holiday, .booking-notice {
        text-align: center;
    }
	
	.booking-phone .btn-tel-res {
		display: none;}
		
.booking-phone p.booking-tel-text-pc {
        display: block;
        font-size: 2.2rem;
        margin: 30px 0;
        color: #604c3f;
    }
	
.menu-btm{ margin-bottom: 60px;}
}



/* ================================= */
/* PC */
/* ================================= */
@media (min-width: 768px) {
    .header {
        padding: 20px 10%;
    }
	
/* ★追加: PCサイズでの固定ヘッダーの高さに合わせてコンテンツを下にずらす */
    body {
        margin-top: 70px; /* PCでのヘッダー高さに合わせた調整 (目安: 70px) */
    }


}
.logo {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 2px;
}


.concept-section {
    background-color: #e5e0d8;
}

.introduction-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    margin-top: 20px;
}



.menu-column h3 {
    margin-bottom: 10px;
    border-bottom: 1px solid #ccc;
    padding-bottom: 5px;
	color: #604c3f;
}
.menu-column ul {
    list-style: none;
	color: #604c3f;
}



.section-i {
	padding: 60px 10%;
}


@media (min-width: 768px) {
    .section-padding {
        padding: 60px 10%; 
    }


    /* サイト紹介: PCでは3列にする */
    .introduction-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
}


@media (max-width: 767px) {
    
    .header {
        justify-content: space-between;
		padding: 20px 5%;
    }
    
	.header-left {
        max-width: 70%;
    }

 

    


    .nav-menu {
        flex-direction: column;
        padding: 20px 0;
        text-align: center;
    }
    
    .nav-menu li {
        margin: 0;
    }
    
    .nav-menu a {
        display: block;
        padding: 15px 0;
    }
    
    .nav-menu .btn-booking {
        display: inline-block;
        margin-top: 10px;
    }
	
	
.stella-info-logo {
	width: 100%;
	height: auto;
    margin-bottom: 5px;
	text-align: center !important;
}
	
	.menu-btm{ margin-bottom: 20px !important;}
	
}




/* ================================================== */
/* ★★★ Menuセクション ★★★ */
/* ================================================== */

/* 1. ベーススタイル (モバイルファースト) - スマホは縦積み */
.menu-content-wrapper {
    display: flex;
    flex-direction: column; /* ★スマホ: 縦積み (column)★ */
    align-items: flex-start;
    gap: 20px; 
}

/* 画像コンテナ - スマホ設定 */
.menu-image-container {
    width: 100%;
    height: 200px; /* スマホで縦を短く見せる */
    overflow: hidden; 
}

/* 画像タグ本体 */
.menu-visual-img {
    width: 100%;
    height: 100%; 
    object-fit: cover;
}

/* メニューリストコンテナ */
.menu-list-content {
    width: 100%;
}

/* ------------------------------------- */

/* 2. PCオーバーライド (768px以上) - PCは横並び */
@media (min-width: 768px) {
    #menu.section-padding {
        padding: 60px 0;
    }

    /* 親コンテナ: 横並び、高さ追従 */
    .menu-content-wrapper {
        flex-direction: row; /* ★PC: 横並び (row)★ */
        justify-content: space-between; 
        align-items: stretch; /* 高さ追従 */
        gap: 0;
    }

    /* 画像コンテナ: 幅35%、左マージン0 */
    .menu-image-container {
        width: 35%; /* PC: 幅35% */
        height: auto; 
        margin-right: 40px;
        margin-left: 0; 
    }

    /* メニューリスト: 幅60%、パディング調整 */
    .menu-list-content {
        width: 60%; 
        padding-left: 10%; 
        padding-right: 10%; 
    }	
}

/* ================================================== */
/* ★★★ サロン情報セクション ★★★ */
/* ================================================== */

/* サロン情報セクション全体 */
.info-section {
    background-color: #f7f5f2; 
}

/* 情報を2列/1列で並べるためのFlexboxコンテナ */
.info-grid {
    display: flex;
    /* ★スマホ: 縦積み (details -> map の順) に設定済み★ */
    flex-direction: column; 
    gap: 40px;
    align-items: center;
	margin: 0 auto;
}

/* ------------------ */
/* 詳細情報 (モバイル: 上/PC: 左) */
/* ------------------ */
.info-details {
    text-align: center ; 
    width: 100%;
    padding: 0;
}



.stella-logo-footer {
    font-family: 'Hannari Mincho', serif;
    font-size: 3rem;
    color: #444;
    margin-bottom: 5px;
}


.tel-number {
    font-size: 1.8rem;
    color: #604c3f;
    margin: 30px 0 0 0;
}

/* 完全予約制ボタンの調整 */
.btn-booking-large {
    display: inline-block;
    border: 1px solid #604c3f;
    padding: 10px 25px;
    border-radius: 4px;
    background-color: #604c3f;
    color: #fff !important;
    font-weight: bold;
    margin-top: 20px;
}


.info-logoimg{
	width: 170px;
	height: auto;
}

/* ------------------ */
/* 地図情報 (モバイル: 下/PC: 右) */
/* ------------------ */
.info-map {
    text-align: center;
    width: 100%;
}

.map-title {
    font-size: 1.5rem;
    color: #604c3f;
    margin-bottom: 10px;
}

.map-img {
    width: 100%;
    height: auto;
    margin-bottom: 15px;
}

/* Google Mapでみるボタン */
.btn-map-link {
    display: inline-block;
    border: 1px solid #444;
    padding: 8px 15px;
    border-radius: 4px;
    color: #444;
    background-color: #fff;
    font-weight: bold;
}
.btn-map-link:hover {
    background-color: #eee;
}

/* ================================= */
/* PC対応 (768px以上) */
/* ================================= */
@media (min-width: 768px) {
    .info-grid {
        flex-direction: row; /* PCで横並びにする */
        justify-content: center; 
        align-items: flex-start; 
        gap: 0; /* 隙間はpaddingで調整 */
    }

    /* 詳細情報 (左側) */
    .info-details {
        text-align: left; /* PCでは左寄せ */
        width: 35%; /* ★サロン情報: 35%に縮小★ */
        padding: 0 40px 0 0; /* 地図との間に隙間 */
    }

    /* 地図情報 (右側) */
    .info-map {
        width: 65%; /* ★マップ: 65%に拡大★ */
        text-align: right; 
    }
}

.line-flex{ display: flex; -webkit-justify-content: center;-webkit-box-align: center;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center; justify-content: space-around;
margin-top: 20px;}



	

/* ================================================== */
/* ★★★ メインビジュアル スライダー設定 (フェードイン/アウト版) ★★★ */
/* ================================================== */

/* メインビジュアルの高さと親コンテナの設定 */
.main-visual {
    width: 100%;
    height: 60vh; /* 高さを確保 */
    overflow: hidden; 
    position: relative; /* 子要素のabsoluteの基準点 */
    padding: 0;
}

/* スライダー全体のコンテナ: フェードイン/アウトでは不要だが、念のためそのまま残す */
.slider-container {
    /* フェード処理では横に並べる必要がないため、Flexbox設定を削除 */
    width: 100%; 
    height: 100%;
    /* transformトランジションは不要になるため削除 */
}

/* 個々のスライド要素: 重ねて配置し、opacityで表示を切り替える */
.slider-item {
    position: absolute; /* 親要素(.main-visual)を基準に重ねて配置 */
    top: 0;
    left: 0;
    width: 100%; 
    height: 100%;
    
    /* ★★★ フェードの速度を定義 ★★★ */
    transition: opacity 1.5s ease-in-out; /* 1.5秒かけてふわっと切り替える */
    
    opacity: 0; /* 初期状態は非表示（JavaScriptで最初の画像だけ1にする） */
}

/* 画像本体 */
.slider-img {
    width: 100%;
    height: 100%;
    object-fit: cover; 
}

.stella-info-logo {
	width: 100%;
	height: auto;
    margin-bottom: 5px;
	text-align: left;
}

@media (max-width: 767px) {
   .menu-toggle {
        display: flex; 
        flex-direction: column;
        justify-content: space-around;
        width: 30px;
        height: 25px;
        background: none;
        border: none;
        cursor: pointer;
        padding: 0;
		position: absolute; /* 絶対配置に設定 */
		top: 50%; /* ★修正: 親要素（.header）の高さ中央を基準にする */
        transform: translateY(-50%); /* ★追加: ボタン自体の高さの半分だけ上にずらして真の垂直中央に */
        right: 5%; 
        z-index: 1001;
    }

    .menu-toggle span {
        display: block;
        width: 100%;
        height: 3px;
        background: #604c3f; 
        transition: all 0.3s ease;
        border-radius: 2px;
    }


    .menu-toggle.is-active span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }

    .menu-toggle.is-active span:nth-child(2) {
        opacity: 0; 
    }

    .menu-toggle.is-active span:nth-child(3) {
        transform: rotate(-45deg) translate(5px, -5px);
    }
    
	
    .header-right {
        position: absolute;
        top: 90px;
        right: 0;
        width: 100%;
        height: auto;
        background-color: #e5e0d8;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        transform: translateY(-20px);
        z-index: 990;
		opacity: 0; /* 透明にして隠す */
        visibility: hidden; /* クリック不可にする */
		transform: translateY(-10px);
		transition: opacity 0.3s ease-out, visibility 0.3s ease-out, transform 0.3s ease-out;
		display: block;
    }
	
	.header-right .nav-menu {
        display: block;
        padding: 10px 0;
    }
	
.header-right.is-active {
        /* ★★★ 修正2: is-active 時に表示状態に戻す (display: block は不要) ★★★ */
        opacity: 1;
        visibility: visible;
        transform: translateY(0); /* 通常の位置に戻す */
    }

    /* IDセレクタは不要だが、念のため残す場合は #main-navigation.is-active にも上記を適用する */
    #main-navigation.is-active {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
	

}

#concept, #menu, #info, #booking {
  scroll-margin-top: 50px; 
}

.txt-b{font-size: 1.5em;}
.color-b{color: #604c3f;}

.mgT20{ margin-top: 20px;}
.mgT40{ margin-top: 40px;}
.mgB40{ margin-bottom: 40px;}
.mgB60{ margin-bottom: 60px;}
.mgB80{ margin-bottom: 80px;}
.mgB100{ margin-bottom: 100px;}

.mgL10{ margin-left: 10px;}