/* Page templates — extends tokens.css / main.css */

.page-hero {
	padding-top: 40px;
	padding-bottom: 28px;
}

.page-lead {
	max-width: var(--layout-reading);
	color: var(--color-charcoal-soft);
	margin-top: -4px;
	font-size: 16px;
	line-height: 1.8;
}

.page-body-text {
	max-width: var(--layout-reading);
	color: var(--color-charcoal-soft);
	margin-bottom: 16px;
	line-height: var(--line-height-body);
}

.page-section {
	padding: 0 0 32px;
}

.subsection-title {
	font-size: 20px;
	line-height: 1.5;
	font-weight: 900;
	margin-bottom: 14px;
}

/* Tabs */
.tab-panel {
	padding: 0 28px 44px;
}

.tab-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 28px;
	border-bottom: 1px solid var(--color-line);
	padding-bottom: 12px;
}

.tab-btn {
	border: 1px solid var(--color-charcoal-soft);
	background: var(--color-cream);
	color: var(--color-charcoal);
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	min-height: 52px;
	padding: 12px 18px;
	cursor: pointer;
}

.tab-btn.is-active {
	border: 2px solid var(--color-red);
	background: var(--color-art-tag-bg);
	color: var(--color-red-deep);
}

.tab-btn:focus-visible {
	outline: 2px solid var(--color-red);
	outline-offset: 2px;
}

.tab-content[hidden] {
	display: none;
}

/* Forms */
.form-section {
	margin-top: 36px;
	padding-top: 28px;
	border-top: 1px solid var(--color-line);
}

.form-section .wpcf7 {
	max-width: 640px;
}

.form-textarea,
.form-input,
.wpcf7 textarea,
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="text"],
.wpcf7 select {
	width: 100%;
	border: 1px solid var(--color-line);
	min-height: 48px;
	padding: 13px 14px;
	font-family: inherit;
	font-size: var(--font-size-body);
	margin-top: 6px;
	margin-bottom: 14px;
	background: var(--color-cream);
	border-radius: 0;
}

.wpcf7 input[type="submit"] {
	border: none;
	background: var(--color-red);
	color: var(--color-cream);
	font-family: inherit;
	font-size: var(--font-size-body);
	font-weight: 700;
	min-height: 48px;
	padding: 12px 24px;
	cursor: pointer;
}

.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 textarea:focus-visible,
.wpcf7 input[type="email"]:focus-visible,
.wpcf7 input[type="tel"]:focus-visible,
.wpcf7 input[type="text"]:focus-visible {
	outline: 2px solid var(--color-red);
	outline-offset: 2px;
}

.wpcf7-radio .wpcf7-list-item {
	display: block;
	margin: 0 0 8px;
}

.wpcf7-radio .wpcf7-list-item label {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
}

.wpcf7-not-valid-tip {
	color: var(--color-red);
	font-size: var(--font-size-caption);
}

.wpcf7-response-output {
	border-color: var(--color-line);
	margin: 16px 0 0;
	padding: 12px;
}

.form-placeholder {
	color: var(--color-charcoal-soft);
}

/* Payment info */
.payment-info {
	margin-bottom: 20px;
	padding: 16px;
	border: 1px solid var(--color-line);
	background: var(--color-cream);
}

.payment-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: var(--color-red);
	margin-bottom: 6px;
}

.payment-value {
	font-size: var(--font-size-body);
	line-height: var(--line-height-body);
}

.payment-link {
	margin-bottom: 10px;
}

.payment-link a {
	color: var(--color-red-deep);
	overflow-wrap: anywhere;
}

/* Category nav */
.category-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}

.news-tag-chip.is-active {
	border-color: var(--color-red);
	color: var(--color-red-deep);
}

/* Foundation */
.foundation-section + .foundation-section {
	border-top: 1px solid var(--color-line);
}

.foundation-content,
.member-body,
.article-content {
	max-width: 760px;
	line-height: var(--line-height-body);
}

.member-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

.member-card {
	border: 1px solid var(--color-line);
	background: var(--color-cream);
	padding: 20px;
}

.member-name {
	font-size: 17px;
	font-weight: 900;
	margin-bottom: 8px;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.foundation-cta {
	padding-top: 0;
}

.foundation-cta .pillar-cta {
	max-width: 320px;
}

/* Article single */
.article-featured {
	margin: 0 0 20px;
	max-width: 760px;
}

.article-featured img {
	width: 100%;
	height: auto;
}

.article-single .art-date {
	margin-bottom: 16px;
}

.article-cta {
	margin-top: 28px;
	padding-top: 20px;
	border-top: 1px solid var(--color-line);
}

.article-cta .pillar-cta {
	max-width: 360px;
}

/* Placeholder */
.phase-placeholder {
	margin: 0 28px 36px;
	padding: 24px;
	border: 1px dashed var(--color-line);
	background: var(--color-cream);
	color: var(--color-charcoal-soft);
	text-align: center;
}

.tab-panel .phase-placeholder,
.page-section .phase-placeholder {
	margin-left: 0;
	margin-right: 0;
}

.entry-content p + p {
	margin-top: 1em;
}

/* Demo v2 inner pages */
.layout-wide,
.layout-default,
.layout-reading {
	width: 100%;
	margin-inline: auto;
}

.content-section {
	padding: 52px 28px;
}

.layout-wide {
	max-width: var(--layout-wide);
}

.layout-default {
	max-width: var(--layout-default);
}

.layout-reading {
	max-width: var(--layout-reading);
}

.region-source[hidden] {
	display: none !important;
}

.content-section--alt {
	background: var(--color-cream);
	border-top: 1px solid var(--color-line);
	border-bottom: 1px solid var(--color-line);
}

.page-hero {
	display: grid;
	gap: 20px;
}

.page-title {
	margin-bottom: 12px;
	font-size: 30px;
	line-height: 1.45;
}

.breadcrumb-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	padding: 0;
	margin: 0 0 12px;
	font-size: var(--font-size-caption);
	color: var(--color-charcoal-soft);
}

.breadcrumb-list li:not(:last-child)::after {
	content: "＞";
	margin-left: 6px;
	color: var(--color-line);
}

.breadcrumb-list a {
	color: var(--color-charcoal-soft);
	text-decoration: none;
}

.breadcrumb-list a:hover,
.breadcrumb-list a:focus-visible {
	color: var(--color-red);
}

.page-hero-photo,
.page-hero-media .media-frame {
	min-height: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.page-travel .tab-list,
.page-hire .tab-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: none;
	gap: 8px;
}

.page-travel .tab-btn,
.page-hire .tab-btn {
	width: 100%;
	text-align: center;
	min-height: 58px;
	padding: 15px 16px;
}

.info-card-grid {
	display: grid;
	gap: 20px;
}

.info-card-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.info-card-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.info-card-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.info-card,
.case-card,
.faq-item,
.contact-card {
	border: 1px solid var(--color-red-deep);
	background: var(--color-cream);
	padding: 22px;
	min-width: 0;
}

.info-card-grid--4 > .info-card {
	padding: 18px;
}

.info-card--flush {
	border-color: var(--color-line);
}

.card-num {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-red);
	color: var(--color-cream);
	font-weight: 900;
	font-size: 14px;
	margin-bottom: 10px;
}

.info-card-title,
.case-title,
.faq-q,
.chair-name {
	font-size: 17px;
	line-height: 1.55;
	font-weight: 900;
	margin: 8px 0;
	overflow-wrap: anywhere;
}

.info-card-body,
.case-body,
.faq-a,
.map-detail-body {
	color: var(--color-charcoal-soft);
	overflow-wrap: anywhere;
	line-height: 1.75;
}

.info-card-grid--4 .info-card-body,
.faq-a,
.map-detail-body {
	font-size: 15px;
	line-height: 1.68;
}

.inner-block + .inner-block {
	margin-top: 40px;
	padding-top: 32px;
	border-top: 1px solid var(--color-line);
}

.section-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
}

.section-sub,
.content-note {
	color: var(--color-charcoal-soft);
	font-size: var(--font-size-caption);
	margin: 10px 0 18px;
	line-height: 1.7;
}

.section-more {
	color: var(--color-red);
	font-weight: 700;
	text-decoration: none;
	font-size: 14px;
}

.choice-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}

.choice-chip,
.map-pin {
	border: 1px solid var(--color-charcoal-soft);
	background: var(--color-cream);
	color: var(--color-charcoal);
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	min-height: 44px;
	padding: 10px 14px;
	cursor: pointer;
	border-radius: 0;
}

.choice-chip.is-active,
.map-pin.is-active {
	border-color: var(--color-red);
	color: var(--color-red-deep);
}

.page-travel .choice-list .choice-chip {
	background: var(--color-base);
	border-color: var(--color-line);
	font-weight: 600;
}

.page-travel .choice-list .choice-chip.is-active {
	background: var(--color-cream);
	border-color: var(--color-red);
	font-weight: 700;
}

#ukeire-flow .info-card {
	position: relative;
}

.choice-chip:focus-visible,
.map-pin:focus-visible,
.accordion-trigger:focus-visible,
.content-cta:focus-visible {
	outline: 2px solid var(--color-red);
	outline-offset: 2px;
}

.kg-map-wrap {
	position: relative;
	min-height: 280px;
	margin-bottom: 14px;
	border: 1px solid var(--color-line);
	overflow: hidden;
}

.kg-map,
.kg-map.media-frame,
.kg-map.photo-ph,
.media-frame.kg-map.photo-ph {
	min-height: 280px;
	width: 100%;
}

.map-pin {
	position: absolute;
	transform: translate(-50%, -50%);
	width: 44px;
	height: 44px;
	padding: 0;
	background: var(--color-red);
	color: var(--color-cream);
	border-color: var(--color-red-deep);
	z-index: 1;
}

.map-detail,
.course-detail {
	border: 1px solid var(--color-line);
	padding: 16px;
	background: var(--color-cream);
}

.map-detail-title {
	font-weight: 900;
	margin-bottom: 8px;
}

.region-meta {
	margin: 0 0 10px;
	padding-left: 18px;
	color: var(--color-charcoal-soft);
}

.content-cta,
.content-cta--pending {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: 12px;
	min-height: 48px;
	padding: 12px 20px;
	font-size: 15px;
	background: var(--color-red);
	color: var(--color-cream);
	text-decoration: none;
	font-weight: 700;
	border: none;
}

.content-cta--pending {
	background: var(--color-cream);
	color: var(--color-charcoal-soft);
	border: 1px dashed var(--color-line);
}

.content-cta--block {
	display: flex;
	width: 100%;
}

.content-cta-wrap {
	margin-top: 16px;
}

.case-tag {
	display: inline-block;
	border: 1px solid var(--color-red);
	color: var(--color-red);
	font-size: var(--font-size-tag);
	font-weight: 700;
	padding: 2px 6px;
}

.table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.compare-table {
	width: 100%;
	border-collapse: collapse;
	background: var(--color-cream);
	font-size: 14px;
	line-height: 1.65;
}

.compare-table caption {
	caption-side: bottom;
	text-align: left;
	padding-top: 8px;
	color: var(--color-charcoal-soft);
	font-size: var(--font-size-caption);
}

.compare-table th,
.compare-table td {
	border: 1px solid var(--color-line);
	padding: 14px;
	vertical-align: top;
	text-align: left;
	overflow-wrap: anywhere;
}

.compare-table thead th,
.compare-table tbody th {
	background: var(--color-base);
	font-weight: 700;
}

.accordion-trigger {
	width: 100%;
	text-align: left;
	border: 1px solid var(--color-red-deep);
	background: var(--color-cream);
	color: var(--color-charcoal);
	font-family: inherit;
	min-height: 52px;
	font-size: 15px;
	font-weight: 700;
	padding: 12px 14px;
	cursor: pointer;
}

.accordion-panel {
	border: 1px solid var(--color-line);
	border-top: 0;
	padding: 16px;
	margin-bottom: 10px;
	font-size: 15px;
	line-height: 1.68;
}

.chair-block {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}

.chair-photo img,
.member-avatar img,
.activity-photo img {
	width: 100%;
	height: auto;
	display: block;
}

.chair-photo,
.member-avatar,
.media-frame.photo-ph {
	min-height: 140px;
}

.page-hero-photo img,
.page-hero-media .media-frame img,
.activity-photo img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.page-hero-photo img[src*="/travel-hero.jpg"] {
	object-position: center 64%;
}

.page-hero-photo img[src*="/education-exchange.jpg"] {
	object-position: center 58%;
}

.activity-photo {
	min-height: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.activity-photo img[src*="/education-exchange.jpg"] {
	object-position: center 55%;
}

.activity-photo img[src*="/cooking-training.jpg"] {
	object-position: center 58%;
}

.activity-photo img[src*="/horse-riding.jpg"] {
	object-position: center 34%;
}

.activity-photo img[src*="/culture-exchange.jpg"] {
	object-position: center 52%;
}

.chair-role,
.member-role {
	color: var(--color-red);
	font-size: var(--font-size-caption);
	font-weight: 700;
	margin: 0;
}

.report-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.report-list li {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 12px;
	padding: 16px 0;
	border-bottom: 1px solid var(--color-line);
}

.report-date {
	color: var(--color-charcoal-soft);
	font-size: var(--font-size-caption);
}

.map-placeholder {
	min-height: 180px;
	margin-top: 12px;
}

.contact-card {
	font-style: normal;
}

.about-link-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.about-link-list li + li {
	margin-top: 10px;
}

.about-link {
	color: var(--color-red-deep);
	text-decoration: none;
	border-bottom: 1px solid var(--color-line);
}

.about-link--pending {
	color: var(--color-charcoal-soft);
}

.wpcf7 input[type="email"]:focus-visible,
.wpcf7 input[type="text"]:focus-visible,
.wpcf7 select:focus-visible {
	outline: 2px solid var(--color-red);
	outline-offset: 2px;
}

/* Hire page Phase 1 */
.page-hire--phase1 {
	background: var(--color-base);
}

.page-hire--phase1 section[id] {
	scroll-margin-top: 24px;
}

.hire-hero {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	min-height: 590px;
	background: var(--color-red-deep);
	color: var(--color-cream);
}

.hire-hero-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 48px clamp(32px, 5vw, 72px);
}

.breadcrumb--light .breadcrumb-list,
.breadcrumb--light .breadcrumb-list a {
	color: var(--color-hero-copy-s);
}

.hire-hero-label {
	width: fit-content;
	margin: 8px 0 20px;
	padding: 7px 10px;
	background: var(--color-cream);
	color: var(--color-red-deep);
	border-left: 4px solid var(--color-gold);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.08em;
}

.hire-hero h1 {
	max-width: 650px;
	font-size: clamp(32px, 3.6vw, 46px);
	line-height: 1.42;
	letter-spacing: 0.01em;
}

.hire-hero-lead {
	max-width: 620px;
	margin-top: 22px;
	color: var(--color-hero-copy-s);
	font-size: 17px;
	line-height: 1.9;
}

.hire-hero-note {
	max-width: 620px;
	margin-top: 16px;
	padding-left: 14px;
	border-left: 2px solid var(--color-gold-pale);
	font-size: 13px;
	line-height: 1.75;
}

.hire-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 26px;
}

.hire-hero-actions .btn-primary {
	margin-top: 0;
}

.hire-hero-photo,
.hire-hero-photo.media-frame {
	min-height: 590px;
	overflow: hidden;
}

.hire-hero-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 54%;
}

.page-hire--phase1 .content-section {
	padding-top: 76px;
	padding-bottom: 76px;
}

.hire-section-intro,
.hire-section-lead {
	max-width: 760px;
	margin-top: -12px;
	margin-bottom: 30px;
	color: var(--color-charcoal-soft);
	font-size: 16px;
	line-height: 1.85;
}

.hire-split {
	display: grid;
	grid-template-columns: 0.92fr 1.08fr;
	align-items: stretch;
	border-top: 2px solid var(--color-red);
	border-bottom: 1px solid var(--color-line);
}

.hire-section-photo,
.hire-section-photo.media-frame {
	min-height: 470px;
	overflow: hidden;
}

.hire-section-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 57%;
}

.hire-split-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 48px;
}

.hire-check-list {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--color-line);
}

.hire-check-list li {
	position: relative;
	padding: 15px 0 15px 28px;
	border-bottom: 1px solid var(--color-line);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.65;
}

.hire-check-list li::before {
	content: "";
	position: absolute;
	top: 22px;
	left: 2px;
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--color-red);
	border-bottom: 2px solid var(--color-red);
	transform: rotate(-45deg);
}

.hire-purpose-grid,
.hire-program-grid,
.hire-method-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--color-red-deep);
	border: 1px solid var(--color-red-deep);
}

.hire-purpose-card {
	display: flex;
	flex-direction: column;
	min-height: 260px;
	padding: 28px;
	background: var(--color-cream);
	color: var(--color-charcoal);
	text-decoration: none;
}

.hire-card-num {
	color: var(--color-gold-deep);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.12em;
}

.hire-purpose-card h3,
.hire-program-card h3,
.hire-role-card h3,
.hire-method-card h3,
.hire-process-step h3 {
	font-size: 19px;
	line-height: 1.55;
	font-weight: 900;
}

.hire-purpose-card h3 {
	margin: 14px 0 10px;
}

.hire-purpose-card p,
.hire-program-card p,
.hire-role-card > p:last-child,
.hire-process-step p {
	color: var(--color-charcoal-soft);
	font-size: 14px;
	line-height: 1.75;
}

.hire-card-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	width: fit-content;
	margin-top: auto;
	padding-top: 20px;
	color: var(--color-red-deep);
	font-weight: 900;
}

.hire-purpose-card:hover .hire-card-link,
.hire-purpose-card:focus-visible .hire-card-link {
	color: var(--color-red);
}

.hire-program-card {
	display: grid;
	grid-template-columns: 0.85fr 1.15fr;
	min-height: 300px;
	background: var(--color-cream);
}

.hire-program-photo,
.hire-program-photo.media-frame {
	min-height: 300px;
	overflow: hidden;
}

.hire-program-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hire-program-body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 26px;
}

.hire-program-tag {
	width: fit-content;
	margin-bottom: 12px;
	padding: 5px 8px;
	background: var(--color-gold-soft);
	color: var(--color-gold-deep);
	border: 1px solid var(--color-gold-line);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.08em;
}

.hire-program-card h3 {
	margin-bottom: 10px;
}

.hire-model-section {
	background: var(--color-red-deep);
	color: var(--color-cream);
}

.hire-model-section .section-eyebrow {
	color: var(--color-gold-pale);
}

.hire-model-section .hire-section-intro {
	color: var(--color-hero-copy-s);
}

.hire-role-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: color-mix(in srgb, var(--color-cream) 45%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-cream) 45%, transparent);
}

.hire-role-card {
	position: relative;
	min-height: 280px;
	padding: 30px;
	background: var(--color-red-deep);
}

.hire-role-index {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	margin-bottom: 30px;
	background: var(--color-gold-pale);
	color: var(--color-red-deep);
	font-size: 13px;
	font-weight: 900;
}

.hire-role-label {
	margin-bottom: 8px;
	color: var(--color-gold-pale);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.1em;
}

.hire-role-card > p:last-child {
	margin-top: 12px;
	color: var(--color-hero-copy-s);
}

.hire-model-note {
	margin-top: 24px;
	padding: 16px 18px;
	border-left: 2px solid var(--color-gold-pale);
	color: var(--color-hero-copy-s);
	font-size: 13px;
	line-height: 1.75;
}

.hire-method-card {
	padding: 28px;
	background: var(--color-cream);
}

.hire-method-card h3 {
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--color-red);
}

.hire-method-card dl,
.hire-method-card dd {
	margin: 0;
}

.hire-method-card dl > div + div {
	margin-top: 16px;
}

.hire-method-card dt {
	margin-bottom: 4px;
	color: var(--color-red-deep);
	font-size: 12px;
	font-weight: 900;
}

.hire-method-card dd {
	color: var(--color-charcoal-soft);
	font-size: 14px;
	line-height: 1.7;
}

.hire-legal-note {
	margin-top: 20px;
	margin-bottom: 0;
}

.hire-process-list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	border-top: 1px solid var(--color-red-deep);
	border-bottom: 1px solid var(--color-red-deep);
}

.hire-process-step {
	position: relative;
	min-height: 250px;
	padding: 24px 20px;
	border-right: 1px solid var(--color-line);
}

.hire-process-step:last-child {
	border-right: 0;
}

.hire-process-step > span {
	display: block;
	margin-bottom: 34px;
	color: var(--color-gold-deep);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.12em;
}

.hire-process-step h3 {
	font-size: 16px;
	margin-bottom: 10px;
}

.hire-faq-list {
	border-top: 1px solid var(--color-red-deep);
}

.hire-faq-item {
	border-bottom: 1px solid var(--color-line);
	background: var(--color-cream);
}

.hire-faq-item summary {
	position: relative;
	padding: 22px 54px 22px 22px;
	cursor: pointer;
	font-size: 16px;
	font-weight: 900;
	list-style: none;
}

.hire-faq-item summary::-webkit-details-marker {
	display: none;
}

.hire-faq-item summary::after {
	content: "+";
	position: absolute;
	top: 18px;
	right: 22px;
	color: var(--color-red);
	font-size: 24px;
}

.hire-faq-item[open] summary::after {
	content: "−";
}

.hire-faq-item p {
	padding: 0 22px 24px;
	color: var(--color-charcoal-soft);
	line-height: 1.8;
}

.hire-contact-section {
	background: var(--color-red-deep);
	color: var(--color-cream);
	padding: 78px 28px 86px;
}

.hire-contact-inner > .section-eyebrow {
	color: var(--color-gold-pale);
}

.hire-contact-lead {
	max-width: 680px;
	margin-top: -10px;
	color: var(--color-hero-copy-s);
	line-height: 1.85;
}

.hire-contact-form {
	margin-top: 30px;
	padding: 32px;
	background: var(--color-cream);
	color: var(--color-charcoal);
}

.hire-contact-form .wpcf7 {
	max-width: none;
}

.hire-hero a:focus-visible,
.hire-purpose-card:focus-visible,
.hire-faq-item summary:focus-visible {
	outline: 2px solid var(--color-red);
	outline-offset: 3px;
}

@media (min-width: 1440px) {
	.content-section {
		padding-left: max(28px, calc((100% - var(--layout-wide)) / 2));
		padding-right: max(28px, calc((100% - var(--layout-wide)) / 2));
	}

	.page-hero.section {
		padding-left: max(28px, calc((100% - var(--layout-wide)) / 2));
		padding-right: max(28px, calc((100% - var(--layout-wide)) / 2));
	}
}

@media (max-width: 1100px) {
	.info-card-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hire-process-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.hire-process-step:nth-child(3) {
		border-right: 0;
	}

	.hire-process-step:nth-child(n + 4) {
		border-top: 1px solid var(--color-line);
	}
}

@media (max-width: 900px) {
	.info-card-grid--3,
	.chair-block {
		grid-template-columns: 1fr;
	}

	.report-list li {
		grid-template-columns: 1fr;
	}

	.hire-hero,
	.hire-split {
		grid-template-columns: 1fr;
	}

	.hire-hero-photo,
	.hire-hero-photo.media-frame {
		min-height: 360px;
		order: -1;
	}

	.hire-section-photo,
	.hire-section-photo.media-frame {
		min-height: 340px;
	}

	.hire-role-grid {
		grid-template-columns: 1fr;
	}

	.hire-role-card {
		min-height: 0;
	}
}

@media (max-width: 767px) {
	.info-card-grid--2,
	.info-card-grid--4 {
		grid-template-columns: 1fr;
	}

	.page-travel .tab-list,
	.page-hire .tab-list {
		grid-template-columns: 1fr;
	}

	.tab-list {
		flex-direction: column;
	}

	.tab-btn {
		width: 100%;
		text-align: left;
	}

	[data-compare-table] {
		display: none;
	}

	[data-compare-accordion] {
		display: block;
	}

	.hire-purpose-grid,
	.hire-program-grid,
	.hire-method-grid,
	.hire-process-list {
		grid-template-columns: 1fr;
	}

	.hire-program-card {
		grid-template-columns: 1fr;
	}

	.hire-program-photo,
	.hire-program-photo.media-frame {
		min-height: 230px;
	}

	.hire-process-step,
	.hire-process-step:nth-child(3) {
		min-height: 0;
		border-right: 0;
		border-top: 1px solid var(--color-line);
	}

	.hire-process-step:first-child {
		border-top: 0;
	}

	.hire-process-step > span {
		margin-bottom: 18px;
	}
}

@media (min-width: 768px) {
	[data-compare-accordion] {
		display: none;
	}
}

@media (max-width: 900px) {
	.member-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.content-section,
	.tab-panel,
	.phase-placeholder {
		padding-left: 18px;
		padding-right: 18px;
	}

	.layout-wide .tab-panel {
		padding-left: 0;
		padding-right: 0;
	}

	.page-section .phase-placeholder,
	.tab-panel .phase-placeholder {
		padding-left: 18px;
		padding-right: 18px;
	}

	.compare-table {
		min-width: 0;
	}

	.content-section {
		padding-top: 38px;
		padding-bottom: 38px;
	}

	.page-hire--phase1 .content-section {
		padding-top: 52px;
		padding-bottom: 52px;
	}

	.hire-hero-content {
		padding: 32px 20px 36px;
	}

	.hire-hero h1 {
		font-size: 28px;
	}

	.hire-hero-lead {
		font-size: 15px;
	}

	.hire-hero-actions {
		flex-direction: column;
	}

	.hire-hero-actions .btn-primary,
	.hire-hero-actions .btn-secondary {
		justify-content: center;
		width: 100%;
	}

	.hire-hero-photo,
	.hire-hero-photo.media-frame {
		min-height: 245px;
	}

	.hire-section-photo,
	.hire-section-photo.media-frame {
		min-height: 240px;
	}

	.hire-split-content {
		padding: 30px 0 0;
	}

	.hire-purpose-card,
	.hire-method-card,
	.hire-role-card {
		padding: 22px;
	}

	.hire-purpose-card {
		min-height: 235px;
	}

	.hire-program-body {
		padding: 22px;
	}

	.hire-contact-section {
		padding: 54px 18px 62px;
	}

	.hire-contact-form {
		padding: 22px 18px;
	}

	.hire-contact-section .section-title {
		font-size: 22px;
	}

	.page-hero {
		padding-top: 30px;
		padding-bottom: 24px;
	}

	.page-title {
		font-size: 25px;
	}

	.page-travel .tab-btn,
	.page-hire .tab-btn {
		min-height: 56px;
		text-align: center;
	}

	#ukeire-flow .info-card-grid {
		gap: 24px;
	}

	.page-hire .inner-block + .inner-block {
		margin-top: 30px;
		padding-top: 24px;
	}

	.page-hire .info-card {
		padding: 18px;
	}

	#ukeire-flow .info-card {
		display: grid;
		grid-template-columns: 40px minmax(0, 1fr);
		column-gap: 10px;
	}

	#ukeire-flow .card-num {
		grid-row: 1 / 3;
		margin-bottom: 0;
	}

	#ukeire-flow .info-card-title {
		margin-top: 0;
	}

	#ukeire-flow .info-card-body {
		grid-column: 2;
		line-height: 1.7;
	}

	#ukeire-flow .info-card:not(:last-child)::after {
		content: "";
		position: absolute;
		left: 36px;
		bottom: -25px;
		width: 2px;
		height: 24px;
		background: var(--color-red);
	}

	.member-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.member-card {
		display: grid;
		grid-template-columns: 112px minmax(0, 1fr);
		grid-template-rows: auto auto;
		column-gap: 12px;
		row-gap: 4px;
		align-items: start;
		align-content: start;
		padding: 16px;
	}

	.member-avatar,
	.member-card > .media-frame {
		grid-row: 1 / 3;
		align-self: start;
	}

	.member-avatar,
	.member-avatar .media-frame,
	.member-avatar .photo-ph,
	.member-card > .media-frame,
	.member-card > .media-frame.photo-ph {
		min-height: 112px;
		height: auto;
	}

	.member-name {
		margin-top: 0;
		margin-bottom: 4px;
		font-size: 16px;
		line-height: 1.4;
	}

	.page-foundation .content-section {
		padding-top: 30px;
		padding-bottom: 30px;
	}

	.page-foundation #aisatsu,
	.page-foundation #torikumi,
	.page-foundation #soshiki {
		padding-top: 32px;
		padding-bottom: 32px;
	}

	.page-foundation #jisseki,
	.page-foundation #access,
	.page-foundation #faq,
	.page-foundation #contact {
		padding-top: 24px;
		padding-bottom: 24px;
	}

	.page-foundation #kifu,
	.page-foundation #about-site {
		padding-top: 20px;
		padding-bottom: 20px;
	}

	.page-foundation #jisseki .section-title,
	.page-foundation #access .section-title,
	.page-foundation #kifu .section-title,
	.page-foundation #about-site .section-title,
	.page-foundation #faq .section-title {
		margin-bottom: 16px;
	}
}

/* Phase 2 bright brand prototype — キルギス人と働く. */
body.page-template-page-hire .page-hire--phase1 {
	background: var(--phase2-warm-white);
}

body.page-template-page-hire .hire-hero {
	background: var(--color-cream);
	color: var(--phase2-charcoal);
}

body.page-template-page-hire .breadcrumb--light .breadcrumb-list,
body.page-template-page-hire .breadcrumb--light .breadcrumb-list a {
	color: var(--phase2-charcoal-soft);
}

body.page-template-page-hire .hire-hero-label {
	background: var(--phase2-yellow);
	color: var(--phase2-red-deep);
	border-left-color: var(--phase2-red);
}

body.page-template-page-hire .hire-hero h1 {
	color: var(--phase2-red);
}

body.page-template-page-hire .hire-hero-lead {
	color: var(--phase2-charcoal-soft);
}

body.page-template-page-hire .hire-hero-note {
	padding: 12px 14px;
	background: var(--phase2-soft-yellow);
	border-left-color: var(--phase2-yellow);
	color: var(--phase2-charcoal);
}

body.page-template-page-hire .hire-hero-actions .btn-primary {
	background: var(--phase2-red);
	color: var(--color-cream);
}

body.page-template-page-hire .hire-hero-actions .btn-secondary {
	background: var(--color-cream);
	color: var(--phase2-red-deep);
	border-color: var(--phase2-red);
}

body.page-template-page-hire .hire-hero-photo,
body.page-template-page-hire .hire-hero-photo.media-frame {
	padding: var(--phase2-hero-yellow-inset) 0 var(--phase2-hero-yellow-inset) var(--phase2-hero-yellow-inset);
	background: var(--phase2-yellow);
}

body.page-template-page-hire .section-eyebrow {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--phase2-red);
}

body.page-template-page-hire .section-eyebrow::before {
	content: "";
	width: 10px;
	height: 10px;
	flex: 0 0 10px;
	background: var(--phase2-yellow);
}

body.page-template-page-hire .hire-foundation-section,
body.page-template-page-hire .hire-program-section,
body.page-template-page-hire .hire-method-section,
body.page-template-page-hire .hire-faq-section {
	background: var(--color-cream);
}

body.page-template-page-hire .hire-purpose-section {
	background: var(--phase2-hire-purpose-bg);
}

body.page-template-page-hire .hire-purpose-grid,
body.page-template-page-hire .hire-program-grid,
body.page-template-page-hire .hire-method-grid {
	gap: 12px;
	background: transparent;
	border: 0;
}

body.page-template-page-hire .hire-purpose-card,
body.page-template-page-hire .hire-program-card,
body.page-template-page-hire .hire-method-card {
	border: 1px solid var(--phase2-border);
}

body.page-template-page-hire .hire-purpose-card {
	background: var(--color-cream);
}

body.page-template-page-hire .hire-card-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	background: var(--phase2-yellow);
	color: var(--phase2-red-deep);
}

body.page-template-page-hire .hire-program-tag {
	background: var(--phase2-yellow);
	color: var(--phase2-charcoal);
	border-color: var(--phase2-yellow);
}

body.page-template-page-hire .hire-model-section {
	background: var(--phase2-hire-model-bg);
	color: var(--phase2-charcoal);
}

body.page-template-page-hire .hire-model-section .section-eyebrow,
body.page-template-page-hire .hire-role-label {
	color: var(--phase2-red);
}

body.page-template-page-hire .hire-model-section .hire-section-intro,
body.page-template-page-hire .hire-role-card > p:last-child,
body.page-template-page-hire .hire-model-note {
	color: var(--phase2-charcoal-soft);
}

body.page-template-page-hire .hire-role-grid {
	gap: 12px;
	background: transparent;
	border: 0;
}

body.page-template-page-hire .hire-role-card {
	background: var(--color-cream);
	border: 1px solid var(--phase2-border);
}

body.page-template-page-hire .hire-role-index {
	background: var(--phase2-yellow);
	color: var(--phase2-red-deep);
}

body.page-template-page-hire .hire-model-note {
	background: var(--phase2-soft-yellow);
	border-left-color: var(--phase2-yellow);
}

body.page-template-page-hire .hire-method-card h3 {
	border-bottom-color: var(--phase2-red);
}

body.page-template-page-hire .hire-process-section {
	background: var(--phase2-hire-process-bg);
}

body.page-template-page-hire .hire-process-list {
	background: var(--color-cream);
	border-top-color: var(--phase2-red);
	border-bottom-color: var(--phase2-red);
}

body.page-template-page-hire .hire-process-step > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--phase2-yellow);
	color: var(--phase2-red-deep);
}

body.page-template-page-hire .hire-faq-list {
	border-top-color: var(--phase2-red);
}

body.page-template-page-hire .hire-contact-section {
	background: var(--phase2-hire-contact-bg);
	color: var(--phase2-charcoal);
	border-top: 6px solid var(--phase2-yellow);
}

body.page-template-page-hire .hire-contact-inner > .section-eyebrow {
	color: var(--phase2-red);
}

body.page-template-page-hire .hire-contact-lead {
	color: var(--phase2-charcoal-soft);
}

body.page-template-page-hire .hire-contact-form {
	border-top: 6px solid var(--phase2-yellow);
}

body.page-template-page-hire .wpcf7 input[type="submit"] {
	background: var(--phase2-red);
}

@media (max-width: 900px) {
	body.page-template-page-hire .hire-hero-photo,
	body.page-template-page-hire .hire-hero-photo.media-frame {
		order: 0;
		padding: 0 var(--phase2-hero-yellow-inset-mobile) var(--phase2-hero-yellow-inset-mobile) 0;
	}
}

@media (max-width: 480px) {
	body.page-template-page-hire .hire-role-grid,
	body.page-template-page-hire .hire-purpose-grid,
	body.page-template-page-hire .hire-program-grid,
	body.page-template-page-hire .hire-method-grid {
		gap: 12px;
	}
}

/* Support — Safe Public Scope (minimal) */
.page-support .support-methods,
.page-support .support-areas,
.page-support .support-payment {
	padding-left: 28px;
	padding-right: 28px;
}

.page-support #support-tabs {
	scroll-margin-top: 12px;
}

.page-support .support-methods-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.page-support .support-method {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-height: 88px;
	padding: 16px;
	border: 1px solid var(--color-line);
	background: var(--color-white, #fff);
	color: inherit;
	text-decoration: none;
}

.page-support a.support-method:hover,
.page-support a.support-method:focus-visible {
	border-color: var(--color-red);
}

.page-support a.support-method:focus-visible {
	outline: 2px solid var(--color-red);
	outline-offset: 2px;
}

.page-support .support-method strong {
	font-size: 18px;
	font-weight: 900;
	line-height: 1.4;
}

.page-support .support-method span {
	color: var(--color-charcoal-soft);
	font-size: 14px;
	line-height: 1.5;
}

.page-support .support-method--pending {
	background: var(--color-cream);
	color: var(--color-charcoal-soft);
}

.page-support .support-area-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.page-support .support-area-tags li {
	padding: 8px 12px;
	border: 1px solid var(--color-line);
	background: var(--color-cream);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
}

.page-support .support-panel-lead {
	margin-bottom: 8px;
}

.page-support .support-payment {
	padding-bottom: 44px;
}

.page-support .support-payment .payment-info-pending {
	margin: 0;
}

@media (max-width: 900px) {
	.page-support .support-methods-list {
		grid-template-columns: 1fr;
	}

	.page-support .support-method {
		min-height: 0;
	}
}
