@charset "utf-8";
/* CSS Document */

     main{ position: relative; padding-top:  8rem;}
        @media (max-width: 768px) {main{ position: relative; padding-top: 5rem;!important}}
		
        /* === ページタイトル（SEARCHセクション専用） === */
        .search-page-fv {
            /* 添付画像F59EEF6C-4EB9-44C0-A308-0BF6F5574E97.jpgを参考に作成 */
            background-image: url("../images/search-page-fv-osaka-pc.webp"); /* 背景画像プレースホルダー */
            background-size: cover;
            background-position: center;
            height: 350px;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
        }
		
		@media screen and (max-width: 736px){
        .search-page-fv {
            background-image: url("../images/search-page-fv-osaka-sp.webp");
        }}		
		
		
		
        .search-page-fv::before {
            content: '';
            position: absolute;
            inset: 0;
            background-color: rgba(0, 0, 0, 0.4); /* 暗いオーバーレイ */
        }
        .search-title-en {
            font-family: 'Inter', sans-serif;
            font-size: 4rem;
            font-weight: 800;
            color: #fff;
            line-height: 1;
            letter-spacing: 0.05em;
            text-shadow: 0 2px 4px rgba(0,0,0,0.5);
            position: relative;
            z-index: 10;
        }
        .search-title-jp {
            font-size: 1.25rem;
            font-weight: 400;
            color: #fff;
            margin-top: 0.5rem;
            text-shadow: 0 1px 3px rgba(0,0,0,0.5);
            position: relative;
            z-index: 10;
			text-align: center;
        }
        @media (max-width: 767px) {
            .search-page-fv { height: 250px; }
            .search-title-en { font-size: 3rem; }
            .search-title-jp { font-size: 1rem; }
        }

        /* === 検索フォーム（ラフに合わせ調整） === */
        .search-form-container {
            background-color: white;
            padding: 2rem;
            border-radius: 0.5rem;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
            margin-top: -80px; /* FVの下に重ねる */
            position: relative;
            z-index: 20;
        }
		
        @media (max-width: 767px) {
        .search-form-container {
            margin-top: -45px; /* FVの下に重ねる */
			width: 95%;
        }}
		
		
        /* フォームのグループ化 */
        .search-form-group {
             display: flex;
             align-items: flex-end; /* ボタンとインプットの高さを合わせるため */
             gap: 1rem;
        }
        @media (max-width: 767px) {
            .search-form-group {
                flex-direction: column;
                gap: 1.5rem;
            }
        }
        
        .search-input-wrapper {
            /* アイコンとテキストラベルを配置するためのコンテナ */
            display: flex;
            align-items: center;
            margin-bottom: 0.5rem;
        }
        .search-label-text {
            font-size: 0.875rem; /* text-sm */
            font-weight: 500;
            color: #333;
            margin-left: 0.5rem;
            margin-right: 1rem;
            white-space: nowrap;
        }
        .input-with-label {
            /* インプットとセレクトのスタイルを統一 */
            border: 1px solid #ccc;
            padding: 0.5rem 1rem;
            border-radius: 0.25rem;
            width: 100%;
            font-size: 1rem;
            outline: none;
            transition: border-color 0.2s;
        }
        .input-with-label:focus {
             border-color: #333;
        }
        .input-with-label select {
            padding-right: 2.5rem;
            appearance: none;
            cursor: pointer;
        }
        /* カスタム矢印の位置調整 */
        .select-arrow-icon {
            pointer-events: none;
            position: absolute;
            inset-y: 0;
            right: 0.5rem;
            display: flex;
            align-items: center;
            color: #777;
        }

        .search-button {
            height: 44px; /* 入力欄と高さを揃えるための微調整 */
            padding: 0 2.5rem; /* px-10を調整 */
            background-color: #333;
            color: white;
            font-weight: 500;
            border-radius: 9999px; /* rounded-full */
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
            transition: background-color 0.2s;
            flex-shrink: 0;
            cursor: pointer;
        }
        .search-button:hover {
            background-color: #555;
        }
        @media (max-width: 767px) {
            .search-button {
                width: 100%;
                height: 50px;
            }
        }
		
		.search{
			    padding: 2rem 0 11rem!important;
		}
		
        @media (max-width: 767px) {
            .search{
                padding: 2rem 0 7rem!important;
            }
        }	
		

        /* === 検索結果エリアのタイトル (OSAKA __ 大阪エリア) スタイル === */
        .area-title-container {
            display: flex;
            align-items: flex-end;
            margin-bottom: 2rem;
        }
        .area-title-en {
            font-family: 'Inter', sans-serif;
            font-size: 3.5rem; /* text-5xl相当 */
            font-weight: 900;
            line-height: 1;
            color: #333;
            margin-right: 0.5rem;
            position: relative;
            padding-right: 1.5rem; /* 横線と日本語タイトルのスペース */
        }
        /* 英字タイトルの右下に横棒を追加 */
        .area-title-en::after {
            content: '';
            position: absolute;
            bottom: 8px; /* 下からの位置を微調整 */
            right: -3rem; /* 日本語タイトルの手前に配置 */
            width: 3rem; /* 棒の長さ */
            height: 1px; /* 棒の太さ */
            background-color: #333;
        }
        .area-title-jp {
            font-size: 1rem; /* text-xl相当 */
            font-weight: 400;
            color: #333;
            line-height: 1.2;
			left: 3.5rem;
			position: relative;
            padding-bottom: 0.1rem;
        }
        @media (max-width: 767px) {
            .area-title-en { font-size: 2.25rem; }
            .area-title-jp { font-size: 1rem; }
        }

        /* === 検索結果リストとマップのグリッド === */
.result-list-container {
    /* 修正前: grid-template-columns: 2fr 1fr; */
    /* リスト:地図 を 2:1 にするため */
    grid-template-columns: 2fr 1fr; /* リスト:マップの比率を2:1に設定 */
    gap: 2rem;
    margin-top: 1rem; 
}
        @media (max-width: 1023px) { /* PC表示のブレイクポイント（lg: 1024px）以下 */
            .result-list-container {
                grid-template-columns: 1fr; /* モバイルでは1カラム */
            }
        }

        /* === マップと検索結果表示件数のスタイル === */
        .map-placeholder {
            background-color: #e0e0e0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            border-radius: 0.5rem;
            overflow: hidden;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
        }
        @media (min-width: 1024px) {
             .map-placeholder { height: 100%; }
        }
        @media (max-width: 1023px) {
             .map-placeholder { height: 400px; order: -1; }
        }
        
        /* 検索結果件数の表示スタイル（添付画像{7E649DF1-33C6-492A-A492-B67FBC66527D}.pngを参考に） */
        .search-result-count {
            font-size: 1rem;
            color: #333;
            margin: 6rem 0 4rem; /* 店舗リストとの間隔 */
			text-align: center;
        }
        .search-result-count strong {
            font-size: 1.5rem; /* 2件 の部分を大きく */
            font-weight: 700;
            margin: 0 0.25rem;
			font-family: 'Inter', sans-serif;
        }

        /* 店舗カード (スタイルは変更なし) */
        .salon-card {
            border: 1px solid #ddd;
            background-color: white;
            border-radius: 0.5rem;
            overflow: hidden;
            display: flex;
            align-items: stretch;
            margin-bottom: 1.5rem;
            transition: box-shadow 0.2s;
            cursor: pointer; /* クリック可能にする */
        }
        .salon-card:hover {
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
        }
		.salon-card-image {
			flex-shrink: 0;
    		width: 100%; 
			max-width: 386px;
    		height: 100%; 
    		overflow: hidden; 
		}
		.salon-card-image img {
    		width: 100%;
    		height: 100%;
    		object-fit: cover;
		}
        .salon-card-info { padding: 2.5rem; flex-grow: 1; }
		
		@media (max-width: 768px) {.salon-card-info {     padding: 2rem 2.5rem 0rem;}}
        .salon-card-actions {
            flex-shrink: 0;
            width: 220px; 
            padding: 1rem 2rem 2rem;
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 0.75rem;
        }
        @media (max-width: 767px) {
             .salon-card { flex-direction: column; }
             .salon-card-image { width: 100%; height: 220px; }
             .salon-card-actions { width: 100%; flex-direction: row; padding: 1rem 2rem 2rem;}
        }
        .salon-title {
            font-size: 1.25rem; font-weight: 700; color: #333; margin-bottom: 0.9rem;
            border-bottom: 1px solid #ccc; padding-bottom: 0.9rem;
        }
        .salon-address { font-size: 0.875rem; color: #555; margin-bottom: 1rem; }
        .salon-phone { display: flex; align-items: center; font-size: 1.4rem; font-weight: 600; color: #333; margin-bottom: 0.5rem; font-family: 'Inter', sans-serif;}
		.salon-phone img{width: 20px; margin-right: 5px;} 
        .salon-hours { font-size: 0.875rem; color: #555; }
        
        /* 矢印アイコンのラッパースタイル（共通） */
        .arrow-icon-wrapper {
            display: inline-block;
            transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
            margin-left: 0.25rem; /* テキストとの間隔 */
        }
        
        /* WEB予約ボタン */
        .action-button-primary {
            display: flex; 
            align-items: center; 
            justify-content: center; 
            width: 100%; 
            padding: 0.6rem 1rem; 
            
            /* 1pxの枠線はborderで維持 */
            border: 1px solid #333; 
            background-color: #333; 
            color: white; 
            border-radius: 0.25rem; 
            font-weight: 500; 
            
            /* アニメーション対象の指定 */
            transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
            
            /* ホバー時の光彩（外側）と太い枠線（内側）をbox-shadowで表現 */
            /* box-shadow: 外枠の光彩 | 内側の光彩（枠線太さの代わり） */
            box-shadow: 0 0 0 0 rgba(0, 0, 0, 0), inset 0 0 0 0 transparent; 
        }

		/* WEB予約ボタン ホバー時のスタイル: 背景色は変えず、枠と光彩のみ変更 */
		.action-button-primary:hover { 
			/* 背景色と枠線色を元の濃い色のまま固定（または #000 にしてより濃くする） */
			background-color: #333; 
		    border-color: #333;
    
		    /* 外側に4pxの光彩を追加し、内側の影で「枠が太くなった」ように見せる */
		    box-shadow: 0 0 0 4px rgba(51, 51, 51, 0.2), inset 0 0 0 1px #333; 
		}
        .action-button-primary:hover .arrow-icon-wrapper {
            transform: translateX(3px);
        }
        
        /* 店舗詳細ow.location.ボタン - 枠線アニメーションを適用 (位置ずれ防止のためbox-shadowで調整) */
        .action-button-secondary {
            display: flex; 
            align-items: center; 
            justify-content: center; 
            width: 100%; 
            padding: 0.5rem 1rem; 
            
            /* 1pxの枠線はborderで維持 */
            border: 1px solid #333; 
            background-color: white; 
            color: #333; 
            border-radius: 0.25rem; 
            font-weight: 400; 
            
            /* アニメーション対象の指定 */
            transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
            
            /* ホバー時の光彩（外側）と太い枠線（内側）をbox-shadowで表現 */
            box-shadow: 0 0 0 0 rgba(0, 0, 0, 0), inset 0 0 0 0 transparent; 
        }

        /* ホバー時のスタイル: 背景色は変えずに枠を太く+光彩, 矢印移動 */
        .action-button-secondary:hover { 
            /* 外側に4pxの光彩、内側に1pxの境界線を追加（元のborderと合わせて2pxの太枠に見える）*/
            box-shadow: 0 0 0 4px rgba(51, 51, 51, 0.2), inset 0 0 0 1px #333; 
            
            /* 背景色を白（変更なし）に固定 */
            background-color: white; 
        }
        .action-button-secondary:hover .arrow-icon-wrapper {
            transform: translateX(3px);
        }
        
        /* その他のエリアのボタン */
.area-link-button {
    display: flex; 
    align-items: center; 
    justify-content: center;
    width: 100%;
    padding: 0.75rem;
    background-color: white; 
    border: 1px solid #333; /* 枠線は最初から黒にしておくと綺麗です */
    border-radius: 0.5rem;
    font-weight: 500;
    color: #333; /* 文字色は黒 */
    text-align: center;
    cursor: pointer;
    position: relative; /* 背景スライドの基準点 */
    z-index: 1;
    overflow: hidden; /* はみ出る背景を隠す */
    transition: color 0.1s ease; /* 文字色の変化を滑らかに */
}

/* スライドしてくる背景の膜 */
.area-link-button::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0; /* 右から出現させるための起点 */
    width: 0; /* 最初は幅ゼロ */
    height: 100%;
    background-color: #333; /* 文字と同じ色（黒） */
    z-index: -1; /* 文字の下に配置 */
    transition: width 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); /* スライドのアニメーション */
}

/* ホバー時のスタイル */
.area-link-button:hover {
    color: white; /* 文字を白に反転 */
}

/* ホバー時に背景の幅を100%にする */
.area-link-button:hover::before {
    width: 100%;
    left: 0; /* 左に向かって伸びる */
    right: auto;
}

/* ホバー時の矢印の動き */
.area-link-button:hover .arrow-icon-wrapper {
    transform: translateX(5px);
    color: white;
}

/* 矢印アイコンのラッパーも色が変わるように設定 */
.arrow-icon-wrapper {
    transition: transform 0.3s ease, color 0.3s ease;
}
		
        @media (max-width: 767px) {
            .action-button-primary, .action-button-secondary { padding: 0.8rem 1rem; }
        }
		
		.search-other{
            padding-top: 7rem;
            margin-top: 7rem;
		}
		
        @media (max-width: 767px) {
		.search-other{
            padding-top: 4rem;
            margin-top: 4rem;
		}
        }

		
		
		/* Googleマイマップのヘッダー非表示用CSS */
.mymap-container {
  /* ヘッダーの高さ分（約56px）を非表示にする */
  height: 544px; /* 元の高さ(例:600px) - ヘッダーの高さ(約56px) = 544px */
	width: 100%;
  overflow: hidden; /* はみ出したヘッダーを非表示にする */
  position: relative; 
}

.mymap-container iframe {
  /* ヘッダーの高さ分（約56px）を上にずらす */
  margin-top: -56px; 
  height: 600px; /* 元の埋め込み高さを維持 */
}
		
@media (min-width: 1024px) {
    .lg\:h-auto {
        height: 450px!important;
    }
}		
		
        /* --- [NEW] アニメーション初期状態のCSS定義 --- */
        .animate-on-scroll {
            opacity: 0;
            transition: opacity 0.8s ease-out, transform 0.8s ease-out;
        }

        /* アニメーションパターン1: フェードイン (初期状態: 透明) */
        .fade-in.animate-on-scroll {
            opacity: 0;
        }
        .fade-in.is-visible {
            opacity: 1;
        }

        /* アニメーションパターン2: スライドアップ (初期状態: 下に20px移動) */
        .slide-up.animate-on-scroll {
            opacity: 0;
            transform: translateY(20px);
        }
        .slide-up.is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* アニメーションパターン3: スケールアップ (初期状態: 0.9倍に縮小) */
        .scale-up.animate-on-scroll {
            opacity: 0;
            transform: scale(0.95);
        }
        .scale-up.is-visible {
            opacity: 1;
            transform: scale(1);
        }

        
        /* --- [NEW] TOPICS & RECRUITセクションのスタイル --- */
        .topic-banner-placeholder {
            /* バナーの比率を維持するためのプレースホルダー */
            /*padding-top: 55%; /* 550x300pxの比率に近い */
            background-color: #d4d4d4;
            color: #555;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem;
            font-weight: 700;
            /*border-radius: 0.5rem;*/
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
            position: relative;
            overflow: hidden;
            transition: transform 0.3s ease-in-out;
        }
        .topic-banner-placeholder:hover {
            transform: translateY(-5px);
        }
        .topic-banner-placeholder span {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            white-space: nowrap;
        }

		.breadcrumb{
			gap:12px;
		    padding: 10rem 0 4rem!important;
		}
		
		@media (max-width: 767px){	
			.breadcrumb{
		    padding: 3rem 0 4rem!important;
		    font-size: 11px;
		    display: flex;
		    overflow-x: scroll;
		    width: 100%;
		    text-align: left;
		    white-space: nowrap;
		    gap: 12px;
		}}
		.topics{
			background-color: #fff;
			padding: 10rem 0!important;
		}
		@media (max-width: 767px){	
			.topics{
		    padding: 7rem 0!important;
		}}