/*
Theme Name: GENSEN 子テーマ(若狭美浜観光協会)
Template: gensen_tcd050
Description: GENSEN(TCD050)2.4 用の子テーマ。元サイト(GENSEN 1.7.1 を直接改変)のカスタマイズを移植したもの。
Author: crewdesign
Version: 1.0.0
Text Domain: tcd-w
*/

/* ===========================================================
 * 元サイトのカスタマイズを移植(GENSEN 1.12 との比較で抽出)
 * PC のヘッダーは E案(header-e.css)に置き換えたため、
 * 旧PCヘッダー(#global_menu の白い箱など)の指定は移植していません。
 * =========================================================== */

/* 全体 */
#main_contents { background:#faf9f0; }
.wf-notosansjapanese { font-family:"Noto Sans JP", sans-serif; }
.alpha a:hover img { opacity:0.7; }

/* トップページ:スライダーの文字(明朝・左寄せ) */
#header_slider .caption { text-align:left; }
#header_slider .caption .headline,
#header_slider .caption .catchphrase { font-family:"Yu Mincho", "游明朝", YuMincho, "游明朝体", "Noto Serif JP", serif; }
/* キャッチコピー:游明朝(中くらいの太さ)ですっきりと */
#header_slider .caption .headline { font-weight:500 !important; letter-spacing:.12em; text-shadow:0 1px 12px rgba(0,0,0,.35) !important; }

/* トップページ:スライダー下の検索窓は元サイトで非表示 */
#index_header_search { display:none; }

/* 検索結果・一覧(post_list2)の画像幅(PCのみ。スマホは親テーマの指定のまま) */
@media only screen and (min-width:1025px) {
	#post_list2 .article .image { width:253px; }
	#post_list2 .article .info { float:left; width:auto; margin-left:20px; }
}

/* ページトップへ戻るボタン */
#return_top a { background:#25c9cb; }

/* 宿・飲食店などのスライダー(Smart Slider)の入れ物 */
.mh-slider { margin:0; }

/* ===========================================================
 * スマホ・タブレット(〜1024px)
 * =========================================================== */
#header_logo .desc, #header_logo_fix .desc { color:#fff; }

@media only screen and (max-width:1024px) {
	#header_logo_fix img { max-height:35px; }


	#copyright { background:#26c9cb; }
}

@media only screen and (max-width:767px) {
	.post_content .pb_catchcopy,
	.post_content .pb_headline { font-size:20px !important; }

}


/* ===========================================================
 * スマホ:コンパクトヘッダー(高さ52px)
 * =========================================================== */
.mh-sp-header #header_top,
.mobile_fix_top.header_fix .mh-sp-header #header_top,
.mobile_fix_top.header_fix #header.mh-sp-header.active #header_top { background:#fff; border-bottom:2px solid #1f5f78; }
.mh-sp-header #header_top .inner {
	height:52px; display:flex; align-items:center; padding:0 52px 0 10px; box-sizing:border-box;
}
.mh-sp-header #header_logo { float:none; max-height:none; flex:0 1 auto; min-width:0; }
.mh-sp-header #header_logo_fix { display:none !important; }
.mh-sp-brand { display:flex; align-items:center; gap:8px; text-decoration:none; }
.mh-sp-brand img { width:36px; height:36px; max-height:none; flex-shrink:0; }
.mh-sp-brand span {
	font-family:"Noto Sans JP", sans-serif; font-size:15px; font-weight:700; letter-spacing:.04em;
	color:#1f5f78; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.2;
}
.mh-sp-icons { display:flex; gap:6px; margin-left:auto; padding:0; }
.mh-sp-icons a {
	width:32px; height:32px; border-radius:50%; background:#eef5f7; color:#1f5f78;
	display:flex; align-items:center; justify-content:center;
}
.mh-sp-header #header_top .inner:has(.search_button) .mh-sp-icons { margin-right:44px; }

/* ハンバーガー・検索ボタン(高さを52pxに合わせ、色を紺に) */
.mh-sp-header a.menu_button,
.mh-sp-header #header_top a.search_button { top:0; height:52px; line-height:52px; width:48px; }
.mh-sp-header a.menu_button:before,
.mh-sp-header #header_top a.search_button:before { color:#1f5f78; top:14px; left:12px; }
.mh-sp-header #header_top a.search_button { right:44px; }
.mh-sp-header #global_menu { top:52px; max-height:calc(100vh - 52px); }

/* ハンバーガーを開いたときのメニュー(白地に紺の文字) */
.mh-sp-header #global_menu { background:#fff !important; border-bottom:3px solid #1f5f78; box-shadow:0 8px 16px rgba(31,63,85,.15); }
.mh-sp-header #global_menu a,
.mh-sp-header #global_menu > ul > li > a {
	color:#1f3f55 !important; background:transparent !important;
	font-size:16px !important; font-weight:700; line-height:1.5 !important;
	padding:12px 20px !important; min-height:48px; height:auto !important;
	border-bottom:1px solid #e2e8ec !important;
}
.mh-sp-header #global_menu > ul > li { height:auto !important; }
.mh-sp-header #global_menu a:hover,
.mh-sp-header #global_menu .current-menu-item > a { color:#1a7d8f !important; background:#f2f6f8 !important; }
.mh-sp-header #global_menu .child_menu_button .icon:before { color:#1f5f78 !important; }

/* とても狭い画面(〜340px)では協会名を小さく */
@media only screen and (max-width:340px) {
	.mh-sp-brand span { font-size:13px; }
	.mh-sp-icons { gap:4px; }
	.mh-sp-icons a { width:28px; height:28px; }
}

/* スマホ:ヘッダー下の画像メニュー(5つ) */
.mh-sp-menu { display:flex; justify-content:center; gap:1%; background:rgba(255,255,255,0.8); }
.mh-sp-menu a { flex:0 1 18.8%; }
.mh-sp-menu img { display:block; width:100%; height:auto; }

/* PC:E案ヘッダー使用時、ヘッダー下の検索バー */
.mh-search { background:#f2f2f2; }

/* ===========================================================
 * 新着情報(2列リスト)[mh_news]
 * =========================================================== */
.mh-news { max-width:1120px; margin:0 auto; padding:56px 24px; box-sizing:border-box; font-family:"Noto Sans JP", sans-serif; color:#2a3a44; }
.mh-news__head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:28px; }
.mh-news__titles { display:flex; flex-direction:column; gap:4px; }
.mh-news__label { font-size:12px; font-weight:700; letter-spacing:.2em; color:#1f5f78; }
.mh-news__title { margin:0 !important; padding:0 !important; border:0 !important; background:none !important; font-family:"Noto Serif JP", "Sawarabi Mincho", serif !important; font-weight:600; font-size:30px !important; line-height:1.3 !important; color:#1f3f55 !important; }
.mh-news__more { font-size:14px; font-weight:700; color:#1f5f78 !important; text-decoration:none !important; border:1px solid #1f5f78; border-radius:999px; padding:8px 20px; }
.mh-news__more:hover { background:#1f5f78; color:#fff !important; }
.mh-news__list {
	list-style:none !important; margin:0 !important; padding:8px 28px !important;
	display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:40px;
	background:#fff; border:1px solid #e2e8ec; border-radius:10px;
}
.mh-news__item { margin:0 !important; padding:0 !important; border-bottom:1px solid #edf1f3; list-style:none !important; }
.mh-news__item::before { display:none !important; }
.mh-news__item a { display:flex; align-items:center; gap:16px; padding:16px 0; text-decoration:none !important; color:#1f3f55 !important; }
.mh-news__item a:hover .mh-news__text { color:#1a7d8f; text-decoration:underline; }
.mh-news__thumb { flex:0 0 104px; aspect-ratio:4 / 3; border-radius:6px; overflow:hidden; background:#e6eef2; display:block; }
.mh-news__thumb img { display:block; width:100% !important; height:100% !important; max-width:none; object-fit:cover; }
.mh-news__thumb.is-noimage img { object-fit:contain; padding:10%; box-sizing:border-box; }
.mh-news__body { display:flex; flex-direction:column; gap:6px; min-width:0; }
.mh-news__meta { display:flex; align-items:center; gap:8px; font-size:12px; color:#5a6f7c; }
.mh-news__cat { font-size:11px; font-weight:700; color:#fff; background:#1f5f78; border-radius:3px; padding:0 7px; line-height:1.7; }
.mh-news__cat.is-event { background:#b8501a; }
.mh-news__text { font-size:15px; font-weight:700; line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

@media only screen and (max-width:767px) {
	.mh-news { padding:40px 16px; }
	.mh-news__title { font-size:24px !important; }
	.mh-news__list { grid-template-columns:1fr; padding:4px 16px !important; }
	.mh-news__item a { gap:12px; padding:12px 0; }
	.mh-news__thumb { flex-basis:88px; }
	.mh-news__text { font-size:14px; }
}

/* ===========================================================
 * 詳細ページ上部・ポイント(宿・飲食店・スポット)
 * 色は種類ごと:--mh-c(元の色)/--mh-deep(文字用の濃い色)/--mh-tint(薄い背景)
 * =========================================================== */
.mh-dt { font-family:"Noto Sans JP", sans-serif; color:#2a3a44; margin-bottom:40px; }
.mh-dt__hidden-title { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; margin:0; padding:0; }
.mh-dt__gallery { margin:0 0 20px; border-radius:8px; overflow:hidden; }

.mh-dt__summary { background:#fff; border:1px solid #e2e8ec; border-top:4px solid var(--mh-c); border-radius:8px; padding:24px 28px; display:flex; flex-direction:column; gap:14px; }
.mh-dt__chips { display:flex; flex-wrap:wrap; gap:8px; }
.mh-dt__chip { font-size:12px; font-weight:700; line-height:1.6; padding:3px 12px; border-radius:999px; }
.mh-dt__chip.is-type { color:#fff; background:var(--mh-deep); }
.mh-dt__chip.is-area { color:var(--mh-deep); border:1px solid var(--mh-deep); background:var(--mh-tint); }
.mh-dt__name { margin:0 !important; font-family:"Noto Serif JP", "Sawarabi Mincho", serif; font-weight:600; font-size:32px; line-height:1.35; letter-spacing:.04em; color:#1f3f55; }
.mh-dt__facts { margin:0; display:grid; grid-template-columns:auto 1fr; gap:8px 16px; font-size:14px; line-height:1.7; border-top:1px solid #e2e8ec; padding-top:14px; }
.mh-dt__facts dt { color:#5a6f7c; font-weight:400; }
.mh-dt__facts dd { margin:0; }
.mh-dt__facts a { color:var(--mh-deep); font-weight:700; }
.mh-dt__actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.mh-dt__btn {
	flex:1 1 180px; display:flex; align-items:center; justify-content:center; min-height:48px; padding:10px 18px; box-sizing:border-box;
	border:1px solid var(--mh-deep); border-radius:6px; color:var(--mh-deep) !important; font-weight:700; font-size:15px; text-decoration:none !important; text-align:center;
}
.mh-dt__btn:hover { background:var(--mh-tint); }
.mh-dt__btn.is-primary { background:#c8551b; border-color:#c8551b; color:#fff !important; }
.mh-dt__btn.is-primary:hover { background:#a94512; }

.mh-dt__point { margin-top:40px; }
.mh-dt__h2 { display:flex; align-items:center; gap:12px; margin:0 0 18px !important; padding:0 !important; border:0 !important; background:none !important; font-family:"Noto Serif JP", "Sawarabi Mincho", serif !important; font-weight:600; font-size:24px !important; line-height:1.4 !important; color:#1f3f55 !important; text-align:left !important; }
.mh-dt__h2 span { display:block; width:28px; height:3px; background:var(--mh-c); }
.mh-dt__points { list-style:none !important; margin:0 !important; padding:0 !important; display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:14px; }
.mh-dt__points li { margin:0 !important; list-style:none !important; background:#fff; border:1px solid #e2e8ec; border-radius:8px; padding:20px; display:flex; flex-direction:column; gap:8px; }
.mh-dt__points li::before { display:none !important; }
.mh-dt__num { font-family:"Noto Serif JP", serif; font-size:26px; line-height:1; color:var(--mh-deep); }
.mh-dt__points p { margin:0 !important; font-size:15px; line-height:1.8; }
.mh-dt__text { font-size:15px; line-height:2; margin-top:8px; }

@media only screen and (max-width:767px) {
	.mh-dt__summary { padding:18px 16px; }
	.mh-dt__name { font-size:26px; }
	.mh-dt__h2 { font-size:20px !important; }
	.mh-dt__points { grid-template-columns:1fr; }
	.mh-dt__points li { flex-direction:row; align-items:flex-start; gap:12px; padding:16px; }
	.mh-dt__num { font-size:20px; padding-top:2px; }
	.mh-dt__points p { font-size:14px; }
}

/* ===========================================================
 * 記事ページ(お知らせ・イベント):1カラムで中央に
 * 本文 → 関連記事 の順に縦に並べる
 * =========================================================== */
.single-post #main_col { display:block !important; width:auto; max-width:900px; margin-left:auto; margin-right:auto; padding-left:20px; padding-right:20px; box-sizing:border-box; }
.single-post #main_col #article,
.single-post #main_col #related_post,
.single-post #main_col #single_banner_area {
	float:none !important; width:auto !important; max-width:none !important; margin-left:0 !important; margin-right:0 !important; clear:both;
}
.single-post #main_col #related_post { margin-top:56px !important; flex:none !important; }
.single-post #main_col > * { flex:none !important; float:none !important; }
.single-post #side_col { display:none; }

/* ===========================================================
 * トップページ:ファーストビュー(スライダー)の高さを抑える(PC)
 * 画面の高さの65%+220px(最小640px・最大860px)に収め、写真は中央でトリミング
 * =========================================================== */
@media only screen and (min-width:1025px) {
	.home #header_slider .item,
	.home #header_slider .slick-list,
	.home #header_slider .slick-track { max-height:clamp(640px, calc(65vh + 220px), 860px); }
	.home #header_slider .item img {
		height:clamp(640px, calc(65vh + 220px), 860px) !important; width:100% !important; object-fit:cover; object-position:center;
	}
}

/* ===========================================================
 * 宿・飲食店・スポット・海水浴場の詳細ページ:本文を中央に
 * (上部のカードにボタンをまとめたので、左のサイドバーは使わない)
 * =========================================================== */
.single-hotel #main_col,
.single-restaurant #main_col,
.single-spot #main_col,
.single-beach #main_col { max-width:900px; margin-left:auto; margin-right:auto; padding-left:20px; padding-right:20px; box-sizing:border-box; }
.single-hotel #left_col,
.single-restaurant #left_col,
.single-spot #left_col,
.single-beach #left_col { float:none !important; width:auto !important; max-width:none; margin:0 !important; }
.single-hotel #side_col,
.single-restaurant #side_col,
.single-spot #side_col,
.single-beach #side_col { display:none !important; }

/* 詳細ページの写真スライダー:スマホではサムネイル列を出さない(スワイプで切り替え) */
@media only screen and (max-width:767px) {
	.mh-dt__gallery .n2-ss-control-thumbnail,
	.mh-dt__gallery .nextend-thumbnail { display:none !important; }
}

/* ===== お問い合わせページ(.mh-contact) ===== */
.mh-contact { max-width:760px; margin:0 auto; }
.mh-contact__sec { margin:0 0 72px; text-align:center; }
.mh-contact__label { margin:0 0 6px !important; font-size:12px; font-weight:700; letter-spacing:.2em; color:#1f5f78; line-height:1.4 !important; }
.post_content .mh-contact__title,
.mh-contact__title { position:static !important; margin:0 0 28px !important; padding:0 !important; border:0 !important; background:none !important; box-shadow:none !important; text-align:center !important; font-family:"Noto Serif JP","Sawarabi Mincho",serif !important; font-weight:600 !important; font-size:28px !important; line-height:1.4 !important; color:#1f3f55 !important; }
.mh-contact__title::before, .mh-contact__title::after { content:none !important; display:none !important; }
.mh-contact__card { background:#fff; border:1px solid #e2e8ec; border-radius:12px; padding:36px 24px 30px; box-shadow:0 2px 10px rgba(31,63,85,.06); }
.mh-contact__tel { display:inline-flex; align-items:center; gap:10px; font-size:40px; font-weight:700; letter-spacing:.04em; line-height:1.2; color:#1f3f55 !important; text-decoration:none !important; }
.mh-contact__tel::before { content:""; flex:none; width:30px; height:30px; background:#1f5f78; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1L6.6 10.8z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1L6.6 10.8z'/%3E%3C/svg%3E") center/contain no-repeat; }
.mh-contact__req { color:#c8551b; font-size:14px; }
.mh-contact__notes { margin-top:32px; padding:24px 28px; background:#f2f6f8; border-radius:12px; text-align:left; }
.mh-contact__notes-title { margin:0 0 10px !important; font-weight:700; font-size:15px; color:#1f3f55; }
.mh-contact__notes ul { margin:0 !important; padding:0 0 0 1.2em !important; }
.mh-contact__notes li { margin:0 0 8px !important; font-size:13px; line-height:1.8 !important; color:#2a3a44; list-style:disc !important; }
.mh-contact__hours { margin:12px 0 0 !important; font-size:14px; color:#5a6f7c; line-height:1.6 !important; }
.mh-contact__lead { margin:0 0 28px !important; font-size:15px; line-height:1.9 !important; color:#2a3a44; }
.mh-contact__form { background:#fff; border:1px solid #e2e8ec; border-radius:12px; padding:36px 40px; text-align:left; }
.mh-contact__form input[type="text"], .mh-contact__form input[type="email"], .mh-contact__form input[type="tel"],
.mh-contact__form input[type="url"], .mh-contact__form input[type="number"], .mh-contact__form select, .mh-contact__form textarea {
	width:100%; max-width:100%; box-sizing:border-box; padding:12px 14px; font-size:16px; border:1px solid #cfd8de; border-radius:8px; background:#fbfcfd; }
.mh-contact__form input:focus, .mh-contact__form select:focus, .mh-contact__form textarea:focus { outline:none; border-color:#1f5f78; background:#fff; box-shadow:0 0 0 3px rgba(31,95,120,.12); }
.mh-contact__form input[type="submit"], .mh-contact__form button[type="submit"] {
	display:block; margin:24px auto 0; min-width:240px; padding:14px 32px; font-size:16px; font-weight:700; color:#fff; background:#1f5f78; border:0; border-radius:999px; cursor:pointer; }
.mh-contact__form input[type="submit"]:hover, .mh-contact__form button[type="submit"]:hover { background:#1f3f55; }
@media only screen and (max-width:767px) {
	.mh-contact__sec { margin-bottom:48px; }
	.post_content .mh-contact__title, .mh-contact__title { font-size:22px !important; margin-bottom:20px !important; }
	.mh-contact__card { padding:24px 16px; }
	.mh-contact__tel { display:flex; justify-content:center; font-size:26px; padding:14px 12px; border-radius:999px; background:#1f5f78; color:#fff !important; }
	.mh-contact__tel::before { background:#fff; width:22px; height:22px; }
	.mh-contact__notes { padding:18px 16px; }
	.mh-contact__form { padding:24px 16px; }
	.mh-contact__lead { text-align:left; font-size:14px; }
	.mh-contact__lead br { display:none; }
}

/* お問い合わせフォーム(Contact Form 7)をテーマ・追加CSSより優先して整える */
.mh-contact__form .wpcf7 { border:0 !important; background:none !important; margin:0 !important; padding:0 !important; }
.mh-contact__form .wpcf7 form { margin:0 !important; }
.mh-contact__form .wpcf7 p { font-size:14px !important; font-weight:700; color:#1f3f55; }
body .mh-contact__form .wpcf7 input.wpcf7-submit,
body .mh-contact__form input[type="submit"] {
	display:block !important; width:auto !important; min-width:240px; height:auto !important; margin:28px auto 0 !important; padding:14px 40px !important;
	font-size:16px !important; font-weight:700 !important; letter-spacing:.1em; color:#fff !important;
	background:#1f5f78 !important; background-image:none !important; border:0 !important; border-radius:999px !important; box-shadow:none !important; }
body .mh-contact__form .wpcf7 input.wpcf7-submit:hover,
body .mh-contact__form input[type="submit"]:hover { background:#1f3f55 !important; }
.mh-contact__form .wpcf7-response-output { margin:20px 0 0 !important; padding:12px 16px !important; border-radius:8px; font-size:14px; text-align:center; }
@media only screen and (max-width:767px) {
	body .mh-contact__form .wpcf7 input.wpcf7-submit, body .mh-contact__form input[type="submit"] { width:100% !important; min-width:0; }
}