/*
Theme Name: Hitting ListingHive Child
Theme URI: https://softtennishitting.com/
Description: Hitting専用のListingHive子テーマ。公開画面のデザインと導線のみを管理します。
Author: Hitting
Template: listinghive
Version: 0.5.50
Text Domain: listinghive-child
*/

/* Hitting design tokens */
:root {
	--hitting-green: #00a884;
	--hitting-green-dark: #087d68;
	--hitting-green-soft: #eaf8f4;
	--hitting-blue: #2f78c4;
	--hitting-orange: #f38a3f;
	--hitting-ink: #20312e;
	--hitting-muted: #64736f;
	--hitting-line: #e3ece9;
	--hitting-surface: #ffffff;
	--hitting-radius: 16px;
	--hitting-shadow: 0 14px 38px rgba(24, 67, 57, 0.12);
}

/* Header: clean, trustworthy and mobile-first */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid var(--hitting-line);
	box-shadow: 0 8px 28px rgba(24, 67, 57, 0.06);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

.admin-bar .site-header {
	top: 32px;
}

.header-navbar {
	width: min(100% - 40px, 1200px);
	min-height: 78px;
	margin: 0 auto;
	padding: 0;
}

.header-logo .custom-logo {
	width: auto;
	height: 54px;
	object-fit: contain;
}

.header-navbar__menu > ul {
	display: flex;
	align-items: center;
	gap: 8px;
}

.header-navbar__menu > ul > li > a {
	padding: 12px 14px;
	border-radius: 999px;
	color: var(--hitting-ink);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.02em;
	transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.header-navbar__menu > ul > li > a:hover,
.header-navbar__menu > ul > li.current-menu-item > a {
	color: var(--hitting-green-dark);
	background: var(--hitting-green-soft);
	transform: translateY(-1px);
}

.header-navbar__menu .menu-item-2549 {
	order: 1;
}

.header-navbar__menu .menu-item-2661 {
	order: 2;
}

.header-navbar__menu .menu-item--user-account {
	order: 3;
}

.header-navbar__menu .menu-item-2860 {
	display: none;
}

.header-navbar__menu .menu-item--user-account > a {
	border: 1px solid #082b63;
	background: #fff;
	color: #082b63;
}

/* Production fallback: keep the embedded map hidden until Google Maps is restored. */
.single-hp_listing .hp-listing__map.hp-map {
	display: none !important;
}

.header-navbar__menu .menu-item--user-account > a .hp-icon {
	color: var(--hitting-green);
}

.header-navbar__menu .sub-menu {
	border: 1px solid var(--hitting-line);
	border-radius: 14px;
	box-shadow: var(--hitting-shadow);
	overflow: hidden;
}

.header-navbar__menu .sub-menu a {
	padding: 10px 16px;
	color: var(--hitting-ink);
}

.header-navbar__menu .sub-menu a:hover {
	color: var(--hitting-green-dark);
	background: var(--hitting-green-soft);
}

.header-navbar__end {
	display: flex;
	align-items: center;
	gap: 8px;
}

.header-navbar__end .hp-menu__item--listing-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 20px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #ff5149, #d73a33);
	box-shadow: 0 10px 24px rgba(215, 58, 51, 0.24);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-align: center;
	white-space: nowrap;
	vertical-align: middle;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.header-navbar__end .hp-menu__item--listing-submit span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1.2;
	white-space: nowrap;
}

.header-navbar__end .hp-menu__item--listing-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(215, 58, 51, 0.32);
}

body:not(.logged-in) .header-navbar__end .hp-menu__item--listing-submit span {
	display: inline !important;
	font-size: 14px;
}

body:not(.logged-in) .header-navbar__end .hp-menu__item--listing-submit span::after {
	content: none;
}

	body:not(.logged-in) .header-navbar__end .hp-menu__item--listing-submit {
		display: inline-flex !important;
		min-width: 84px;
		padding-right: 12px;
		padding-left: 12px;
	}

body:not(.logged-in) .header-navbar__end .hp-menu__item--listing-submit .hp-icon {
	display: none;
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

@media (max-width: 767px) {
	.header-navbar {
		width: calc(100% - 28px);
		min-height: 66px;
	}

	.header-logo .custom-logo {
		height: 46px;
	}

	.header-navbar__burger {
		position: relative;
		margin-left: 10px;
	}

	.header-navbar__burger > a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border: 1px solid var(--hitting-line);
		border-radius: 50%;
		background: #fff;
		color: var(--hitting-ink);
	}

	.header-navbar__burger > ul.menu {
		right: 0;
		left: auto;
		width: min(86vw, 320px);
		max-height: calc(100vh - 96px);
		padding: 10px;
		border: 1px solid var(--hitting-line);
		border-radius: var(--hitting-radius);
		background: #fff;
		box-shadow: var(--hitting-shadow);
		overflow-y: auto;
	}

	.header-navbar__burger > ul.menu > li {
		margin: 2px 0;
	}

	.header-navbar__burger > ul.menu > li > a {
		display: flex;
		align-items: center;
		min-height: 42px;
		padding: 8px 12px;
		border-radius: 10px;
		color: var(--hitting-ink);
		font-size: 14px;
		font-weight: 700;
	}

	.header-navbar__burger > ul.menu > li > a:hover {
		color: var(--hitting-green-dark);
		background: var(--hitting-green-soft);
	}

	.header-navbar__burger .menu-item-2860 {
		display: none;
	}

	.header-navbar__end .hp-menu__item--listing-submit {
		min-height: 42px;
		padding: 0 14px;
		font-size: 13px;
	}

	.header-navbar__end .hp-menu__item--listing-submit .hp-icon {
		margin-right: 6px;
	}
}

@media (max-width: 420px) {
	.header-logo .custom-logo {
		height: 40px;
	}

	.logged-in .header-navbar__end .hp-menu__item--listing-submit span {
		display: none;
	}

	.logged-in .header-navbar__end .hp-menu__item--listing-submit {
		width: 42px;
		padding: 0;
	}

	.header-navbar__end .hp-menu__item--listing-submit .hp-icon {
		margin: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.header-navbar__menu > ul > li > a,
	.header-navbar__end .hp-menu__item--listing-submit {
		transition: none;
	}
}


/* Homepage: Phase 1 primary actions */
.home .hero-h1 {
	max-width: 920px;
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.25;
	letter-spacing: 0.05em;
}

.home .hero-p {
	color: var(--hitting-muted);
	font-size: clamp(0.95rem, 1.6vw, 1.1rem);
	font-weight: 600;
}

.hitting-hero-actions {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin: 0 0 28px;
	pointer-events: auto;
}

.hitting-hero-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 154px;
	min-height: 48px;
	padding: 0 24px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.hitting-hero-cta--primary {
	background: linear-gradient(135deg, var(--hitting-green), var(--hitting-green-dark));
	box-shadow: 0 12px 26px rgba(0, 168, 132, 0.24);
	color: #fff;
}

.hitting-hero-cta--secondary {
	border: 1px solid var(--hitting-line);
	background: rgba(255, 255, 255, 0.92);
	color: var(--hitting-ink);
}

.hitting-hero-cta:hover {
	transform: translateY(-2px);
	text-decoration: none;
}

.hitting-hero-cta--primary:hover {
	box-shadow: 0 16px 32px rgba(0, 168, 132, 0.3);
	color: #fff;
}

.hitting-hero-cta--secondary:hover {
	border-color: var(--hitting-green);
	background: var(--hitting-green-soft);
	color: var(--hitting-green-dark);
}

@media (max-width: 600px) {
	.home .hero-h1 {
		font-size: clamp(1.65rem, 8vw, 2.2rem);
		letter-spacing: 0.02em;
	}

	.hitting-hero-actions {
		width: min(100%, 360px);
		margin-bottom: 22px;
	}

	.hitting-hero-cta {
		flex: 1 1 0;
		min-width: 0;
		min-height: 46px;
		padding: 0 14px;
		font-size: 14px;
	}
}


/* Coach archive: canonical Hitting comparison layout */
.post-type-archive-hp_listing {
	--hitting-navy: #082b63;
	--hitting-teal: #079db3;
	--hitting-teal-soft: #eaf8fb;
	--hitting-coral: #ff4b43;
	background: #f7f9fc;
	color: var(--hitting-navy);
}

.post-type-archive-hp_listing .hp-page {
	width: min(100% - 32px, 900px);
	margin: 32px auto 64px;
}

.post-type-archive-hp_listing .hp-page__header {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 14px;
	align-items: center;
	margin-bottom: 18px;
	padding: 0;
}

.post-type-archive-hp_listing .hp-page__header::before {
	content: "コーチを探す";
	grid-column: 1 / -1;
	color: var(--hitting-navy);
	font-size: clamp(1.45rem, 3vw, 2rem);
	font-weight: 800;
	letter-spacing: .03em;
}

.post-type-archive-hp_listing .hp-form--listing-search {
	margin: 0;
	border: 1px solid #dbe4ee;
	border-radius: 12px;
	background: #fff;
	box-shadow: none;
	overflow: hidden;
}

.post-type-archive-hp_listing .hp-form--listing-search .hp-form__button,
.post-type-archive-hp_listing .hp-button--listing-filter,
.post-type-archive-hp_listing .hp-form--listing-filter .hp-form__button {
	min-height: 46px;
	border: 0;
	border-radius: 10px;
	background: var(--hitting-navy);
	box-shadow: none;
	color: #fff;
	font-weight: 800;
}

.post-type-archive-hp_listing .hp-button--listing-filter {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: auto;
	padding: 0 22px;
}

.post-type-archive-hp_listing .hp-page > .hp-row {
	display: block;
}

.post-type-archive-hp_listing .hp-page__sidebar {
	display: none;
}

.post-type-archive-hp_listing .hp-page__content {
	width: 100%;
	max-width: none;
	padding: 0;
}

.post-type-archive-hp_listing .hp-page__content::before {
	content: "予約前に相談できます　プロフィール・指導方針・料金プランを確認できます";
	display: block;
	margin: 0 0 16px;
	padding: 13px 16px;
	border: 1px solid #cbe8ee;
	border-radius: 12px;
	background: var(--hitting-teal-soft);
	color: #176579;
	font-size: 14px;
	font-weight: 700;
}

.post-type-archive-hp_listing .hp-listings > .hp-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0;
}

.post-type-archive-hp_listing .hp-listings .hp-grid__item {
	width: 100%;
	max-width: none;
	padding: 0;
}

.post-type-archive-hp_listing .hp-listing--view-block {
	display: grid !important;
	grid-template-columns: 190px minmax(0, 1fr);
	grid-template-rows: 1fr auto;
	margin: 0;
	border: 1px solid #dce5ee;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 5px 18px rgba(8, 43, 99, .06);
	overflow: hidden;
}

.post-type-archive-hp_listing .hp-listing__header {
	position: relative;
	grid-row: 1 / 3;
	width: 100% !important;
	min-width: 0;
	max-width: 100% !important;
	min-height: 210px;
	margin: 0;
	overflow: hidden;
}

/* Keep keyboard focus visible across custom cards and navigation (v0.5.18). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid #079eb8 !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 3px rgba(7, 158, 184, 0.18) !important;
}

.skip-link:focus {
	color: #066f80 !important;
}

.header-navbar__burger > a:focus {
	outline: 3px solid #079eb8 !important;
	outline-offset: 3px !important;
}

.hitting-blog-heading {
	margin: 0 0 2rem;
	text-align: left;
}

.hitting-blog-heading h1 {
	margin: 0;
	color: #082659;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.3;
}

/* Journal index: editorial landing page based on the approved visual direction. */
.hitting-journal { background: #fff; color: #082659; }
.blog .site-content { padding-top: 0; padding-bottom: 0; }
.blog .site-content > .container { width: 100%; max-width: none; padding-right: 0; padding-left: 0; }
.hitting-journal a { color: inherit; }
.hitting-journal-hero,
.hitting-journal-section { width: min(100% - 48px, 1180px); margin: 0 auto; }
.hitting-journal-hero { padding: 64px 0 24px; }
.hitting-journal-hero__heading { margin-bottom: 30px; }
.hitting-journal-hero__heading p,
.hitting-journal-section__heading p,
.hitting-journal-cta p { margin: 0 0 5px; color: #087c96; font-size: 12px; font-weight: 900; letter-spacing: .14em; }
.hitting-journal-hero__heading h1 { margin: 0; color: #082659; font-size: clamp(34px, 5vw, 58px); line-height: 1.15; }
.hitting-journal-hero__heading span { display: block; margin-top: 10px; color: #536882; font-weight: 700; }
.hitting-journal-feature { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .75fr); overflow: hidden; border: 1px solid #dce7f2; border-radius: 22px; background: #f5f9fd; box-shadow: 0 18px 48px rgba(8,38,89,.1); }
.hitting-journal-feature__image { min-height: 430px; background: #e9f2fa; }
.hitting-journal-feature__image img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; }
.hitting-journal-feature__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(30px, 4vw, 58px); }
.hitting-journal-feature__categories a,
.hitting-journal-latest__categories a { display: inline-block; margin: 0 8px 8px 0; color: #087c96; font-size: 12px; font-weight: 900; }
.hitting-journal-feature h2 { margin: 6px 0 15px; color: #082659; font-size: clamp(24px, 3vw, 38px); line-height: 1.35; }
.hitting-journal-feature p { margin: 0 0 16px; color: #536882; line-height: 1.8; }
.hitting-journal-feature__body > span { color: #7a8ca2; font-size: 12px; }
.hitting-journal-button { display: inline-flex; align-self: flex-start; align-items: center; justify-content: center; min-height: 48px; margin-top: 24px; padding: 0 24px; border-radius: 8px; background: #d73a33; color: #fff !important; font-size: 14px; font-weight: 900; }
.hitting-journal-categories { display: flex; width: min(100% - 48px, 1180px); margin: 16px auto 0; gap: 10px; overflow-x: auto; padding: 10px 0 16px; scrollbar-width: thin; }
.hitting-journal-categories a { flex: 0 0 auto; padding: 10px 17px; border: 1px solid #c9d8e8; border-radius: 999px; color: #294b75; font-size: 13px; font-weight: 800; }
.hitting-journal-categories a.is-current { border-color: #082659; background: #082659; color: #fff; }
.hitting-journal-section { padding: 58px 0 18px; }
.hitting-journal-section__heading { margin-bottom: 24px; }
.hitting-journal-section__heading h2 { margin: 0; color: #082659; font-size: clamp(27px, 4vw, 40px); }
.hitting-journal-pickup { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.hitting-journal-pickup article { min-width: 0; overflow: hidden; border: 1px solid #dce7f2; border-radius: 14px; background: #fff; }
.hitting-journal-pickup article a { display: block; }
.hitting-journal-pickup img { width: 100%; height: 142px; object-fit: cover; }
.hitting-journal-pickup span { display: block; padding: 14px 15px 0; color: #087c96; font-size: 11px; font-weight: 900; }
.hitting-journal-pickup h3 { margin: 6px 15px 18px; color: #082659; font-size: 14px; line-height: 1.55; }
.hitting-journal-latest { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.hitting-journal-latest article { overflow: hidden; border: 1px solid #dce7f2; border-radius: 16px; background: #fff; }
.hitting-journal-latest__image { display: block; background: #edf4fa; }
.hitting-journal-latest__image img { width: 100%; height: 210px; object-fit: cover; }
.hitting-journal-latest article > div { padding: 20px; }
.hitting-journal-latest h3 { margin: 2px 0 10px; color: #082659; font-size: 18px; line-height: 1.55; }
.hitting-journal-latest p { margin: 0 0 14px; color: #536882; font-size: 13px; line-height: 1.7; }
.hitting-journal-latest article > div > span { color: #7a8ca2; font-size: 12px; }
.hitting-journal .navigation.pagination { margin: 38px 0 10px; }
.hitting-journal-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 70px; padding: 55px max(24px, calc((100vw - 1180px)/2)); background: linear-gradient(120deg, #082659, #087c96); color: #fff; }
.hitting-journal-cta p { color: #93eef4; }
.hitting-journal-cta h2 { margin: 0 0 7px; color: #fff; font-size: clamp(26px, 4vw, 42px); }
.hitting-journal-cta span { color: #d9f7fb; }
.hitting-journal-cta > a { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-width: 210px; min-height: 52px; padding: 0 24px; border-radius: 8px; background: #d73a33; color: #fff; font-weight: 900; }

@media (max-width: 960px) {
	.hitting-journal-feature { grid-template-columns: 1fr; }
	.hitting-journal-feature__image,
	.hitting-journal-feature__image img { min-height: 300px; }
	.hitting-journal-pickup { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.hitting-journal-latest { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.hitting-journal-hero,
	.hitting-journal-section,
	.hitting-journal-categories { width: min(100% - 32px, 1180px); }
	.hitting-journal-hero { padding-top: 38px; }
	.hitting-journal-feature { border-radius: 16px; }
	.hitting-journal-feature__image,
	.hitting-journal-feature__image img { min-height: 220px; }
	.hitting-journal-feature__body { padding: 24px 20px 28px; }
	.hitting-journal-feature p { display: none; }
	.hitting-journal-button { width: 100%; }
	.hitting-journal-section { padding-top: 42px; }
	.hitting-journal-pickup { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 8px; scroll-snap-type: x proximity; }
	.hitting-journal-pickup article { flex: 0 0 74%; scroll-snap-align: start; }
	.hitting-journal-pickup img { height: 160px; }
	.hitting-journal-latest { grid-template-columns: 1fr; gap: 16px; }
	.hitting-journal-latest > * { min-width: 0; max-width: 100%; }
	.hitting-journal .custom-category-sections {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 0 32px !important;
		padding: 0 !important;
		gap: 16px !important;
		box-sizing: border-box;
	}
	.hitting-journal .custom-category-sections .cat-section {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		padding: 16px !important;
		box-sizing: border-box;
	}
	.hitting-journal .custom-category-sections .cat-post-list,
	.hitting-journal .custom-category-sections .cat-post-list li,
	.hitting-journal .custom-category-sections .cat-post-list li > div,
	.hitting-journal .custom-category-sections .post-link {
		min-width: 0;
		max-width: 100%;
	}
	.hitting-journal .custom-category-sections .post-link,
	.hitting-journal-latest article > div { overflow-wrap: anywhere; }
	.hitting-journal-latest article { display: grid; grid-template-columns: 42% 58%; }
	.hitting-journal-latest__image img { height: 100%; min-height: 174px; }
	.hitting-journal-latest article > div { min-width: 0; padding: 15px; }
	.hitting-journal-latest h3 { font-size: 15px; }
	.hitting-journal-latest p { display: none; }
	.hitting-journal-cta { display: block; margin-top: 45px; padding-top: 42px; padding-bottom: 42px; }
	.hitting-journal-cta > a { width: 100%; margin-top: 24px; }
}

/* The registration component supplies the single descriptive page heading. */
body:has(.hitting-register) .page__title.entry-title {
	display: none;
}

.post-type-archive-hp_listing .hp-listing__image {
	height: 100%;
	min-height: 210px;
	border-radius: 0;
	background: #edf3f7;
}

.post-type-archive-hp_listing .hp-listing__image::before {
	content: "本人確認済み";
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--hitting-teal);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .02em;
	display: none;
}

.post-type-archive-hp_listing .hp-listing--view-block:has(.hp-listing__verified-badge) .hp-listing__image::before {
	display: block;
}

.post-type-archive-hp_listing .hp-listing__verified-badge {
	display: none;
}

.post-type-archive-hp_listing .hp-listing__image img {
	width: 100%;
	height: 100%;
	min-height: 210px;
	object-fit: cover;
}

/* Make missing coach photos intentional without inventing profile imagery. */
.post-type-archive-hp_listing .hp-listing__header:has(img[src*="/placeholders/image-landscape.svg"]) {
	background:
		url("assets/images/hitting-wordmark.svg") center calc(50% - 13px) / 104px auto no-repeat,
		linear-gradient(145deg, #e8f8fb 0%, #f4f8fc 52%, #eaf3fb 100%);
}

.post-type-archive-hp_listing .hp-listing__header:has(img[src*="/placeholders/image-landscape.svg"])::after {
	content: "写真準備中";
	position: absolute;
	top: calc(50% + 25px);
	left: 50%;
	z-index: 1;
	transform: translateX(-50%);
	color: #58728d;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	white-space: nowrap;
}

.post-type-archive-hp_listing .hp-listing__header:has(img[src*="/placeholders/image-landscape.svg"]) .hp-listing__image {
	background: transparent;
}

.post-type-archive-hp_listing .hp-listing__header:has(img[src*="/placeholders/image-landscape.svg"]) .hp-listing__image img {
	opacity: 0;
}

.post-type-archive-hp_listing .hp-listing__content {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100% !important;
	min-width: 0;
	max-width: 100% !important;
	padding: 18px 20px 10px;
	overflow: hidden;
}

.post-type-archive-hp_listing .hp-listing__categories,
.post-type-archive-hp_listing .hp-listing__created-date {
	display: none;
}

.post-type-archive-hp_listing .hp-listing__attributes--secondary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	width: 100% !important;
	min-width: 0;
	max-width: 100% !important;
	order: 1;
	margin: 0;
}

.post-type-archive-hp_listing .hp-listing__attributes--secondary .hp-row {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	width: 100%;
	margin: 0;
}

.post-type-archive-hp_listing .hp-listing__attributes--secondary .hp-row > div {
	flex: 0 1 auto;
	width: auto !important;
	max-width: 100%;
	padding: 0;
}

.post-type-archive-hp_listing .hp-listing__attributes--secondary .hp-row > div:has(.hp-listing__attribute--chargename),
.post-type-archive-hp_listing .hp-listing__attributes--secondary .hp-row > div:has(.hp-listing__attribute--area) {
	flex-basis: 100%;
}

.post-type-archive-hp_listing .hp-listing__attribute--chargename {
	flex: 0 0 100%;
	color: var(--hitting-navy);
	font-size: 1.12rem;
	font-weight: 800;
	overflow-wrap: anywhere;
}

.post-type-archive-hp_listing .hp-listing__attribute--chargename::after {
	content: " コーチ";
	font-size: .72em;
	font-weight: 700;
}

.post-type-archive-hp_listing .hp-listing__attribute--area {
	flex: 0 0 100%;
	color: #40556f;
	font-size: 12px;
	font-weight: 700;
}

.post-type-archive-hp_listing .hp-listing__attribute--area::before {
	content: "⌖ ";
	color: var(--hitting-teal);
}

.post-type-archive-hp_listing .hp-listing__attribute--old,
.post-type-archive-hp_listing .hp-listing__attribute--level {
	padding: 4px 8px;
	border-radius: 6px;
	background: #eef3f8;
	color: #41536b;
	font-size: 11px;
	font-weight: 700;
}

.post-type-archive-hp_listing .hp-listing__title {
	order: 2;
	margin: 0;
	font-size: .92rem;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.post-type-archive-hp_listing .hp-listing__title > a {
	color: #3f5067;
	font-weight: 600;
}

.post-type-archive-hp_listing .hp-listing__details--primary {
	order: 3;
	margin: 0;
}

.post-type-archive-hp_listing .hp-listing__footer {
	grid-column: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 20px 18px;
	border: 0;
}

.post-type-archive-hp_listing .hp-listing__attribute--price {
	color: var(--hitting-navy);
	font-size: 1.1rem;
	font-weight: 900;
}

.post-type-archive-hp_listing .hp-listing__attribute--price::after {
	content: " / 60分〜";
	color: #6f7d90;
	font-size: 12px;
	font-weight: 600;
}

.post-type-archive-hp_listing .hp-listing__actions {
	margin-left: auto;
}

.post-type-archive-hp_listing .hp-listing__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid #d9e3ed;
	border-radius: 50%;
	color: var(--hitting-navy);
	font-size: 0;
	line-height: 1;
	text-decoration: none;
}

.post-type-archive-hp_listing .hp-listing__action::before {
	display: inline-block;
	font-family: "Font Awesome 5 Free";
	font-size: 15px;
	font-weight: 900;
	line-height: 1;
}

.post-type-archive-hp_listing .hp-listing__action--message::before {
	content: "\f075";
}

.post-type-archive-hp_listing .hp-listing__action--favorite::before {
	content: "\f004";
}

.post-type-archive-hp_listing .hp-listing__title > a::after {
	content: "プロフィールとレッスンを見る";
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 42px;
	margin-top: 12px;
	border: 1.5px solid var(--hitting-navy);
	border-radius: 8px;
	background: #fff;
	color: var(--hitting-navy);
	font-size: 14px;
	font-weight: 800;
}

.post-type-archive-hp_listing .hp-listing__title > a:hover::after {
	background: var(--hitting-navy);
	color: #fff;
}

.post-type-archive-hp_listing .hp-page__content > div:first-child {
	color: #3f5067;
	font-weight: 700;
}

@media (max-width: 767px) {
	.post-type-archive-hp_listing .hp-page {
		width: min(100% - 20px, 520px);
		margin: 16px auto 84px;
	}

	.post-type-archive-hp_listing .hp-page__header {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
		position: sticky;
		top: 66px;
		z-index: 20;
		padding: 10px 0;
		background: rgba(247, 249, 252, .96);
		backdrop-filter: blur(12px);
	}

	.admin-bar.post-type-archive-hp_listing .hp-page__header {
		top: 112px;
	}

	.post-type-archive-hp_listing .hp-page__header::before {
		font-size: 1.25rem;
	}

	.post-type-archive-hp_listing .hp-form--listing-search {
		display: none;
	}

	.post-type-archive-hp_listing .hp-button--listing-filter {
		grid-column: 1 / -1;
		width: 100%;
		background: #fff;
		border: 1.5px solid var(--hitting-navy);
		color: var(--hitting-navy);
	}

	.post-type-archive-hp_listing .hp-page__content::before {
		font-size: 12px;
		line-height: 1.5;
	}

	.post-type-archive-hp_listing .hp-listing--view-block {
		grid-template-columns: 126px minmax(0, 1fr);
		grid-template-rows: 1fr auto;
		border-radius: 12px;
	}

	.post-type-archive-hp_listing .hp-listing__header,
	.post-type-archive-hp_listing .hp-listing__image,
	.post-type-archive-hp_listing .hp-listing__image img {
		min-height: 172px;
	}

	.post-type-archive-hp_listing .hp-listing__header {
		grid-column: 1;
	}

	.post-type-archive-hp_listing .hp-listing__content {
		grid-column: 2;
	}

	.post-type-archive-hp_listing .hp-listing__content {
		gap: 5px;
		padding: 14px 12px 6px;
	}

	.post-type-archive-hp_listing .hp-listing__attribute--chargename {
		font-size: .98rem;
		line-height: 1.35;
	}

	.post-type-archive-hp_listing .hp-listing__attribute--area {
		font-size: 11px;
	}

	.post-type-archive-hp_listing .hp-listing__title {
		font-size: .79rem;
	}

	.post-type-archive-hp_listing .hp-listing__title > a::after {
		min-height: 36px;
		margin-top: 8px;
		font-size: 12px;
	}

	.post-type-archive-hp_listing .hp-listing__footer {
		grid-column: 1 / -1;
		padding: 10px 12px;
		border-top: 1px solid #edf1f5;
	}

	.post-type-archive-hp_listing .hp-listing__attribute--price {
		font-size: 1rem;
	}

	.post-type-archive-hp_listing .hp-listing__action {
		width: 34px;
		height: 34px;
	}
}


/* Coach filter sheet */
.post-type-archive-hp_listing #listing_filter_modal.fancybox-content {
	width: min(94vw, 560px);
	max-width: 560px;
	max-height: calc(100vh - 28px);
	padding: 26px 24px 88px;
	border-radius: 18px 18px 0 0;
	background: #fff;
	overflow-y: auto;
}

.post-type-archive-hp_listing #listing_filter_modal.fancybox-content::before {
	content: "条件を追加・変更";
	display: block;
	margin: 0 42px 22px 0;
	color: var(--hitting-navy);
	font-size: 1.3rem;
	font-weight: 900;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-form__fields {
	display: grid;
	gap: 14px;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-form__field {
	margin: 0;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-form__field--text {
	display: none;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-form__label {
	margin-bottom: 8px;
	color: var(--hitting-navy);
	font-size: 14px;
	font-weight: 900;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-field--radio,
.post-type-archive-hp_listing #listing_filter_modal .hp-field--checkboxes,
.post-type-archive-hp_listing #listing_filter_modal .hp-field--number-range,
.post-type-archive-hp_listing #listing_filter_modal .hp-form__field--select {
	padding: 14px;
	border: 1px solid #dce5ee;
	border-radius: 12px;
	background: #fff;
}

.post-type-archive-hp_listing #listing_filter_modal li:has(input[value="271"]) {
	display: none;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-field--checkboxes ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-field--checkboxes li {
	margin: 0;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-field--checkbox,
.post-type-archive-hp_listing #listing_filter_modal .hp-field--radio label {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 8px 12px;
	border: 1px solid #dce5ee;
	border-radius: 9px;
	background: #fff;
	color: #31435b;
	font-size: 13px;
	font-weight: 700;
}

.post-type-archive-hp_listing #listing_filter_modal input:checked + span {
	color: var(--hitting-teal);
	font-weight: 900;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-form__footer {
	position: sticky;
	bottom: -88px;
	z-index: 3;
	margin: 18px -24px -88px;
	padding: 14px 24px 18px;
	border-top: 1px solid #e4ebf2;
	background: rgba(255, 255, 255, .97);
	backdrop-filter: blur(10px);
}

.post-type-archive-hp_listing #listing_filter_modal .hp-form__button {
	width: 100%;
	background: var(--hitting-coral);
}

.post-type-archive-hp_listing #listing_filter_modal .fancybox-close-small {
	top: 12px;
	right: 12px;
	color: var(--hitting-navy);
}

@media (min-width: 768px) {
	.post-type-archive-hp_listing #listing_filter_modal.fancybox-content {
		border-radius: 18px;
	}
}


/* Phase-one lesson format controls */
.post-type-archive-hp_listing #listing_filter_modal .hp-form__field--radio::before {
	content: "個人・グループ";
	display: block;
	margin-bottom: 8px;
	color: var(--hitting-navy);
	font-size: 14px;
	font-weight: 900;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-field--radio > ul > li > label {
	display: none;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-field--radio > ul > li > ul {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-field--radio > ul > li > ul > li {
	margin: 0;
}

.post-type-archive-hp_listing #listing_filter_modal li:has(input[value="270"]),
.post-type-archive-hp_listing #listing_filter_modal li:has(input[value="271"]) {
	display: none;
}


/* Keep the format group visible while excluding future-phase formats. */
.post-type-archive-hp_listing #listing_filter_modal .hp-field--radio > ul > li {
	display: block !important;
}

.post-type-archive-hp_listing #listing_filter_modal .hp-field--radio > ul > li > ul > li:has(> label > input[value="270"]),
.post-type-archive-hp_listing #listing_filter_modal .hp-field--radio > ul > li > ul > li:has(> label > input[value="271"]) {
	display: none !important;
}


/* Coach detail: canonical Hitting profile and booking flow (v0.3.5) */
.single-hp_listing {
  --hitting-navy: #082b63;
  --hitting-teal: #079db3;
  --hitting-teal-soft: #eaf8fb;
  --hitting-coral: #ff4b43;
  --hitting-coral-dark: #e33a34;
  --hitting-bg: #f7f9fc;
  --hitting-border: #dce5ee;
  background: var(--hitting-bg);
  color: var(--hitting-navy);
}
.single-hp_listing .site-content {
  width: min(100% - 36px, 1160px);
  margin: 34px auto 72px;
  padding: 0;
}
.single-hp_listing .hp-listing--view-page {
  align-items: flex-start;
  margin: 0 -12px;
}
.single-hp_listing .hp-listing--view-page > .hp-page__content,
.single-hp_listing .hp-listing--view-page > .hp-page__sidebar {
  padding: 0 12px;
}
.single-hp_listing .hp-listing--view-page > .hp-page__content {
  flex: 0 0 64%;
  max-width: 64%;
  padding: 30px;
  border: 1px solid var(--hitting-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(8,43,99,.06);
}
.single-hp_listing .hp-listing--view-page > .hp-page__sidebar {
  flex: 0 0 36%;
  max-width: 36%;
}
.single-hp_listing .hp-listing__categories {
  margin: 0 0 12px;
}
.single-hp_listing .hp-listing__categories a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--hitting-teal-soft);
  color: #176579;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.single-hp_listing h1.hp-listing__title {
  margin: 0;
  color: var(--hitting-navy);
  font-size: clamp(2rem,4vw,3rem);
  font-weight: 900;
  letter-spacing: .02em;
  line-height: 1.2;
}
.single-hp_listing .hp-listing__details--primary {
  display: none;
}
.single-hp_listing .hp-page__topbar {
  min-height: 46px;
  margin: 18px 0 0;
  padding: 0 0 18px;
  border-bottom: 1px solid var(--hitting-border);
}
.single-hp_listing .hp-menu--listing-manage a {
  color: var(--hitting-navy);
  font-weight: 800;
}
.single-hp_listing .hp-listing__actions--secondary .hp-listing__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--hitting-border);
  border-radius: 999px;
  color: #5c6d82;
  font-size: 0;
  text-decoration: none;
}
.single-hp_listing .hp-listing__actions--secondary .hp-listing__action::after {
  content: "お気に入り";
  margin-left: 7px;
  font-size: 12px;
  font-weight: 800;
}
.single-hp_listing .hp-listing__attributes--secondary {
  margin: 24px 0 0;
  padding: 20px;
  border: 1px solid #cbe8ee;
  border-radius: 14px;
  background: var(--hitting-teal-soft);
}
.single-hp_listing .hp-listing__attributes--secondary::before {
  content: "対応できる内容";
  display: block;
  margin-bottom: 12px;
  color: var(--hitting-navy);
  font-size: 15px;
  font-weight: 900;
}
.single-hp_listing .hp-listing__attributes--secondary .hp-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}
.single-hp_listing .hp-listing__attributes--secondary [class*="hp-col-"] {
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  padding: 0;
}
.single-hp_listing .hp-listing__attributes--secondary .hp-listing__attribute {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid #b9dce4;
  border-radius: 999px;
  background: #fff;
  color: #244a62;
  font-size: 13px;
  font-weight: 800;
}
.single-hp_listing .hp-listing__description {
  margin-top: 22px;
  padding: 24px;
  border: 1px solid var(--hitting-border);
  border-radius: 14px;
  background: #fff;
  color: #34465d;
  font-size: 15px;
  line-height: 1.9;
}
.single-hp_listing .hp-listing__description::before {
  content: "コーチ・レッスンについて";
  display: block;
  margin-bottom: 16px;
  color: var(--hitting-navy);
  font-size: 18px;
  font-weight: 900;
}
.single-hp_listing .hp-listing__description p:last-child {
  margin-bottom: 0;
}
.single-hp_listing .hp-page__sidebar .inner-wrapper-sticky {
  top: 108px !important;
}
.single-hp_listing .hitting-lesson-summary {
	margin: 0 0 16px;
	padding: 22px;
	border: 1px solid #dce5ee;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(6, 42, 91, .07);
}

.single-hp_listing .hitting-lesson-summary__eyebrow {
	margin: 0 0 5px;
	color: var(--hitting-teal);
	font-size: 12px;
	font-weight: 900;
}

.single-hp_listing .hitting-lesson-summary h2 {
	margin: 0;
	color: var(--hitting-navy);
	font-size: 1.1rem;
}

.single-hp_listing .hitting-lesson-summary__main {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 14px 0;
}

.single-hp_listing .hitting-lesson-summary__main strong {
	color: var(--hitting-navy);
	font-size: 1.05rem;
}

.single-hp_listing .hitting-lesson-summary__main b {
	color: var(--hitting-teal);
	font-size: 1.75rem;
	line-height: 1;
}

.single-hp_listing .hitting-lesson-summary dl {
	display: grid;
	gap: 8px;
	margin: 0;
}

.single-hp_listing .hitting-lesson-summary dl div {
	display: grid;
	grid-template-columns: 58px 1fr;
	gap: 10px;
	padding-top: 8px;
	border-top: 1px solid #edf1f5;
}

.single-hp_listing .hitting-lesson-summary dt {
	color: #64748b;
	font-size: 12px;
	font-weight: 800;
}

.single-hp_listing .hitting-lesson-summary dd {
	margin: 0;
	color: var(--hitting-navy);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.55;
}

.single-hp_listing .hitting-lesson-summary__notice {
	margin: 14px 0 0;
	padding: 10px 12px;
	border-radius: 9px;
	background: #eefbfc;
	color: #256474;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.55;
}

.single-hp_listing .hp-listing__attributes--primary {
  margin: 0 0 10px;
  padding: 18px 22px;
  border: 0;
  border-radius: 14px 14px 0 0;
  background: var(--hitting-navy);
  box-shadow: 0 8px 28px rgba(8,43,99,.08);
  color: #fff;
}
.single-hp_listing .hp-listing__attributes--primary::before {
  content: "対面レッスン";
  display: block;
  margin-bottom: 4px;
  color: #bfeaf0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}
.single-hp_listing .hp-listing__attribute--price {
  color: #fff;
  font-size: 1.75rem;
  font-weight: 900;
}
.single-hp_listing .hp-listing__attribute--price::after {
  content: "（税込）";
  margin-left: 6px;
  color: #d7e5f4;
  font-size: 12px;
  font-weight: 700;
}
.single-hp_listing .hp-form--booking-make {
  margin: 0;
  padding: 24px 22px 20px;
  border: 1px solid var(--hitting-border);
  border-radius: 0 0 14px 14px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(8,43,99,.08);
}
.single-hp_listing .hp-form--booking-make::before {
  content: "希望日時を3つ送る";
  display: block;
  margin-bottom: 6px;
  color: var(--hitting-navy);
  font-size: 20px;
  font-weight: 900;
}
.single-hp_listing .hp-form--booking-make::after {
  content: "送信時点では予約・決済は確定しません。コーチの回答後に内容を確認して決済します。";
  display: block;
  margin-top: 14px;
  padding: 12px 13px;
  border-radius: 10px;
  background: var(--hitting-teal-soft);
  color: #176579;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
}
.single-hp_listing .hp-form--booking-make .hp-form__fields {
  counter-reset: hitting-choice;
}
.single-hp_listing .hp-form--booking-make .hp-form__field {
  margin: 0 0 14px;
}
.single-hp_listing .hp-form--booking-make .hp-form__field--date {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #edf1f5;
}
.single-hp_listing .hp-form--booking-make .hp-form__field--date:first-of-type {
  margin-top: 14px;
  padding-top: 0;
  border-top: 0;
}
.single-hp_listing .hp-form--booking-make .hp-form__label {
  margin-bottom: 7px;
  color: var(--hitting-navy);
  font-size: 13px;
  font-weight: 900;
}
.single-hp_listing .hp-form--booking-make .hp-field__description {
  margin: -1px 0 9px;
  color: #65758a;
  font-size: 11px;
  line-height: 1.55;
}
.single-hp_listing .hp-form--booking-make input,
.single-hp_listing .hp-form--booking-make select,
.single-hp_listing .hp-form--booking-make .select2-selection {
  min-height: 46px;
  border: 1px solid #cfd9e4;
  border-radius: 9px;
  background: #fff;
  color: #263b55;
  box-shadow: none;
}
.single-hp_listing .hp-form--booking-make input:focus,
.single-hp_listing .hp-form--booking-make select:focus {
  border-color: var(--hitting-teal);
  box-shadow: 0 0 0 3px rgba(7,157,179,.12);
}
.single-hp_listing .hp-form--booking-make .hp-form__footer {
  margin-top: 18px;
}
.single-hp_listing .hp-form--booking-make .hp-form__button {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 10px;
  background: var(--hitting-coral);
  box-shadow: 0 10px 22px rgba(255,75,67,.2);
  color: #fff;
  font-size: 15px;
  font-weight: 900;
}
.single-hp_listing .hp-form--booking-make .hp-form__button:hover {
  background: var(--hitting-coral-dark);
}
.single-hp_listing .hp-listing__actions--primary.hp-widget {
  margin: 14px 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.single-hp_listing .hp-listing__action--message {
  display: grid !important;
  grid-template-columns: minmax(0,1fr);
  gap: 3px;
  justify-items: center;
  width: 100%;
  min-height: 48px;
  padding: 10px 14px !important;
  border: 1.5px solid var(--hitting-teal) !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--hitting-teal) !important;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
}
.single-hp_listing .hp-listing__action--message::after {
  content: "予約前に質問できます";
  display: block;
  width: 100%;
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
  opacity: .8;
}
.single-hp_listing .hp-listing__action--review {
  display: none;
}
.single-hp_listing .hp-listing__action--report {
  display: block;
  margin: 10px auto 0;
  color: #8a98aa;
  font-size: 11px;
  text-align: center;
}
.single-hp_listing .hp-vendor--view-block {
  position: relative;
  display: grid;
  grid-template-columns: 72px minmax(0,1fr);
  align-items: center;
  gap: 14px;
  margin-top: 16px;
  padding: 48px 18px 18px;
  border: 1px solid var(--hitting-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(8,43,99,.06);
}
.single-hp_listing .hp-vendor--view-block::before {
  content: "このレッスンのコーチ";
  position: absolute;
  top: 16px;
  left: 18px;
  color: var(--hitting-navy);
  font-size: 14px;
  font-weight: 900;
}
.single-hp_listing .hp-vendor--view-block .hp-vendor__header,
.single-hp_listing .hp-vendor--view-block .hp-vendor__content,
.single-hp_listing .hp-vendor--view-block .hp-vendor__footer {
  margin: 0;
  padding: 0;
  border: 0;
}
.single-hp_listing .hp-vendor--view-block .hp-vendor__image,
.single-hp_listing .hp-vendor--view-block .hp-vendor__image img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
}
.single-hp_listing .hp-vendor--view-block .hp-vendor__name {
  margin: 0 0 4px;
  font-size: 16px;
}
.single-hp_listing .hp-vendor--view-block .hp-vendor__name a {
  color: var(--hitting-navy);
  font-weight: 900;
}
.single-hp_listing .hp-vendor--view-block .hp-vendor__details {
  color: #748397;
  font-size: 11px;
}
.single-hp_listing .hp-vendor--view-block .hp-vendor__footer {
  display: none;
}
.single-hp_listing .hp-section--listings {
  margin-top: 44px;
}
.single-hp_listing .hp-section--listings .hp-section__title {
  color: var(--hitting-navy);
  font-size: 1.6rem;
  font-weight: 900;
}
.single-hp_listing .hp-section--listings .hp-listing--view-block {
  border: 1px solid var(--hitting-border);
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(8,43,99,.06);
  overflow: hidden;
}
.single-hp_listing .hp-section--listings .hp-listing__title a,
.single-hp_listing .hp-section--listings .hp-listing__attribute--chargename {
  color: var(--hitting-navy);
}
.single-hp_listing .hp-section--listings .hp-listing__attribute--price {
  color: var(--hitting-navy);
  font-size: 1rem;
}
.single-hp_listing .hp-section--listings .hp-listing__attribute--price::after {
  display: none;
}
@media (max-width: 767px) {
  .single-hp_listing { overflow-x: hidden; }
  .single-hp_listing .site-content {
    width: min(100% - 20px,520px);
    margin: 16px auto 72px;
  }
  .single-hp_listing .hp-listing--view-page {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
  }
  .single-hp_listing .hp-listing--view-page > .hp-page__content,
  .single-hp_listing .hp-listing--view-page > .hp-page__sidebar {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
  .single-hp_listing .hp-listing--view-page > .hp-page__content {
    padding: 22px 18px;
    border-radius: 14px;
  }
  .single-hp_listing h1.hp-listing__title { font-size: 2rem; }
  .single-hp_listing .hp-listing__attributes--secondary,
  .single-hp_listing .hp-listing__description { padding: 17px 15px; }
  .single-hp_listing .hp-page__sidebar .inner-wrapper-sticky { position: static !important; }
  .single-hp_listing .hp-form--booking-make { padding: 20px 16px 18px; }
  .single-hp_listing .hp-listing__action--message { flex-direction: column; gap: 2px; }
  .single-hp_listing .hp-listing__action--message::after { margin-left: 0; }
  .single-hp_listing .hp-section--listings .hp-row { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 0; }
  .single-hp_listing .hp-section--listings .hp-grid__item { width: 100%; max-width: 100%; padding: 0; }
}


/* Account bookings and booking detail: canonical status flow (v0.3.6) */
.hp-template--bookings-view-page,
.hp-template--booking-view-page {
  --hitting-navy: #082b63;
  --hitting-teal: #079db3;
  --hitting-teal-soft: #eaf8fb;
  --hitting-coral: #ff4b43;
  --hitting-bg: #f7f9fc;
  --hitting-border: #dce5ee;
  background: var(--hitting-bg);
  color: var(--hitting-navy);
}
.hp-template--bookings-view-page .site-content,
.hp-template--booking-view-page .site-content {
  width: min(100% - 36px, 1120px);
  margin: 32px auto 72px;
  padding: 0;
}
.hp-template--bookings-view-page .hp-page__sidebar {
  padding-right: 22px;
}
.hp-template--bookings-view-page .hp-menu--user-account {
  padding: 14px;
  border: 1px solid var(--hitting-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 22px rgba(8,43,99,.05);
}
.hp-template--bookings-view-page .hp-menu--user-account li a {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 10px;
  border-radius: 9px;
  color: #41536b;
  font-size: 13px;
  font-weight: 700;
}
.hp-template--bookings-view-page .hp-menu--user-account li.current-menu-item a,
.hp-template--bookings-view-page .hp-menu--user-account li a:hover {
  background: var(--hitting-teal-soft);
  color: var(--hitting-navy);
}
.hp-template--bookings-view-page .hp-page__content > h1 {
  margin: 0 0 18px;
  color: var(--hitting-navy);
  font-size: 2rem;
  font-weight: 900;
}
.hp-template--bookings-view-page .hp-bookings {
  display: grid;
  gap: 12px;
}
.hp-template--bookings-view-page .hp-booking--view-block {
  margin: 0;
  border: 1px solid var(--hitting-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(8,43,99,.05);
  overflow: hidden;
}
.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__content {
  padding: 18px 20px 12px;
}
.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__title {
  margin: 0 0 8px;
  font-size: 1.08rem;
}
.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__title a {
  color: var(--hitting-navy);
  font-weight: 900;
}
.hp-template--bookings-view-page .hp-booking__listing {
  color: var(--hitting-teal);
  font-weight: 800;
}
.hp-template--bookings-view-page .hp-listing__created-date {
  color: #77869a;
  font-size: 12px;
}
.hp-template--bookings-view-page .hp-listing__status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin-top: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--hitting-teal-soft);
  color: #176579;
  font-size: 11px;
  font-weight: 900;
}
.hp-template--bookings-view-page .hp-status--trash,
.hp-template--bookings-view-page .hp-status--cancelled {
  background: #fff0ef;
  color: #b53934;
}
.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 20px;
  border-top: 1px solid #edf1f5;
  background: #fbfcfe;
}
.hp-template--bookings-view-page .hp-booking__dates {
  color: #34465d;
  font-size: 13px;
  font-weight: 800;
}
.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__actions {
  margin-left: auto;
}
.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__action--message {
  display: inline-flex;
  width: 38px;
  min-height: 38px;
  padding: 0;
  border: 1px solid var(--hitting-border) !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: var(--hitting-teal) !important;
}
.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__action--message::after {
  display: none;
}
.hp-template--booking-view-page .hp-page > .hp-row {
  align-items: flex-start;
}
.hp-template--booking-view-page .hp-page__content {
  padding: 0 12px;
}
.hp-template--booking-view-page .hp-booking--view-page.hp-page__content {
  border: 0;
  background: transparent;
}
.hp-template--booking-view-page .hitting-preferred-slots,
.hp-template--booking-view-page .hp-booking--view-page.hp-page__content > .hp-listing__title,
.hp-template--booking-view-page .hp-booking--view-page.hp-page__content > .hp-listing__details,
.hp-template--booking-view-page .hp-booking--view-page.hp-page__content > .hp-listing__description,
.hp-template--booking-view-page .hp-page__sidebar > * {
  border: 1px solid var(--hitting-border);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 6px 22px rgba(8,43,99,.05);
}
.hp-template--booking-view-page .hitting-preferred-slots {
  margin: 0 0 16px;
  padding: 24px;
}
.hp-template--booking-view-page .hitting-preferred-slots > h2 {
  margin: 0;
  color: var(--hitting-navy);
  font-size: 1.45rem;
  font-weight: 900;
}
.hp-template--booking-view-page .hitting-preferred-slots__lead {
  margin: 7px 0 18px;
  color: #6e7e92;
  font-size: 12px;
}
.hp-template--booking-view-page .hitting-preferred-slots__list {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.hp-template--booking-view-page .hitting-preferred-slots__list li {
  display: grid;
  grid-template-columns: 90px minmax(0,1fr);
  gap: 6px 12px;
  align-items: center;
  padding: 14px 15px;
  border: 1px solid var(--hitting-border);
  border-radius: 11px;
  background: #fff;
}
.hp-template--booking-view-page .hitting-preferred-slots__list li.is-selected {
  border-color: var(--hitting-teal);
  background: var(--hitting-teal-soft);
}
.hp-template--booking-view-page .hitting-preferred-slots__list strong {
  color: var(--hitting-navy);
  font-size: 12px;
  font-weight: 900;
}
.hp-template--booking-view-page .hitting-preferred-slots__list span {
  color: #31445e;
  font-size: 13px;
  font-weight: 800;
}
.hp-template--booking-view-page .hitting-preferred-slots__list em {
  grid-column: 2;
  color: var(--hitting-coral);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}
.hp-template--booking-view-page .hitting-terms {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--hitting-border);
}
.hp-template--booking-view-page .hitting-terms h2,
.hp-template--booking-view-page .hitting-terms h3 {
  color: var(--hitting-navy);
  font-weight: 900;
}
.hp-template--booking-view-page .hitting-terms__summary {
  display: grid;
  gap: 0;
  border: 1px solid var(--hitting-border);
  border-radius: 11px;
  background: #fbfcfe;
  overflow: hidden;
}
.hp-template--booking-view-page .hitting-terms__summary > * {
  display: block;
  padding: 11px 13px;
  border-bottom: 1px solid #e8eef4;
  color: #34465d;
  font-size: 12px;
  line-height: 1.65;
}
.hp-template--booking-view-page .hitting-terms__summary > *:last-child {
  border-bottom: 0;
}
.hp-template--booking-view-page .hitting-cancellation {
  margin-top: 16px;
  padding: 16px;
  border-radius: 11px;
  background: #fff5f4;
}
.hp-template--booking-view-page .hitting-terms__success {
  color: #248363;
  font-size: 13px;
  font-weight: 800;
}
.hp-template--booking-view-page .hp-booking--view-page.hp-page__content > .hp-listing__title {
  margin: 0 0 10px;
  padding: 20px 22px 8px;
  border-bottom: 0;
  border-radius: 15px 15px 0 0;
  color: var(--hitting-navy);
  font-size: 1.35rem;
  font-weight: 900;
}
.hp-template--booking-view-page .hp-booking--view-page.hp-page__content > .hp-listing__details {
  margin: 0 0 10px;
  padding: 8px 22px 20px;
  border-top: 0;
  border-radius: 0 0 15px 15px;
  color: #5f7086;
  font-size: 12px;
}
.hp-template--booking-view-page .hp-booking--view-page.hp-page__content > .hp-listing__description {
  margin: 0;
  padding: 20px 22px;
  color: #34465d;
}
.hp-template--booking-view-page .hp-booking--view-page.hp-page__content > .hp-listing__description::before {
  display: none;
}
.hp-template--booking-view-page .hp-page__sidebar > * {
  padding: 20px;
}
.hp-template--booking-view-page .hp-page__sidebar .hp-booking__dates {
  display: block;
  margin-bottom: 14px;
  color: var(--hitting-navy);
  font-size: 14px;
  font-weight: 900;
}
.hp-template--booking-view-page .hp-page__sidebar button {
  width: 100%;
  min-height: 46px;
  border: 1.5px solid var(--hitting-teal);
  border-radius: 9px;
  background: #fff;
  color: var(--hitting-teal);
  font-weight: 900;
}
@media (max-width: 767px) {
  .hp-template--bookings-view-page,
  .hp-template--booking-view-page { overflow-x: hidden; }
  .hp-template--bookings-view-page .site-content,
  .hp-template--booking-view-page .site-content {
    width: min(100% - 20px,520px);
    margin: 16px auto 72px;
  }
  .hp-template--bookings-view-page .hp-page > .hp-row,
  .hp-template--booking-view-page .hp-page > .hp-row {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
  }
  .hp-template--bookings-view-page .hp-page__sidebar,
  .hp-template--bookings-view-page .hp-page__content,
  .hp-template--booking-view-page .hp-page__sidebar,
  .hp-template--booking-view-page .hp-page__content {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
  .hp-template--bookings-view-page .hp-page__sidebar { order: 2; }
  .hp-template--bookings-view-page .hp-page__content { order: 1; }
  .hp-template--bookings-view-page .hp-booking--view-block .hp-listing__footer {
    align-items: flex-start;
  }
  .hp-template--booking-view-page .hitting-preferred-slots { padding: 19px 15px; }
  .hp-template--booking-view-page .hitting-preferred-slots__list li {
    grid-template-columns: 1fr;
  }
  .hp-template--booking-view-page .hitting-preferred-slots__list em { grid-column: 1; }
}


/* WooCommerce payment, order history and completion (v0.3.7) */
.woocommerce-account,
.woocommerce-checkout {
  --hitting-navy: #082b63;
  --hitting-teal: #079db3;
  --hitting-teal-soft: #eaf8fb;
  --hitting-coral: #ff4b43;
  --hitting-coral-dark: #e33a34;
  --hitting-bg: #f7f9fc;
  --hitting-border: #dce5ee;
  background: var(--hitting-bg);
  color: var(--hitting-navy);
}
.woocommerce-account .site-content,
.woocommerce-checkout .site-content {
  width: min(100% - 36px,1120px);
  margin: 32px auto 72px;
  padding: 0;
}
.woocommerce-account .woocommerce,
.woocommerce-checkout .woocommerce {
  color: #34465d;
}
.woocommerce-account .woocommerce > h1,
.woocommerce-account .woocommerce h2,
.woocommerce-checkout .woocommerce h1,
.woocommerce-checkout .woocommerce h2,
.woocommerce-checkout .woocommerce h3 {
  color: var(--hitting-navy);
  font-weight: 900;
}
.woocommerce-account table.shop_table,
.woocommerce-checkout table.shop_table {
  border: 1px solid var(--hitting-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 22px rgba(8,43,99,.05);
  overflow: hidden;
}
.woocommerce-account table.shop_table th,
.woocommerce-checkout table.shop_table th {
  padding: 14px 16px;
  border-color: #e7edf3;
  background: #f4f7fb;
  color: var(--hitting-navy);
  font-size: 12px;
  font-weight: 900;
}
.woocommerce-account table.shop_table td,
.woocommerce-checkout table.shop_table td {
  padding: 15px 16px;
  border-color: #e7edf3;
  color: #40526a;
  font-size: 13px;
}
.woocommerce-account table.shop_table a {
  color: var(--hitting-teal);
  font-weight: 900;
}
.woocommerce-account table.shop_table .button,
.woocommerce-account .woocommerce-button,
.woocommerce-account .order-again .button {
  min-height: 38px;
  padding: 0 15px;
  border: 1px solid var(--hitting-teal);
  border-radius: 8px;
  background: #fff;
  color: var(--hitting-teal);
  font-size: 12px;
  font-weight: 900;
  line-height: 36px;
}
.woocommerce-account.hp-order--view-page .woocommerce > h1 {
  margin: 0;
  padding: 24px 26px 10px;
  border: 1px solid var(--hitting-border);
  border-bottom: 0;
  border-radius: 15px 15px 0 0;
  background: #fff;
  color: var(--hitting-navy);
  font-size: 1.6rem;
  font-weight: 900;
}
.woocommerce-account.hp-order--view-page .woocommerce > h1 + p {
  margin: 0 0 18px;
  padding: 5px 26px 24px;
  border: 1px solid var(--hitting-border);
  border-top: 0;
  border-radius: 0 0 15px 15px;
  background: #fff;
  color: #64758a;
  font-size: 13px;
}
.woocommerce-account.hp-order--view-page .woocommerce-order-details,
.woocommerce-account.hp-order--view-page .woocommerce-customer-details {
  margin: 0 0 18px;
  padding: 22px;
  border: 1px solid var(--hitting-border);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 6px 22px rgba(8,43,99,.05);
}
.woocommerce-account.hp-order--view-page .woocommerce-order-details h2,
.woocommerce-account.hp-order--view-page .woocommerce-customer-details h2 {
  margin: 0 0 16px;
  font-size: 1.25rem;
}
.woocommerce-account.hp-order--view-page .woocommerce-order-details table {
  margin: 0;
  box-shadow: none;
}
.woocommerce-account.hp-order--view-page .order-again {
  margin: 16px 0 20px;
}
.woocommerce-account.hp-order--view-page .order-again .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 20px;
  border: 0;
  background: var(--hitting-coral);
  color: #fff;
  font-size: 0;
  line-height: 1;
}
.woocommerce-account.hp-order--view-page .order-again .button::after {
  content: "再びレッスンを申し込む";
  font-size: 14px;
  font-weight: 900;
}
.woocommerce-account.hp-order--view-page .order-again .button:hover {
  background: var(--hitting-coral-dark);
}
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(340px,.75fr);
  gap: 22px;
  align-items: start;
}
.woocommerce-checkout .col2-set,
.woocommerce-checkout #order_review {
  padding: 22px;
  border: 1px solid var(--hitting-border);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 6px 22px rgba(8,43,99,.05);
}
.woocommerce-checkout #order_review_heading {
  margin: 0 0 12px;
}
.woocommerce-checkout .form-row label {
  color: var(--hitting-navy);
  font-size: 12px;
  font-weight: 900;
}
.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection {
  min-height: 46px;
  border: 1px solid #cfd9e4;
  border-radius: 9px;
  background: #fff;
  box-shadow: none;
}
.woocommerce-checkout #payment {
  border-radius: 12px;
  background: #f4f7fb;
}
.woocommerce-checkout #place_order {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 10px;
  background: var(--hitting-coral);
  color: #fff;
  font-size: 15px;
  font-weight: 900;
}
.woocommerce-checkout #place_order:hover {
  background: var(--hitting-coral-dark);
}
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  color: #65758a;
  font-size: 11px;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .woocommerce-account,
  .woocommerce-checkout { overflow-x: hidden; }
  .woocommerce-account .site-content,
  .woocommerce-checkout .site-content {
    width: min(100% - 20px,520px);
    margin: 16px auto 72px;
  }
  .woocommerce-account table.shop_table_responsive thead { display: none; }
  .woocommerce-account table.shop_table_responsive tbody,
  .woocommerce-account table.shop_table_responsive tr,
  .woocommerce-account table.shop_table_responsive td {
    display: block;
    width: 100%;
  }
  .woocommerce-account table.shop_table_responsive tr {
    padding: 10px 0;
    border-bottom: 1px solid var(--hitting-border);
  }
  .woocommerce-account table.shop_table_responsive td {
    padding: 9px 14px;
    text-align: right;
  }
  .woocommerce-account table.shop_table_responsive td::before {
    color: var(--hitting-navy);
    font-weight: 900;
  }
  .woocommerce-account.hp-order--view-page .woocommerce-order-details,
  .woocommerce-account.hp-order--view-page .woocommerce-customer-details {
    padding: 17px 14px;
  }
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1fr;
  }
  .woocommerce-checkout .col2-set,
  .woocommerce-checkout #order_review { padding: 17px 14px; }
}


/* Rebooking button visibility hotfix (v0.3.8) */
.woocommerce-account.hp-order--view-page .order-again .button {
  width: auto !important;
  min-width: 230px;
}
.woocommerce-account.hp-order--view-page .order-again .button::after {
  display: inline !important;
  visibility: visible !important;
}


/* Role-based account hub and lesson operations (v0.3.9) */
.hp-template--user-account-page {
  --hitting-navy: #082b63;
  --hitting-teal: #079db3;
  --hitting-teal-dark: #067f91;
  --hitting-teal-soft: #eaf8fb;
  --hitting-coral: #ff4b43;
  --hitting-coral-soft: #fff2f1;
  --hitting-account-bg: #f7f9fc;
  --hitting-account-border: #dce5ee;
  background: var(--hitting-account-bg);
  color: #34465d;
}
.hp-template--user-account-page .site-content {
  width: min(100% - 36px,1120px);
  margin: 32px auto 72px;
  padding: 0;
}
.hp-template--user-account-page .hp-page > .hp-row {
  align-items: flex-start;
  margin: 0 -12px;
}
.hp-template--user-account-page .hp-page__sidebar,
.hp-template--user-account-page .hp-page__content {
  padding: 0 12px;
}
.hp-template--user-account-page .hp-page__sidebar {
  width: 28%;
}
.hp-template--user-account-page .hp-page__content {
  width: 72%;
}
.hp-template--user-account-page .hp-page__title {
  position: relative;
  margin: 0 0 24px;
  padding: 0 0 14px;
  color: var(--hitting-navy);
  font-size: clamp(1.65rem,3vw,2.15rem);
  font-weight: 900;
  letter-spacing: -.03em;
}
.hp-template--user-account-page .hp-page__title::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 46px;
  height: 4px;
  border-radius: 999px;
  background: var(--hitting-teal);
}
.hp-template--user-account-page .hp-page__sidebar .hp-vendor__actions,
.hp-template--user-account-page .hp-menu--user-account {
  margin: 0 0 16px;
  border: 1px solid var(--hitting-account-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(8,43,99,.06);
  overflow: hidden;
}
.hp-template--user-account-page .hp-vendor__balance {
  position: relative;
  padding: 22px 22px 20px;
  background: linear-gradient(135deg,var(--hitting-navy),#114c8a);
  color: #fff;
}
.hp-template--user-account-page .hp-vendor__balance::after {
  content: "売上・振込の確認";
  display: block;
  margin-top: 8px;
  color: rgba(255,255,255,.72);
  font-size: 11px;
  font-weight: 700;
}
.hp-template--user-account-page .hp-vendor__balance strong {
  display: block;
  color: rgba(255,255,255,.8);
  font-size: 0;
  font-weight: 800;
}
.hp-template--user-account-page .hp-vendor__balance strong::after {
  content: "受取可能額";
  font-size: 11px;
}
.hp-template--user-account-page .hp-vendor__balance span {
  display: block;
  margin-top: 5px;
  color: #fff;
  font-size: 1.7rem;
  font-weight: 900;
}
.hp-template--user-account-page .hp-menu--user-account ul {
  margin: 0;
  padding: 10px;
}
.hp-template--user-account-page .hp-menu--user-account li {
  margin: 2px 0;
}
.hp-template--user-account-page .hp-menu--user-account li a {
  display: flex;
  align-items: center;
  min-height: 43px;
  padding: 10px 12px 10px 15px;
  border-radius: 10px;
  color: #51647b;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}
.hp-template--user-account-page .hp-menu--user-account li a::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-right: 11px;
  border: 2px solid #a9b8c8;
  border-radius: 50%;
  flex: 0 0 auto;
}
.hp-template--user-account-page .hp-menu--user-account li a:hover {
  background: var(--hitting-teal-soft);
  color: var(--hitting-teal-dark);
}
.hp-template--user-account-page .hp-menu--user-account li.current-menu-item a {
  background: var(--hitting-teal-soft);
  color: var(--hitting-navy);
}
.hp-template--user-account-page .hp-menu--user-account li.current-menu-item a::before {
  border-color: var(--hitting-teal);
  background: var(--hitting-teal);
  box-shadow: 0 0 0 4px rgba(7,157,179,.13);
}
.hp-template--user-account-page .hp-menu__item--listings-favorite a span,
.hp-template--user-account-page .hp-menu__item--orders-edit a span,
.hp-template--user-account-page .hp-menu__item--orders-view a span,
.hp-template--user-account-page .hp-menu__item--payouts-view a span {
  font-size: 0;
}
.hp-template--user-account-page .hp-menu__item--listings-favorite a span::after {
  content: "お気に入り";
  font-size: 13px;
}
.hp-template--user-account-page .hp-menu__item--orders-edit a span::after {
  content: "レッスン依頼・売上";
  font-size: 13px;
}
.hp-template--user-account-page .hp-menu__item--orders-view a span::after {
  content: "申込み・支払い履歴";
  font-size: 13px;
}
.hp-template--user-account-page .hp-menu__item--payouts-view a span::after {
  content: "振込履歴";
  font-size: 13px;
}
.hp-template--user-account-page .hp-menu__item--hitting-coach-legal-information {
  margin-top: 9px;
  padding-top: 9px;
  border-top: 1px solid #edf1f5;
}
.hp-template--user-account-page .hp-menu__item--hitting-coach-legal-information a {
  color: var(--hitting-coral);
}
.hp-template--user-account-page .hp-menu__item--user-logout a {
  color: #8b99a9;
}
.hp-template--vendor-dashboard-page .hp-page__title::after {
  content: "依頼確認、日程調整、レッスン完了までをここから管理できます。";
  display: block;
  margin-top: 9px;
  color: #6d7e92;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table {
  display: block;
  margin: 0;
  border: 0;
  background: transparent;
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table thead {
  display: none;
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table tbody {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table tr {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 14px;
  padding: 19px 20px;
  border: 1px solid var(--hitting-account-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(8,43,99,.05);
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table th,
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table td {
  display: block;
  padding: 0;
  border: 0;
  text-align: left;
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table th {
  grid-column: 1 / -1;
  color: #66788d;
  font-size: 11px;
  font-weight: 900;
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table td {
  color: var(--hitting-navy);
  font-size: 1.35rem;
  font-weight: 900;
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table td:nth-child(2)::before,
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table td:nth-child(3)::before {
  display: block;
  margin-bottom: 3px;
  color: #8493a5;
  font-size: 10px;
  font-weight: 800;
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table td:nth-child(2)::before {
  content: "レッスン依頼";
}
.hp-template--vendor-dashboard-page .hp-page__content > .hp-table td:nth-child(3)::before {
  content: "売上";
}
.hp-template--vendor-dashboard-page .hp-page__content > div:last-child {
  margin-top: 16px;
  padding: 20px;
  border: 1px solid var(--hitting-account-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(8,43,99,.05);
}
.hp-template--vendor-dashboard-page .hp-chart {
  max-width: 100%;
}
.hp-template--user-account-page .hp-form,
.hp-template--user-account-page .hp-listing--view-block,
.hp-template--user-account-page .hp-booking--view-block,
.hp-template--user-account-page .hp-message,
.hp-template--user-account-page .hp-payout {
  border-color: var(--hitting-account-border);
}
.hp-template--user-account-page .hp-form__button,
.hp-template--user-account-page .hp-field--submit,
.hp-template--user-account-page .button-primary {
  border-radius: 9px;
  background: var(--hitting-coral);
  color: #fff;
  font-weight: 900;
}
.hp-template--user-account-page .hp-form__button:hover,
.hp-template--user-account-page .hp-field--submit:hover,
.hp-template--user-account-page .button-primary:hover {
  background: #e33a34;
}
@media (max-width: 767px) {
  .hp-template--user-account-page {
    overflow-x: hidden;
  }
  .hp-template--user-account-page .site-content {
    width: min(100% - 20px,540px);
    margin: 18px auto 64px;
  }
  .hp-template--user-account-page .hp-page > .hp-row {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0;
  }
  .hp-template--user-account-page .hp-page__sidebar,
  .hp-template--user-account-page .hp-page__content {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
  .hp-template--user-account-page .hp-page__sidebar {
    order: 2;
  }
  .hp-template--user-account-page .hp-page__content {
    order: 1;
  }
  .hp-template--user-account-page .hp-page__title {
    margin-bottom: 20px;
    font-size: 1.7rem;
  }
  .hp-template--user-account-page .hp-menu--user-account ul {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 4px;
  }
  .hp-template--user-account-page .hp-menu--user-account li,
  .hp-template--user-account-page .hp-menu__item--hitting-coach-legal-information {
    margin: 0;
    padding: 0;
    border: 0;
  }
  .hp-template--user-account-page .hp-menu--user-account li a {
    min-height: 48px;
    padding: 9px 10px;
    font-size: 11px;
  }
  .hp-template--user-account-page .hp-menu--user-account li a::before {
    width: 6px;
    height: 6px;
    margin-right: 7px;
  }
  .hp-template--user-account-page .hp-menu--user-account li a span::after {
    font-size: 11px;
  }
  .hp-template--vendor-dashboard-page .hp-page__content > .hp-table tbody {
    grid-template-columns: 1fr;
  }
  .hp-template--vendor-dashboard-page .hp-page__content > .hp-table tr {
    padding: 17px;
  }
  .hp-template--vendor-dashboard-page .hp-page__content > div:last-child {
    padding: 14px 8px;
    overflow-x: auto;
  }
}


/* Lesson-day completion and account labels (v0.4.0) */
.hp-template--user-account-page .hp-menu--user-account li::before {
  display: none;
}
.hp-template--orders-edit-page .hp-page__title,
.hp-template--payouts-view-page .hp-page__title,
.hp-template--listings-edit-page .hp-page__title {
  font-size: 0;
}
.hp-template--orders-edit-page .hp-page__title::after,
.hp-template--payouts-view-page .hp-page__title::after,
.hp-template--listings-edit-page .hp-page__title::after {
  display: block;
  color: var(--hitting-navy);
  font-size: clamp(1.65rem,3vw,2.15rem);
  font-weight: 900;
}
.hp-template--orders-edit-page .hp-page__title::after {
  content: "レッスン依頼・売上";
}
.hp-template--payouts-view-page .hp-page__title::after {
  content: "振込履歴";
}
.hp-template--listings-edit-page .hp-page__title::after {
  content: "レッスン管理";
}
.hp-template--booking-view-page .hitting-completion {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid #bce2da;
  border-radius: 13px;
  background: #f1fbf8;
}
.hp-template--booking-view-page .hitting-completion h3 {
  margin: 0 0 12px;
  color: var(--hitting-navy);
  font-size: 1.18rem;
  font-weight: 900;
}
.hp-template--booking-view-page .hitting-completion > p {
  color: #52677d;
  font-size: 13px;
  line-height: 1.75;
}
.hp-template--booking-view-page .hitting-completion form {
  margin-top: 14px;
  padding: 16px;
  border: 1px solid #d6eae5;
  border-radius: 11px;
  background: #fff;
}
.hp-template--booking-view-page .hitting-completion .hitting-terms__consent {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  margin-bottom: 14px;
  color: #31455d;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.65;
}
.hp-template--booking-view-page .hitting-completion .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 4px 7px 4px 0;
  padding: 0 17px;
  border: 1px solid var(--hitting-teal);
  border-radius: 9px;
  background: #fff;
  color: var(--hitting-teal);
  font-size: 12px;
  font-weight: 900;
}
.hp-template--booking-view-page .hitting-completion form .button {
  border-color: var(--hitting-coral);
  background: var(--hitting-coral);
  color: #fff;
}
.hp-template--booking-view-page .hitting-completion form .button:hover {
  background: var(--hitting-coral-dark);
}
.hp-template--booking-view-page .hitting-completion .hitting-terms__summary strong {
  color: var(--hitting-navy);
  font-size: 14px;
}
@media (max-width: 767px) {
  .hp-template--booking-view-page .hitting-completion {
    padding: 16px 14px;
  }
  .hp-template--booking-view-page .hitting-completion .button {
    width: 100%;
    margin: 5px 0;
  }
}


/* Learner, guardian and coach account settings (v0.4.1) */
.hp-template--user-edit-settings-page .hp-page__content > .hp-form {
  padding: 24px;
  border: 1px solid var(--hitting-account-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(8,43,99,.05);
}
.hp-template--user-edit-settings-page .hp-form__field {
  margin-bottom: 18px;
}
.hp-template--user-edit-settings-page .hp-form__label {
  margin-bottom: 7px;
  color: var(--hitting-navy);
  font-size: 12px;
  font-weight: 900;
}
.hp-template--user-edit-settings-page input[type="text"],
.hp-template--user-edit-settings-page input[type="email"],
.hp-template--user-edit-settings-page input[type="password"],
.hp-template--user-edit-settings-page textarea,
.hp-template--user-edit-settings-page select {
  min-height: 46px;
  border: 1px solid #cfd9e4;
  border-radius: 9px;
  background: #fff;
  box-shadow: none;
}
.hp-template--user-edit-settings-page textarea {
  min-height: 130px;
  padding: 12px;
}
.hp-template--user-edit-settings-page .hp-form__footer {
  align-items: center;
  gap: 12px;
  padding-top: 5px;
}
.hp-template--user-edit-settings-page .hp-form__action--vendor-view {
  font-size: 0;
}
.hp-template--user-edit-settings-page .hp-form__action--vendor-view::after {
  content: "公開プロフィールを見る";
  font-size: 12px;
  font-weight: 800;
}
.hp-template--user-edit-settings-page .hp-form__action--user-delete {
  color: #8f9cac;
  font-size: 12px;
}
@media (max-width: 767px) {
  .hp-template--user-edit-settings-page .hp-page__content > .hp-form {
    padding: 18px 14px;
  }
  .hp-template--user-edit-settings-page .hp-form__footer {
    align-items: stretch;
  }
}


/* Mobile role navigation and booking progress (v0.4.3) */
@media (max-width: 767px) {
  .hp-template--user-account-page {
    padding-bottom: 82px;
  }
  .hp-template--user-account-page .site-content {
    padding-top: 24px;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    margin: 0;
    padding: 7px max(8px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
    border: 0;
    border-top: 1px solid #dce5ee;
    border-radius: 0;
    background: rgba(255,255,255,.98);
    box-shadow: 0 -8px 26px rgba(8,43,99,.10);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account ul {
    display: grid !important;
    grid-template-columns: repeat(5,minmax(0,1fr)) !important;
    gap: 2px !important;
    width: min(100%,560px);
    margin: 0 auto;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account li {
    display: none !important;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--listings-favorite,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--bookings-view,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--messages-thread,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--orders-view,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--user-edit-settings {
    display: block !important;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account:has(.hp-menu__item--vendor-dashboard) li {
    display: none !important;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account:has(.hp-menu__item--vendor-dashboard) .hp-menu__item--vendor-dashboard,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account:has(.hp-menu__item--vendor-dashboard) .hp-menu__item--orders-edit,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account:has(.hp-menu__item--vendor-dashboard) .hp-menu__item--bookings-view,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account:has(.hp-menu__item--vendor-dashboard) .hp-menu__item--payouts-view,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account:has(.hp-menu__item--vendor-dashboard) .hp-menu__item--user-edit-settings {
    display: block !important;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account li a {
    display: flex;
    flex-direction: column;
    gap: 3px;
    justify-content: center;
    min-height: 56px;
    padding: 5px 2px;
    border-radius: 10px;
    color: #607087;
    font-size: 0;
    line-height: 1;
    text-align: center;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account li a::before {
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    border: 0;
    border-radius: 0;
    color: currentColor;
    font-size: 21px;
    line-height: 1;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account li a::after {
    display: block;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account li.current-menu-item a {
    background: #eaf8f7;
    color: var(--hitting-teal);
  }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--vendor-dashboard > a::before { content: "⌂"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--vendor-dashboard > a::after { content: "ホーム"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--orders-edit > a::before { content: "▤"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--orders-edit > a::after { content: "依頼"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--bookings-view > a::before { content: "▣"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--bookings-view > a::after { content: "レッスン"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--payouts-view > a::before { content: "¥"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--payouts-view > a::after { content: "売上"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--user-edit-settings > a::before { content: "☰"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--user-edit-settings > a::after { content: "コーチ"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--listings-favorite > a::before { content: "♡"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--listings-favorite > a::after { content: "保存"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--messages-thread > a::before { content: "◌"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--messages-thread > a::after { content: "メッセージ"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--orders-view > a::before { content: "¥"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account .hp-menu__item--orders-view > a::after { content: "支払い"; }
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account:not(:has(.hp-menu__item--vendor-dashboard)) .hp-menu__item--user-edit-settings > a::after {
    content: "マイページ";
  }
}
.hp-template--bookings-view-page .hp-booking--view-block {
  position: relative;
  overflow: hidden;
}
.hp-template--bookings-view-page .hp-booking--view-block::before {
  display: block;
  margin: -18px -18px 17px;
  padding: 12px 16px;
  border-bottom: 1px solid #d9e6ee;
  background: linear-gradient(90deg,#effaf8,#f4f7fc);
  color: #557087;
  content: "日程調整  →  予約手続き  →  予約確定  →  完了";
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  text-align: center;
}
.hp-template--bookings-view-page .hp-booking__dates {
  color: var(--hitting-navy);
  font-size: 16px;
  font-weight: 900;
}
.hp-template--bookings-view-page .hp-listing__status span::before {
  margin-right: 5px;
  content: "●";
  font-size: 9px;
}
.hp-template--bookings-view-page .hp-listing__footer {
  gap: 12px;
  align-items: center;
}
.hp-template--bookings-view-page .hp-listing__action--message {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  min-height: 42px;
  padding: 0 15px;
  border: 1px solid var(--hitting-navy);
  border-radius: 9px;
  color: var(--hitting-navy);
  font-size: 0;
  font-weight: 900;
}
.hp-template--bookings-view-page .hp-listing__action--message::after {
  content: "メッセージを送る";
  font-size: 11px;
}
@media (max-width: 767px) {
  .hp-template--bookings-view-page .hp-booking--view-block::before {
    margin: -16px -14px 15px;
    padding: 11px 6px;
    font-size: 9px;
  }
  .hp-template--bookings-view-page .hp-listing__footer,
  .hp-template--bookings-view-page .hp-listing__action--message {
    width: 100%;
  }
}


/* Keep the account navigation available when the mobile theme hides sidebars (v0.4.4) */
@media (max-width: 767px) {
  .hp-template--user-account-page .hp-page__sidebar:has(.hp-menu--user-account) {
    display: block !important;
    position: static;
  }
}


/* Prevent legacy account labels from duplicating mobile tab labels (v0.4.5) */
@media (max-width: 767px) {
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account li a span,
  .hp-template--user-account-page .hp-page__sidebar .hp-menu--user-account li a span::after {
    display: none !important;
    content: none !important;
  }
}


/* Canonical front page based on the approved Hitting visual direction (v0.4.6) */
.home .site-content {
	padding: 0;
}

.home .content-area,
.home .site-main {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.hitting-home {
	--hh-navy: #082b63;
	--hh-navy-deep: #052451;
	--hh-teal: #066f80;
	--hh-teal-soft: #edfafd;
	--hh-coral: #d73a33;
	--hh-ink: #102f55;
	--hh-muted: #61738b;
	--hh-line: #dce6ef;
	color: var(--hh-ink);
	background: #fff;
	overflow: hidden;
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	margin-left: -50vw;
}

.hitting-home a {
	text-decoration: none;
}

.hitting-home-hero {
	position: relative;
	min-height: min(670px, 70vw);
	background-color: #f4f9fb;
	background-image: url("assets/images/hitting-home-hero-v1.webp");
	background-position: center;
	background-size: cover;
}

.hitting-home-hero::after {
	position: absolute;
	right: -8%;
	bottom: 9%;
	left: -8%;
	height: 54px;
	border-top: 2px solid rgba(8,169,191,.44);
	border-radius: 50%;
	content: "";
	transform: rotate(-2deg);
}

.hitting-home-hero__inner {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	width: min(100% - 48px, 1180px);
	min-height: min(670px, 70vw);
	margin: 0 auto;
}

.hitting-home-hero__copy {
	width: min(50%, 620px);
	padding: 70px 0 90px;
}

.hitting-home-eyebrow,
.hitting-home-section__heading p,
.hitting-home-coach-cta p {
	margin: 0 0 12px;
	color: var(--hh-teal);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .13em;
}

.hitting-home-hero h1 {
	margin: 0;
	color: var(--hh-navy);
	font-size: clamp(2.5rem, 4vw, 3.5rem);
	font-weight: 900;
	letter-spacing: .04em;
	line-height: 1.28;
}

.hitting-home-hero__lead {
	margin: 26px 0 8px;
	color: var(--hh-teal);
	font-size: clamp(1.1rem, 2vw, 1.5rem);
	font-weight: 900;
}

.hitting-home-hero__body {
	max-width: 480px;
	margin: 0;
	color: #415b76;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.9;
}

.hitting-home-search {
	position: relative;
	z-index: 3;
	width: min(100% - 48px, 1100px);
	margin: -58px auto 0;
	padding: 36px 36px 0;
	border: 1px solid rgba(210,229,238,.9);
	border-radius: 26px;
	background: rgba(255,255,255,.97);
	box-shadow: 0 22px 60px rgba(8,43,99,.12);
	text-align: center;
}

.hitting-home-section-label {
	display: inline-flex;
	margin: 0 0 14px;
	padding: 8px 28px;
	border-radius: 999px;
	background: var(--hh-navy);
	color: #fff;
	font-size: 13px;
	font-weight: 900;
}

.hitting-home-search h2,
.hitting-home-section__heading h2,
.hitting-home-safety h2,
.hitting-home-coach-cta h2,
.hitting-home-final-cta h2 {
	margin: 0;
	color: var(--hh-navy);
	font-size: clamp(1.7rem, 3.4vw, 2.7rem);
	font-weight: 900;
	letter-spacing: .035em;
	line-height: 1.35;
}

.hitting-home-search__lead {
	margin: 8px 0 24px;
	color: var(--hh-muted);
	font-weight: 600;
}

.hitting-home-search__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.hitting-home-search__cards > a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 190px;
	padding: 24px 16px;
	border: 1.5px solid var(--hh-line);
	border-radius: 18px;
	background: #fff;
	color: var(--hh-navy);
	box-shadow: 0 6px 16px rgba(8,43,99,.05);
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.hitting-home-search__cards > a:nth-child(1) { border-color: var(--hh-teal); color: var(--hh-teal); }
.hitting-home-search__cards > a:nth-child(2) { border-color: #537df0; color: #376ce7; }
.hitting-home-search__cards > a:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(8,43,99,.12); }

.hitting-home-search__icon {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	margin-bottom: 14px;
	border-radius: 50%;
	background: var(--hh-teal-soft);
	font-size: 36px;
	font-weight: 500;
}

.hitting-home-search__cards strong { font-size: 19px; font-weight: 900; }
.hitting-home-search__cards small { margin-top: 6px; color: var(--hh-muted); font-size: 13px; }

.hitting-home-trust {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: 30px -36px 0;
	border-top: 1px solid var(--hh-line);
}

.hitting-home-trust span {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 78px;
	border-right: 1px solid var(--hh-line);
	color: var(--hh-navy);
	font-size: 14px;
	font-weight: 900;
}

.hitting-home-trust span:last-child { border-right: 0; }
.hitting-home-trust b { color: var(--hh-teal); font-size: 25px; }

.hitting-home-section {
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
	padding: 96px 0;
}

.hitting-home-section__heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 32px;
}

.hitting-home-section__heading > a {
	color: #2276d7;
	font-size: 14px;
	font-weight: 900;
}

.hitting-home-coaches__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.hitting-home-coach-card {
	position: relative;
	border: 1px solid var(--hh-line);
	border-radius: 17px;
	background: #fff;
	box-shadow: 0 7px 24px rgba(8,43,99,.07);
	overflow: hidden;
}

.hitting-home-coach-card__image {
	position: relative;
	display: block;
	height: 220px;
	background: #edf5f8;
	overflow: hidden;
}

.hitting-home-coach-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.hitting-home-coach-card:hover .hitting-home-coach-card__image img { transform: scale(1.035); }
.hitting-home-coach-card__image > span { display: grid; place-items: center; height: 100%; font-size: 50px; }
.hitting-home-coach-card__image em { position: absolute; top: 11px; left: 11px; padding: 5px 9px; border-radius: 999px; background: var(--hh-teal); color: #fff; font-size: 10px; font-style: normal; font-weight: 900; }
.hitting-home-coach-card__favorite { position: absolute; z-index: 2; top: 12px; right: 12px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid #d5e1ec; border-radius: 50%; background: rgba(255,255,255,.94); color: var(--hh-navy); font-size: 24px; line-height: 1; opacity: 1; cursor: default; }

.hitting-home-coach-card__body { padding: 18px; }
.hitting-home-coach-card__body h3 { margin: 0 0 6px; color: var(--hh-navy); font-size: 18px; font-weight: 900; }
.hitting-home-coach-card__body p { min-height: 3.2em; margin: 0 0 12px; color: var(--hh-muted); font-size: 13px; line-height: 1.6; }
.hitting-home-coach-card__facts { display: flex; flex-wrap: wrap; gap: 6px; min-height: 25px; margin: -3px 0 13px; padding: 0; list-style: none; }
.hitting-home-coach-card__facts li { padding: 4px 8px; border-radius: 999px; background: #edf6fa; color: #294f71; font-size: 10px; font-weight: 800; line-height: 1.35; }
.hitting-home-coach-card__body > strong { display: block; margin-bottom: 15px; color: var(--hh-navy); font-size: 16px; }
.hitting-home-coach-card__body > a { display: flex; align-items: center; justify-content: center; min-height: 42px; border: 1.5px solid var(--hh-navy); border-radius: 8px; color: var(--hh-navy); font-size: 12px; font-weight: 900; }
.hitting-home-coach-card__body > a:hover { background: var(--hh-navy); color: #fff; }

.hitting-home-flow { padding-top: 42px; }
.hitting-home-flow ol { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.hitting-home-flow li { display: flex; align-items: center; gap: 20px; min-height: 92px; padding: 18px 24px; border: 1px solid var(--hh-line); border-radius: 16px; background: #fff; }
.hitting-home-flow li > b { display: grid; flex: 0 0 46px; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--hh-teal); color: #fff; font-size: 20px; }
.hitting-home-flow li span { display: grid; gap: 3px; color: var(--hh-muted); font-size: 14px; }
.hitting-home-flow li strong { color: var(--hh-navy); font-size: 18px; }

.hitting-home-voices { padding-top: 20px; }
.hitting-home-voices .hitting-home-section__heading > span { padding: 6px 10px; border-radius: 999px; background: #fff4cf; color: #75570b; font-size: 11px; font-weight: 900; }
.hitting-home-voices__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.hitting-home-voices__grid article { display: grid; grid-template-columns: 64px 1fr; gap: 16px; padding: 22px; border: 1px solid var(--hh-line); border-radius: 16px; background: #fff; box-shadow: 0 7px 24px rgba(8,43,99,.06); }
.hitting-home-voices__avatar { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: linear-gradient(135deg,#e7f8fb,#d7e7ff); color: var(--hh-teal); font-size: 20px; font-weight: 900; }
.hitting-home-voices__grid p { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 8px; color: var(--hh-navy); }
.hitting-home-voices__grid p span { color: #efb72b; letter-spacing: .08em; }
.hitting-home-voices__grid blockquote { margin: 0; color: #425a73; font-size: 14px; line-height: 1.75; }
.hitting-home-voices__grid small { display: block; margin-top: 10px; color: #7d6a36; font-size: 10px; }

.hitting-home-safety { padding: 70px 24px; background: linear-gradient(135deg, var(--hh-navy-deep), #0a3975); color: #fff; }
.hitting-home-safety__inner { width: min(100%, 1180px); margin: 0 auto; }
.hitting-home-safety h2 { color: #fff; }
.hitting-home-safety__inner > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; margin-top: 34px; }
.hitting-home-safety article { display: grid; grid-template-columns: 52px 1fr; column-gap: 16px; }
.hitting-home-safety article b { grid-row: 1 / 3; display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.45); border-radius: 15px; color: #56d9e9; font-size: 28px; }
.hitting-home-safety article h3 { margin: 0 0 6px; color: #fff; font-size: 16px; }
.hitting-home-safety article p { margin: 0; color: #bed1e8; font-size: 13px; line-height: 1.7; }

.hitting-home-coach-cta { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding: 68px max(24px, calc((100vw - 1180px)/2)); background: linear-gradient(120deg, #066f80, #075b87); color: #fff; }
.hitting-home-coach-cta h2 { color: #fff; }
.hitting-home-coach-cta p { color: #d4fbff; }
.hitting-home-coach-cta span { display: block; margin-top: 12px; color: #d9f7fb; }
.hitting-home-coach-cta > a { display: flex; flex: 0 0 auto; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px; border-radius: 8px; background: #fff; color: #087c96; font-size: 14px; font-weight: 900; }

.hitting-home-journal__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.hitting-home-journal article { border: 1px solid var(--hh-line); border-radius: 16px; overflow: hidden; }
.hitting-home-journal article a { display: block; color: var(--hh-navy); }
.hitting-home-journal img { width: 100%; height: 190px; object-fit: cover; }
.hitting-home-journal span { display: block; padding: 16px 18px 0; color: var(--hh-teal); font-size: 11px; font-weight: 900; }
.hitting-home-journal h3 { margin: 6px 18px 20px; font-size: 16px; line-height: 1.55; }

.hitting-home-final-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 64px max(24px, calc((100vw - 1180px)/2)); background: #eef9fc; }
.hitting-home-final-cta > a { display: flex; align-items: center; justify-content: center; min-width: 210px; min-height: 54px; border-radius: 8px; background: var(--hh-coral); box-shadow: 0 12px 26px rgba(255,75,67,.25); color: #fff; font-weight: 900; }

@media (max-width: 900px) {
	.hitting-home-hero,
	.hitting-home-hero__inner { min-height: 640px; }
	.hitting-home-hero { background-position: 58% center; }
	.hitting-home-hero__copy { width: 58%; }
	.hitting-home-coaches__grid { grid-template-columns: repeat(2, 1fr); }
	.hitting-home-safety__inner > div { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 640px) {
	.hitting-home-hero { min-height: 690px; background-position: 65% bottom; background-size: auto 65%; background-repeat: no-repeat; }
	.hitting-home-hero::before { position: absolute; inset: 0; background: linear-gradient(180deg,#fff 0,#fff 42%,rgba(255,255,255,.25) 68%,rgba(255,255,255,0) 100%); content: ""; }
	.hitting-home-hero::after { bottom: 5%; }
	.hitting-home-hero__inner { align-items: flex-start; width: min(100% - 32px, 500px); min-height: 690px; }
	.hitting-home-hero__copy { width: 100%; padding: 52px 0 0; text-align: left; }
	.hitting-home-hero h1 { font-size: clamp(2.05rem, 9.25vw, 2.4rem); line-height: 1.32; }
	.hitting-home-hero__lead { margin-top: 16px; font-size: 1.05rem; }
	.hitting-home-hero__body { display: none; }
	.hitting-home-search { width: calc(100% - 20px); margin-top: -26px; padding: 26px 12px 0; border-radius: 20px; }
	.hitting-home-search h2 { font-size: 1.65rem; }
	.hitting-home-search__cards { gap: 8px; }
	.hitting-home-search__cards > a { min-height: 144px; padding: 16px 6px; border-radius: 13px; }
	.hitting-home-search__icon { width: 54px; height: 54px; margin-bottom: 10px; font-size: 28px; }
	.hitting-home-search__cards strong { font-size: 14px; }
	.hitting-home-search__cards small { font-size: 10px; }
	.hitting-home-trust { margin: 22px -12px 0; }
	.hitting-home-trust span { flex-direction: column; gap: 2px; min-height: 72px; font-size: 10px; }
	.hitting-home-trust b { font-size: 21px; }
	.hitting-home-section { width: calc(100% - 28px); padding: 68px 0; }
	.hitting-home-section__heading { align-items: flex-start; margin-bottom: 24px; }
	.hitting-home-section__heading h2 { font-size: 1.65rem; }
	.hitting-home-section__heading > a { margin-top: 32px; font-size: 12px; }
	.hitting-home-coaches__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.hitting-home-coach-card__image { height: 150px; }
	.hitting-home-coach-card__body { padding: 12px; }
	.hitting-home-coach-card__body h3 { font-size: 15px; }
	.hitting-home-coach-card__body p { font-size: 11px; }
	.hitting-home-coach-card__facts { gap: 4px; min-height: 0; margin-bottom: 10px; }
	.hitting-home-coach-card__facts li { padding: 3px 6px; font-size: 9px; }
	.hitting-home-coach-card__body > strong { font-size: 13px; }
	.hitting-home-coach-card__body > a { min-height: 38px; padding: 5px; font-size: 10px; text-align: center; }
	.hitting-home-flow { padding-top: 18px; }
	.hitting-home-voices { padding-top: 12px; }
	.hitting-home-voices .hitting-home-section__heading { flex-direction: column; gap: 10px; }
	.hitting-home-voices__grid { grid-template-columns: 1fr; gap: 12px; }
	.hitting-home-voices__grid article { grid-template-columns: 48px 1fr; gap: 12px; padding: 16px; }
	.hitting-home-voices__avatar { width: 48px; height: 48px; font-size: 16px; }
	.hitting-home-voices__grid p { flex-direction: column; gap: 2px; }
	.hitting-home-voices__grid blockquote { font-size: 12px; }
	.hitting-home-flow li { align-items: flex-start; min-height: 0; padding: 16px; }
	.hitting-home-flow li > b { flex-basis: 38px; width: 38px; height: 38px; font-size: 17px; }
	.hitting-home-flow li strong { font-size: 15px; }
	.hitting-home-flow li span { font-size: 12px; }
	.hitting-home-safety { padding: 54px 20px; }
	.hitting-home-safety h2 { font-size: 1.65rem; }
	.hitting-home-coach-cta,
	.hitting-home-final-cta { align-items: stretch; flex-direction: column; padding: 52px 22px; }
	.hitting-home-coach-cta h2,
	.hitting-home-final-cta h2 { font-size: 1.65rem; }
	.hitting-home-coach-cta > a,
	.hitting-home-final-cta > a { width: 100%; }
	.hitting-home-journal__grid { grid-template-columns: 1fr; }
	.hitting-home-journal img { height: 180px; }
}

@media (prefers-reduced-motion: reduce) {
	.hitting-home-search__cards > a,
	.hitting-home-coach-card__image img { transition: none; }
}

/* Coach profile: list -> profile -> lesson selection (v0.5.9). */
.single-hp_vendor {
	--hitting-navy: #082b63;
	--hitting-teal: #079db3;
	--hitting-teal-soft: #eaf8fb;
	--hitting-coral: #ff4b43;
	--hitting-border: #dce5ee;
	background: #f7f9fc;
	color: var(--hitting-navy);
}

.single-hp_vendor .site-content {
	width: min(100% - 36px, 1080px);
	margin: 34px auto 72px;
	padding: 0;
}

.single-hp_vendor .hp-page {
	display: block;
}

.single-hp_vendor .hp-page > .hp-row {
	display: grid;
	grid-template-columns: minmax(280px, 34%) minmax(0, 1fr);
	gap: 24px;
	align-items: start;
	margin: 0;
}

.single-hp_vendor .hp-page__sidebar,
.single-hp_vendor .hp-page__content {
	width: 100%;
	max-width: none;
	padding: 0;
}

.single-hp_vendor .hp-vendor__summary {
	padding: 0 0 24px;
	border: 1px solid var(--hitting-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 28px rgba(8, 43, 99, .07);
	overflow: hidden;
}

.single-hp_vendor .hp-vendor__image {
	position: relative;
	width: 100%;
	height: 300px;
	margin: 0 0 22px;
	border-radius: 0;
	background: #edf3f7;
	overflow: hidden;
}

.single-hp_vendor .hp-vendor__image img {
	width: 100%;
	height: 100%;
	border-radius: 0;
	object-fit: cover;
}

.single-hp_vendor .hp-vendor__image:has(img[src*="/placeholders/user-square.svg"]) {
	background:
		url("assets/images/hitting-wordmark.svg") center calc(50% - 13px) / 126px auto no-repeat,
		linear-gradient(145deg, #e8f8fb 0%, #f4f8fc 52%, #eaf3fb 100%);
}

.single-hp_vendor .hp-vendor__image:has(img[src*="/placeholders/user-square.svg"])::after {
	content: "写真準備中";
	position: absolute;
	top: calc(50% + 31px);
	left: 50%;
	transform: translateX(-50%);
	color: #58728d;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	white-space: nowrap;
}

.single-hp_vendor .hp-vendor__image:has(img[src*="/placeholders/user-square.svg"]) img {
	opacity: 0;
}

.single-hp_vendor .hp-vendor__name {
	margin: 0;
	padding: 0 22px;
	color: var(--hitting-navy);
	font-size: 1.55rem;
	font-weight: 900;
	line-height: 1.35;
	text-align: left;
}

.single-hp_vendor .hp-vendor__name::after {
	content: " コーチ";
	font-size: .58em;
	font-weight: 800;
}

.single-hp_vendor .hp-vendor__registered-date {
	display: none;
}

.single-hp_vendor .hp-vendor__actions--primary {
	margin: 12px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.single-hp_vendor .hp-vendor__action--message {
	width: 100%;
	min-height: 50px;
	border: 1.5px solid var(--hitting-teal) !important;
	border-radius: 10px !important;
	background: #fff !important;
	color: var(--hitting-teal) !important;
	font-weight: 900;
}

.single-hp_vendor .hp-page__content > h1 {
	margin: 0 0 20px;
	color: var(--hitting-navy);
	font-size: clamp(1.7rem, 3vw, 2.35rem);
	font-weight: 900;
	line-height: 1.35;
}

.single-hp_vendor .hitting-coach-profile-data {
	display: grid;
	gap: 16px;
	margin: 0 0 26px;
	padding: 22px;
	border: 1px solid var(--hitting-border);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 6px 22px rgba(8, 43, 99, .05);
}

.single-hp_vendor .hitting-coach-profile-data__badges,
.single-hp_vendor .hitting-coach-profile-data__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.single-hp_vendor .hitting-coach-profile-data__badges span {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	padding: 5px 10px;
	border-radius: 999px;
	background: var(--hitting-teal);
	color: #fff;
	font-size: 11px;
	font-weight: 900;
}

.single-hp_vendor .hitting-coach-profile-data__intro {
	margin: 0;
	color: #34465d;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.8;
}

.single-hp_vendor .hitting-coach-profile-data__facts span {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 6px 11px;
	border-radius: 8px;
	background: #eef3f8;
	color: #41536b;
	font-size: 12px;
	font-weight: 800;
}

.single-hp_vendor .hitting-coach-profile-data__specialties,
.single-hp_vendor .hitting-coach-profile-data__fit {
	padding: 17px;
	border-radius: 12px;
	background: var(--hitting-teal-soft);
}

.single-hp_vendor .hitting-coach-profile-data h2 {
	margin: 0 0 8px;
	color: var(--hitting-navy);
	font-size: 1rem;
	font-weight: 900;
}

.single-hp_vendor .hitting-coach-profile-data__specialties p,
.single-hp_vendor .hitting-coach-profile-data__fit p {
	margin: 0;
	color: #315069;
	font-size: 13px;
	line-height: 1.75;
}

.single-hp_vendor .hitting-coach-profile-data__fit p span {
	color: var(--hitting-teal);
	font-weight: 900;
}

@media (max-width: 767px) {
	.single-hp_vendor .hitting-coach-profile-data {
		padding: 17px 15px;
	}
}

.single-hp_vendor .hp-listings > .hp-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0;
}

.single-hp_vendor .hp-listings .hp-grid__item {
	width: 100%;
	max-width: none;
	padding: 0;
}

.single-hp_vendor .hp-listing--view-block {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	margin: 0;
	border: 1px solid var(--hitting-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 22px rgba(8, 43, 99, .06);
	overflow: hidden;
}

.single-hp_vendor .hp-listing--view-block > .hp-listing__header {
	display: none;
}

.single-hp_vendor .hp-listing--view-block > .hp-listing__content {
	min-width: 0;
	padding: 20px 20px 12px;
}

.single-hp_vendor .hp-listing__categories a {
	display: inline-flex;
	padding: 5px 10px;
	border-radius: 999px;
	background: var(--hitting-teal-soft);
	color: #176579;
	font-size: 11px;
	font-weight: 800;
}

.single-hp_vendor .hp-listing__title {
	margin: 10px 0;
	font-size: 1.15rem;
	line-height: 1.5;
}

.single-hp_vendor .hp-listing__title a {
	color: var(--hitting-navy);
	font-weight: 900;
}

.single-hp_vendor .hp-listing__title a::after {
	content: "レッスンを見る";
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	margin-top: 14px;
	border-radius: 8px;
	background: var(--hitting-coral);
	color: #fff;
	font-size: 13px;
	font-weight: 900;
}

.single-hp_vendor .hp-listing__created-date,
.single-hp_vendor .hp-listing__attribute--chargename,
.single-hp_vendor .hp-listing__verified-badge {
	display: none;
}

.single-hp_vendor .hp-listing__attributes--secondary .hp-row {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
}

.single-hp_vendor .hp-listing__attributes--secondary [class*="hp-col-"] {
	flex: 0 1 auto;
	width: auto;
	max-width: 100%;
	padding: 0;
}

.single-hp_vendor .hp-listing__attribute--level,
.single-hp_vendor .hp-listing__attribute--old,
.single-hp_vendor .hp-listing__attribute--area {
	display: inline-flex;
	padding: 5px 8px;
	border-radius: 6px;
	background: #eef3f8;
	color: #41536b;
	font-size: 11px;
	font-weight: 700;
}

.single-hp_vendor .hp-listing--view-block > .hp-listing__footer {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	gap: 10px;
	min-width: 166px;
	padding: 18px;
	border: 0;
	border-left: 1px solid #edf1f5;
}

.single-hp_vendor .hp-listing__attribute--price {
	color: var(--hitting-navy);
	font-size: 1.35rem;
	font-weight: 900;
}

.single-hp_vendor .hp-listing__attribute--price::after {
	content: "〜";
	font-size: .7em;
}

.single-hp_vendor .hp-listing__actions--primary {
	display: none;
}

@media (max-width: 767px) {
	.single-hp_vendor .site-content {
		width: min(100% - 20px, 520px);
		margin: 16px auto 72px;
	}

	.single-hp_vendor .hp-page {
		display: block;
	}

	.single-hp_vendor .hp-page > .hp-row {
		grid-template-columns: 1fr;
		gap: 24px;
		margin: 0;
	}

	.single-hp_vendor .hp-vendor__image {
		height: 320px;
	}

	.single-hp_vendor .hp-listing--view-block {
		grid-template-columns: 1fr;
	}

	.single-hp_vendor .hp-listing--view-block > .hp-listing__footer {
		min-width: 0;
		padding: 12px 18px 18px;
		border-top: 1px solid #edf1f5;
		border-left: 0;
	}
}

/* Keep booking dates and actions readable on narrow account screens (v0.5.1) */
@media (max-width: 767px) {
	.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__footer {
		flex-direction: column;
		align-items: stretch;
	}

	.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__attributes--primary,
	.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__actions--primary,
	.hp-template--bookings-view-page .hp-booking--view-block .hp-booking__dates,
	.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__action--message {
		width: 100%;
		min-width: 0;
	}

	.hp-template--bookings-view-page .hp-booking--view-block .hp-booking__dates {
		font-size: 14px;
		white-space: nowrap;
	}

	.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__action--message {
		border: 1px solid var(--hitting-navy) !important;
		border-radius: 9px !important;
		background: #fff !important;
		color: var(--hitting-navy) !important;
	}

	.hp-template--bookings-view-page .hp-booking--view-block .hp-listing__action--message::after {
		display: inline;
		content: "メッセージを送る";
	}
}

/* Approved Hitting wordmark treatment (v0.4.7) */
.header-logo .custom-logo-link {
	display: inline-block;
	width: 158px;
	height: 46px;
	background: url("assets/images/hitting-wordmark.svg") left center / contain no-repeat;
}

.header-logo .custom-logo {
	display: none;
}

@media (max-width: 640px) {
	.header-logo .custom-logo-link {
		width: 132px;
		height: 40px;
	}
}

/* LF10: Mobile header stays in document flow. WordPress's mobile toolbar is
 * absolute below 600px, so a sticky header with a 46px offset can cover the
 * first progress step. Keep the role-specific bottom navigation fixed instead.
 * Flex wrapping is intentional: zoom/long labels must not clip an action. */
@media (max-width: 767px) {
	body .site-header,
	body.admin-bar .site-header {
		position: relative;
		top: auto;
	}

	body .header-navbar {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		box-sizing: border-box;
		width: calc(100% - 28px);
		max-width: 100%;
		padding-block: 8px;
	}

	body .header-navbar__start {
		flex: 1 1 112px;
		min-width: 0;
		margin: 0;
	}

	body .header-logo {
		/* A percentage-only child gives this flex item no intrinsic width. */
		flex: 0 1 132px;
		width: 132px;
		min-width: 0;
		max-width: 100%;
		margin: 0;
	}

	body .header-logo .custom-logo-link {
		width: 132px;
		max-width: 100%;
	}

	body .header-navbar__end {
		flex: 0 1 auto;
		flex-wrap: wrap;
		justify-content: flex-end;
		min-width: 0;
		max-width: 100%;
		margin: 0;
		gap: 6px;
	}

	body .header-navbar__burger {
		flex: 0 0 44px;
		margin-left: 0;
	}

	body .header-navbar__end .hp-menu__item--listing-submit {
		box-sizing: border-box;
		flex: 0 0 auto;
		max-width: 100%;
	}
}

/* Coach archive header, selected conditions and sorting (v0.5.14) */
.post-type-archive-hp_listing .hp-page__header::before,
.post-type-archive-hp_listing .hp-form--listing-search {
	display: none;
}

.post-type-archive-hp_listing .hp-page__header {
	grid-template-columns: minmax(0, 1fr) auto;
}

.post-type-archive-hp_listing .hitting-archive-summary {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: baseline;
	gap: 4px 10px;
	min-width: 0;
}

.post-type-archive-hp_listing .hitting-archive-summary__title {
	margin: 0;
	color: var(--hitting-navy);
	font-size: clamp(1.45rem, 3vw, 2rem);
	font-weight: 900;
	letter-spacing: .02em;
}

.post-type-archive-hp_listing .hitting-archive-summary__count {
	color: #53657b;
	font-size: 14px;
	font-weight: 800;
}

.post-type-archive-hp_listing .hitting-archive-summary__chips {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	min-height: 26px;
}

.post-type-archive-hp_listing .hitting-archive-summary__chip {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 3px 9px;
	border: 1px solid #8fd1dc;
	border-radius: 7px;
	background: #f4fcfd;
	color: #087d92;
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
}

.post-type-archive-hp_listing .hitting-archive-summary__chip:hover {
	border-color: var(--hitting-teal);
	background: #e9f9fb;
	color: #056a7c;
}

.post-type-archive-hp_listing .hp-button--listing-filter {
	width: 240px;
	max-width: 100%;
}

.post-type-archive-hp_listing .hp-page__topbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}

.post-type-archive-hp_listing .hp-result-count {
	color: #53657b;
	font-size: 13px;
	font-weight: 700;
}

.post-type-archive-hp_listing .hp-form--listing-sort {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 190px;
	margin: 0;
}

.post-type-archive-hp_listing .hp-form--listing-sort .hp-form__label {
	margin: 0;
	white-space: nowrap;
	color: var(--hitting-navy);
	font-size: 12px;
	font-weight: 800;
}

.post-type-archive-hp_listing .hp-form--listing-sort .select2-container {
	min-width: 126px;
}

@media (max-width: 767px) {
	.post-type-archive-hp_listing .hitting-archive-summary {
		grid-column: 1 / -1;
	}

	.post-type-archive-hp_listing .hitting-archive-summary__title {
		font-size: 1.25rem;
	}

	.post-type-archive-hp_listing .hp-button--listing-filter {
		grid-column: 1 / -1;
		width: 100%;
	}

	.post-type-archive-hp_listing .hp-page__topbar {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.post-type-archive-hp_listing .hp-form--listing-sort {
		width: 100%;
		min-width: 0;
	}

	.post-type-archive-hp_listing .hp-form--listing-sort .select2-container {
		flex: 1 1 auto;
		min-width: 0;
	}
}
