/*
 * ヒルトンニセコビレッジ 季節アクティビティ情報 LP（.nv-activity-lp）。
 * 本文は core ブロック（group / image / heading / paragraph / buttons / embed）。
 * 当CSSは bespoke の見た目だけを担う：地色・タイトル帯・ヒーロー重ね・カード装飾・ボタン地。
 * アクセント #C756BA、地色 緑/黄緑/桃/青。コンテンツ幅は .nv-inner の max-width に一元化。
 * 画像は子テーマ assets/images/winter-information/ を参照。
 */

/* 全幅展開（constrained な main 内で色付きセクションをビューポート全幅に）。 */
.nv-activity-lp.alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	font-feature-settings: "palt";
}
.nv-activity-lp .nv-sec { overflow: hidden; }
/* 本文末尾は色付きセクションが自前で下余白を持つため、親テーマ post-content の既定下余白
   （40px・白）を消し、色帯の直下にパンくずが来るようにする（パンくず上の白い隙間を除去）。 */
.single-main.nv-activity-main > .wp-block-post-content { padding-bottom: 0; }
/* 区切り見出しの被せ量：タイトル帯の装飾アーチ(title_bg 1500×182)に写真の左右がギリギリ重なるよう、
   帯幅(≒ビューポート幅)で計算する。被せ=182−アーチy。アーチ解析の近似式（端ほど浅く中央ほど深い）。
   背景画像は固定サイズ(auto)なので、幅が変わると見えるアーチ位置が変わる→幅依存で算出する。 */
.nv-activity-lp {
	--lp-sechead-overlap: clamp(-130px, 35px - 11.2vw, -32px);
}
/* core ブロックの既定マージンを打ち消し、当CSSで明示制御する。 */
.nv-activity-lp :where(.wp-block-image, .wp-block-heading, p, .wp-block-buttons, .wp-block-group) { margin-top: 0; margin-bottom: 0; }
.nv-activity-lp img { max-width: 100%; height: auto; display: block; }
/* 本文は全文 sans（serif を使わない）。見出しは親テーマの本文 h2 既定（brand-heading=serif）に
   詳細度で勝つため、.wp-block-heading を二重に重ねて 0,3,1 にする。 */
.nv-activity-lp { font-family: var(--wp--custom--brand-body, "Noto Sans JP", sans-serif); }
.nv-activity-lp :is(h1, h2, h3, h4, h5, h6).wp-block-heading.wp-block-heading {
	font-family: var(--wp--custom--brand-body, "Noto Sans JP", sans-serif);
}

/* コンテンツ幅の一元管理（1000px）。
   セクションは blockGap=0（ヒーローをタイトルへ被せるため）なので、ヒーロー画像と本文の間の
   余白（figure.top 下マージン 70px 相当）は nv-inner の上マージンで与える。 */
.nv-activity-lp .nv-inner { max-width: min(1000px, calc(100% - 2 * var(--gutter, 16px))); margin-inline: auto; margin-top: 70px; }
.nv-activity-lp .nv-inner > * + * { margin-top: 40px; }

/* ===== KV（共通ブロック acf/lp-kv）。画像＋重ね/最大幅/ぼかしは親 .lp-kv／.hilton-kv が担当。
   ここはページ固有のリード文タイポ（字間・サイズ）だけを上書きする。 ===== */
.nv-activity-lp .lp-kv__lead { font-size: 1.0vw; letter-spacing: 0.3em; --lp-kv-lead-bg: #fff; }
/* ※注記(is-style-note)はリードの広い字間(0.3em)を継承させず通常字間に（注記だけ間延びするのを防ぐ）。 */
.nv-activity-lp .lp-kv__lead li.is-style-note { letter-spacing: normal; }
/* 夏は KV 画像の下部が暗いため、重ね表示になるデスクトップ（>1024px）でのみリードを白文字に
   （タブレット以下は画像の下に静的化＝白地なので親の黒のまま）。 */
@media (min-width: 1025px) {
	.nv-activity-lp.nv-summer .lp-kv__lead { color: #fff; }
}

/* ===== 言語切替（共通ブロック polylang/language-switcher）。KV とページ内ナビの間に置くため、
   上下の余白を揃える（親 blocks.css の既定は margin:14px 0 0 で下が 0）。 ===== */
.nv-activity-lp .title-lang-switcher.wp-block-polylang-language-switcher {
	margin-top: 14px;
	margin-bottom: 14px;
}

/* ===== ページ内リンク（自動目次 acf/lp-nav）。挙動・リンク装飾・高さは親（lp.css の .lp-nav）。
   ページ固有は背景画像と、KV 直下へ密着させる上余白の打ち消しだけ。 ===== */
.nv-activity-lp .lp-nav {
	margin-top: 0; /* KV 直下に帯を密着（親 lp.css の 56px 上余白を打ち消す）。 */
}
.nv-activity-lp.nv-winter .lp-nav {
	background: url("../images/winter-information/nav_bg.png") center center / cover no-repeat;
}
.nv-activity-lp.nv-summer .lp-nav {
	background: url("../images/summer-information/nav_bg.png") center center / cover no-repeat;
}
/* SP/タブレットは目次を折りたたみトグルだけにするので、背景画像はトグル（目次バー）に載せる。 */
@media (max-width: 1024px) {
	.nv-activity-lp.nv-winter .lp-nav__toggle {
		background: url("../images/winter-information/nav_bg.png") center center / cover no-repeat;
	}
	.nv-activity-lp.nv-summer .lp-nav__toggle {
		background: url("../images/summer-information/nav_bg.png") center center / cover no-repeat;
	}
}

/* ===== セクション地色＋背景 ===== */
.nv-activity-lp .nv-act {
	background: url("../images/winter-information/activity_bg.jpg") center top #50ca8d no-repeat;
	background-size: cover;
	padding: 0 0 80px;
}
.nv-activity-lp .nv-service {
	background: url("../images/winter-information/service_bg.jpg") center top #c9ca52 no-repeat;
	background-size: cover;
	padding: 0 0 80px;
}
.nv-activity-lp .nv-kids {
	background: url("../images/winter-information/kids_bg.jpg") center top #e581a3 no-repeat;
	background-size: cover;
	/* 下余白で次の区切り見出し(spot)が密着しないようにする（カードグリッドは最終カード下に余白が出ないため）。 */
	padding: 0 0 80px;
}
.nv-activity-lp .nv-spot {
	background: url("../images/winter-information/spot_bg.jpg") center top #82a4e4 no-repeat;
	background-size: cover;
	padding: 0 0 40px;
}

/* ===== セクション見出し（タイトル帯） =====
   フォント(sans)・上下中央・帯高さ・下揃え背景・被せ(z-index)は共通 .lp-sechead__title（lp-sechead.css）。
   ここはページ固有の配色・文字サイズ・背景画像URL・最大幅だけ。全セクション同一（場所ごとに変えない）。 */
/* .wp-block-heading を併記して、親テーマの本文 h2 既定（clamp 上限23px）に詳細度で勝ち、
   意図した 30px を効かせる。 */
.nv-activity-lp .nv-h2.wp-block-heading {
	font-size: 30px;
	color: #C756BA;
	line-height: 1.5;
	letter-spacing: 0.1em;
	background-image: url("../images/winter-information/title_bg.png");
	max-width: 1500px;
	margin: 0 auto;
}
.nv-activity-lp .nv-h2 span { font-size: 20px; }

/* ===== ヒーロー（写真＋重ねキャプション＋装飾サブ） =====
   骨格（相対配置・写真・装飾画像の左右/中央配置）＋タイトルへの完全被せ（被せ量＝帯高さ）は
   共通 .lp-sechead__*（lp-sechead.css）。ここはキャプションのオーバーレイ配色・余白・見出し色だけ。 */
.nv-activity-lp .nv-top .nv-figcap {
	position: absolute;
	width: 100%;
	bottom: 0;
	left: 0;
	text-align: center;
	font-size: 14px;
	line-height: 1.5;
	background: rgba(255, 255, 255, 0.8);
	padding: 20px 16px;
}
.nv-activity-lp .nv-act .nv-top .nv-figcap { padding: 20px 16px; }
/* キャプション本文は固定の大きな左右paddingで狭めず、最低 alignwide(1080) を確保して中央寄せ。
   写真が全幅(1320)でも本文が読みやすい幅に収まる。 */
.nv-activity-lp .nv-top .nv-figcap > * { max-width: 1080px; margin-left: auto; margin-right: auto; }
.nv-activity-lp .nv-top .nv-figcap h3 { font-size: 18px; color: #C756BA; font-family: var(--wp--custom--brand-body, "Noto Sans JP", sans-serif); }
.nv-activity-lp .nv-top .nv-figcap .note { font-size: 12px; }
/* 装飾サブ画像（nv-sub）は写真の全幅(1320)ではなく本文ボックス幅(nv-inner=1000)に合わせる。
   左右一体のバンド(--center)は本文幅いっぱい、左右別(--left/--right)は本文ボックスの両端へ配置。
   被せの基準は共通の bottom:-25px（lp-sechead.css）のまま。 */
/* 装飾シルエットは写真端より少し外へはみ出させる。特にタブレット幅で帯が縮んで図形が内側＝
   文字に被るのを防ぐため、最小幅(1220px)を確保（狭い幅では図形が端から覗き＝はみ出す）。 */
.nv-activity-lp .lp-sechead__deco--center { width: max(calc(100% + 80px), 1220px); }
.nv-activity-lp .lp-sechead__deco--center img { width: 100%; }
.nv-activity-lp .lp-sechead__deco--left { left: 0; }
.nv-activity-lp .lp-sechead__deco--right { right: 0; }
/* タブレット以下では装飾サブ画像を出さない（ヒーロー幅に対して大きく左右にはみ出すため。
   SP(≤768)は親 lp-sechead が非表示。ここで 1024 まで広げる）。 */
@media (max-width: 1024px) {
	.nv-activity-lp .lp-sechead__deco { display: none; }
}

/* ===== 地図＋説明 ===== */
.nv-activity-lp .nv-maptxt { padding: 30px 0; background-color: #fff; text-align: center; }
.nv-activity-lp .nv-maptxt > * + * { margin-top: 20px; }
.nv-activity-lp .nv-maptxt h3 { font-size: 18px; color: #C756BA; }
.nv-activity-lp .nv-maptxt p { font-size: 16px; }

/* ===== カードグリッド ===== */
.nv-activity-lp .nv-cards { display: grid; gap: 40px 40px; }
.nv-activity-lp .nv-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nv-activity-lp .nv-rec-cards,
.nv-activity-lp .nv-list-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 50px; }
.nv-activity-lp .nv-box--full { grid-column: 1 / -1; }

/* 共通カード本体 */
.nv-activity-lp .nv-box { background: #fff; box-sizing: border-box; }
.nv-activity-lp .nv-box > * + * { margin-top: 10px; }
.nv-activity-lp .nv-box h4 { color: #C756BA; text-align: center; font-size: 16px; font-weight: normal; line-height: 1.5; }
/* アクティビティ一覧（3列・小カード） */
.nv-activity-lp .nv-cards--3 .nv-box { padding: 15px; }
.nv-activity-lp .nv-cards--3 .nv-box p { font-size: 12px; line-height: 1.7; }
/* ココがポイント／施設一覧（2列・影付きカード） */
.nv-activity-lp .nv-rec-cards .nv-box,
.nv-activity-lp .nv-list-cards .nv-box { padding: 38px 30px 30px; box-shadow: 3px 3px 3px #707070; }
.nv-activity-lp .nv-rec-cards .nv-box > * + * { margin-top: 20px; }
.nv-activity-lp .nv-list-cards .nv-box > * + * { margin-top: 20px; }
.nv-activity-lp .nv-rec-cards .nv-box p,
.nv-activity-lp .nv-list-cards .nv-box p { font-size: 13px; line-height: 1.5; }
.nv-activity-lp .nv-box--full p { text-align: center; }

/* ===== ココがポイント！（rec_title 帯） ===== */
.nv-activity-lp .nv-rec { position: relative; }
.nv-activity-lp .nv-rectitle { position: relative; text-align: center; margin-bottom: 50px; }
.nv-activity-lp .nv-rectitle::before { content: ""; position: absolute; left: 0; top: 50%; width: 100%; border-top: solid 3px #C756BA; z-index: 0; }
.nv-activity-lp .nv-rectitle h3 {
	position: relative;
	display: inline-block;
	font-size: 20px;
	color: #fff;
	line-height: 1;
	letter-spacing: 0.1em;
	background: #C756BA;
	border-radius: 30px;
	/* 上下パディングを均等にしてピル内でテキストを上下中央に置く。 */
	padding: 13px 56px;
	z-index: 1;
}
.nv-activity-lp .nv-rec .nv-cards { margin-top: 0; }

/* ===== ボタン（CTA：btn 画像＋白文字。コアボタンの地を上書き） ===== */
.nv-activity-lp .nv-cta { justify-content: center; }
/* 既定 380px、ラベルが長い場合は折り返さず横に伸ばす（最小380px）。ボタン地（btn画像）は
   ボタン幅いっぱいに伸縮させる。 */
.nv-activity-lp .nv-cta .wp-block-button { width: auto; min-width: 380px; max-width: 100%; }
.nv-activity-lp .nv-cards--3 .nv-cta .wp-block-button { width: auto; min-width: 260px; }
.nv-activity-lp .nv-cta .wp-block-button__link {
	display: block;
	width: 100%;
	position: relative;
	white-space: nowrap;
	/* ボタン地はビットマップ画像だと幅を伸ばしたとき角丸が楕円に歪むため、CSS のピルで描く。
	   塗りのグラデ：winter=左上の紫から右下の暖色（タン）へ斜めに変化。
	   summer は子テーマで横グラデ（青）に上書き。 */
	background: linear-gradient(110deg, #bd6ac6 0%, #8a63c5 60%, #c6a68d 100%);
	border-radius: 999px;
	text-align: center;
	font-size: 16px;
	font-weight: normal;
	color: #fff;
	padding: 12px 40px;
}
/* 縁から少し内側に白い枠線（内枠）。ピル形に沿い、どの幅でも崩れない。 */
.nv-activity-lp .nv-cta .wp-block-button__link::before {
	content: "";
	position: absolute;
	inset: 4px;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: 999px;
	pointer-events: none;
}
.nv-activity-lp .nv-cta .wp-block-button__link:hover { opacity: 0.7; color: #fff; }

/* ===== アクセス導線 ===== */
.nv-activity-lp .nv-access { padding: 45px 0; background: #fff; text-align: center; }
.nv-activity-lp .nv-access > * + * { margin-top: 30px; }
.nv-activity-lp .nv-access p { font-size: 16px; }

/* ===== 動画（core/embed） ===== */
.nv-activity-lp .nv-box .wp-block-embed { margin: 0; }

/* ===== スマホ（768px 以下） ===== */
@media screen and (max-width: 768px) {
	/* PCのみ改行（.pcInline）はSPで消し、自然に折り返す。 */
	.nv-activity-lp .pcInline { display: none; }
	/* KV リードはSPで小さく左寄せ（重ね→下に静的は親 .lp-kv が担当）。 */
	.nv-activity-lp .lp-kv__lead { font-size: 13px; letter-spacing: 0.04em; }
	/* ページ内リンクは SP でも背景画像を維持する（地色の単色差し替えはしない）。
	   はみ出たリンクは親の flex-wrap で折返し。 */

	.nv-activity-lp .nv-act,
	.nv-activity-lp .nv-service { padding: 0 0 30px; }
	.nv-activity-lp .nv-kids { padding: 0 0 30px; }
	.nv-activity-lp .nv-spot { padding: 0; }
	.nv-activity-lp .nv-inner { max-width: none; padding-inline: 16px; margin-top: 30px; }

	/* .wp-block-heading 併記で親テーマ本文 h2 の clamp(SP最小20px)に勝ち、全セクション 14px に揃える。 */
	.nv-activity-lp .nv-h2.wp-block-heading {
		font-size: 14px;
		padding: 0 10px;
		max-width: none;
		/* SP は帯を固定高さにし、title_bg はその高さ100%に合わせる（幅は比率保持で外へはみ出す）。 */
		height: 100px;
		background-size: auto 100%;
	}
	.nv-activity-lp .nv-h2 span { font-size: 12px; }

	.nv-activity-lp .nv-top,
	.nv-activity-lp .nv-act .nv-top { margin-top: -40px; }
	.nv-activity-lp .nv-top .nv-figcap,
	.nv-activity-lp .nv-act .nv-top .nv-figcap { position: static; text-align: center; padding: 15px 10px; }
	/* SP はキャプションの文字を控えめに。 */
	.nv-activity-lp .nv-top .nv-figcap h3 { font-size: 15px; }
	.nv-activity-lp .nv-top .nv-figcap p { font-size: 13px; }
	/* 装飾サブ画像の SP 非表示は共通（.lp-sechead__deco @max-width:768）。 */

	.nv-activity-lp .nv-maptxt { padding: 20px 10px; }
	.nv-activity-lp .nv-maptxt h3 { font-size: 16px; }
	.nv-activity-lp .nv-maptxt p { font-size: 14px; text-align: left; }

	.nv-activity-lp .nv-cards,
	.nv-activity-lp .nv-cards--3,
	.nv-activity-lp .nv-rec-cards,
	.nv-activity-lp .nv-list-cards { grid-template-columns: 1fr; gap: 20px; }
	.nv-activity-lp .nv-box--full p { text-align: left; }
	.nv-activity-lp .nv-cta .wp-block-button,
	.nv-activity-lp .nv-cards--3 .nv-cta .wp-block-button { width: 100%; min-width: 0; }
	/* SP は全幅のため長いラベルは折り返してよい。 */
	.nv-activity-lp .nv-cta .wp-block-button__link { white-space: normal; padding: 12px 16px; }
	.nv-activity-lp .nv-rectitle h3 { font-size: 15px; padding: 9px 28px; }
	.nv-activity-lp .nv-access { padding: 30px 16px; }
}

/* タブレット（769〜1024px）：見出し・キャプションの文字を PC より控えめに（PC30px等は大きすぎるため）。
   レイアウト（多カラム等）は維持し、文字サイズだけ中間値に。 */
@media (max-width: 1024px) and (min-width: 769px) {
	.nv-activity-lp .nv-h2.wp-block-heading { font-size: 22px; }
	.nv-activity-lp .nv-h2 span { font-size: 16px; }
	.nv-activity-lp .nv-top .nv-figcap h3 { font-size: 16px; }
	.nv-activity-lp .nv-top .nv-figcap p { font-size: 14px; }
	.nv-activity-lp .nv-maptxt h3 { font-size: 17px; }
	.nv-activity-lp .nv-maptxt p { font-size: 14px; }
}

/* ===== 夏（.nv-summer）の配色・背景上書き =====
   構造（帯・ヒーロー被せ・カード・ボタン地・rec帯）は冬と共通。ここは夏の地色・背景画像・
   見出し配色・アクセント（紺 #343082 / #164D98、水色・桃の地色）だけを差し替える。
   画像は assets/images/summer-information/ を参照。 */
.nv-activity-lp.nv-summer .nv-act {
	background: url("../images/summer-information/activity_bg.jpg") center top #79e3f1 no-repeat;
	background-size: cover;
	padding: 0 0 80px;
}
.nv-activity-lp.nv-summer .nv-golf {
	background: url("../images/summer-information/golf_bg.jpg") center top #ffc9af no-repeat;
	background-size: cover;
	padding: 0 0 80px;
}
.nv-activity-lp.nv-summer .nv-kids {
	background: url("../images/summer-information/kids_bg.jpg") center top #ffc7ae no-repeat;
	background-size: cover;
	padding: 0 0 80px;
}
.nv-activity-lp.nv-summer .nv-spot {
	background: url("../images/summer-information/spot_bg.jpg") center top #7ce4f1 no-repeat;
	background-size: cover;
	padding: 0 0 40px;
}
/* 区切り見出し：夏は紺文字＋夏のタイトル帯。 */
.nv-activity-lp.nv-summer .nv-h2 {
	color: #343082;
	background-image: url("../images/summer-information/title_bg.png");
}
.nv-activity-lp.nv-summer .nv-h2 span { color: #343082; }
/* カード見出し・ココがポイント！帯・キャプション見出しは夏のアクセント紺。 */
.nv-activity-lp.nv-summer .nv-box h4 { color: #164D98; }
.nv-activity-lp.nv-summer .nv-top .nv-figcap h3 { color: #164D98; }
.nv-activity-lp.nv-summer .nv-rectitle::before { border-top-color: #164D98; }
.nv-activity-lp.nv-summer .nv-rectitle h3 { background: #164D98; }
/* CTA ボタン地は夏版。 */
.nv-activity-lp.nv-summer .nv-cta .wp-block-button__link { background: linear-gradient(90deg, #2272c7, #56b5e0); }
/* スポットの装飾シルエットは深く下げる。 */
.nv-activity-lp.nv-summer .nv-spot .lp-sechead__deco--center { bottom: -70px; }
/* Google マップ埋め込み（最下部）。 */
@media screen and (max-width: 768px) {
	.nv-activity-lp.nv-summer .nv-golf { padding: 0 0 30px; }
	.nv-activity-lp.nv-summer .nv-kids { padding: 0 0 30px; }
}

/* 宴会・会議・教育旅行／施設・サービス アーカイブ：タイトル h1 の上下に 56px の余白。
   archive-head の上パディングは 0 にして、margin で上下とも 56px に揃える
   （constrained レイアウトの子マージン打ち消し・main .sec-head{margin-bottom:0} に勝つ詳細度）。 */
body.post-type-archive-mice .archive-head,
body.post-type-archive-facility .archive-head { padding-top: 0; }
body.post-type-archive-mice .archive-head .sec-head,
body.post-type-archive-facility .archive-head .sec-head { margin: 56px 0; }
