/* ==========================================================================
   Static Pages — Contact / Privacy Policy / future legal & info pages
   ========================================================================== */

.static-page {
	padding: 72px 0 96px;
	color: var(--text);
}

.static-page__inner {
	max-width: 760px;
	margin: 0 auto;
}

.static-page__inner--narrow {
	max-width: 720px;
}

/* Hero ------------------------------------------------------------------ */
.static-page__hero {
	text-align: center;
	margin-bottom: 56px;
}

.static-page__hero .eyebrow {
	display: inline-block;
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--brand);
	margin-bottom: 14px;
}

.static-page__title {
	margin: 0;
	font-family: var(--font-heading-en), var(--font-heading-ja);
	font-size: clamp(34px, 4.6vw, 52px);
	line-height: 1.08;
	letter-spacing: -0.01em;
	font-weight: 600;
	color: var(--text);
}

.static-page__lead {
	margin: 18px auto 0;
	max-width: 580px;
	font-size: 15.5px;
	line-height: 1.75;
	color: var(--muted);
}

.static-page__meta {
	font-size: 13px;
	letter-spacing: 0.04em;
	color: var(--muted);
}

/* Card ------------------------------------------------------------------ */
.static-card {
	margin: 24px auto 0;
	max-width: 520px;
	padding: 32px 36px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	text-align: center;
}

.contact-card__label {
	margin: 0 0 8px;
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--muted);
}

.contact-card__value {
	margin: 0;
	font-family: var(--font-heading-en), var(--font-heading-ja);
	font-size: 26px;
	font-weight: 600;
	letter-spacing: -0.005em;
	color: var(--brand-deep);
	word-break: break-word;
}

.contact-card__value--plain {
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 18px;
	letter-spacing: 0.02em;
	font-weight: 600;
	color: var(--text);
}

.contact-card__value a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(22, 94, 131, 0.25);
	transition: color 0.18s ease, border-color 0.18s ease;
}

.contact-card__value a:hover {
	color: var(--brand-hover);
	border-bottom-color: var(--brand-hover);
}

.contact-card__note {
	margin: 14px 0 0;
	font-size: 13px;
	color: var(--muted);
}

/* Contact Form 7 overrides --------------------------------------------- */
.jdoc-cf7-wrap .wpcf7 {
	margin-top: 0;
}

/* CF7 wraps shortcodes in <p>; collapse the auto <br> after labels. */
.jdoc-cf7-wrap .wpcf7-form > p {
	margin: 0 0 14px;
	line-height: 1.4;
}

.jdoc-cf7-wrap .wpcf7-form > p > br:first-of-type {
	display: none;
}

.jdoc-cf7-field {
	margin: 0 0 14px;
}

.jdoc-cf7-field > p {
	margin: 0;
}

.jdoc-cf7-field > p > br:first-of-type {
	display: none;
}

.jdoc-cf7-wrap label,
.jdoc-cf7-field label {
	display: block;
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 6px;
}

.jdoc-cf7-wrap .req,
.jdoc-cf7-field .req {
	display: inline-block;
	margin-left: 3px;
	color: var(--brand);
	font-weight: 700;
	letter-spacing: 0;
}

.jdoc-cf7-wrap input[type="text"],
.jdoc-cf7-wrap input[type="email"],
.jdoc-cf7-wrap input[type="tel"],
.jdoc-cf7-wrap input[type="url"],
.jdoc-cf7-wrap select,
.jdoc-cf7-wrap textarea,
.jdoc-cf7-wrap .wpcf7-form-control.wpcf7-text,
.jdoc-cf7-wrap .wpcf7-form-control.wpcf7-email,
.jdoc-cf7-wrap .wpcf7-form-control.wpcf7-select,
.jdoc-cf7-wrap .wpcf7-form-control.wpcf7-textarea {
	width: 100%;
	padding: 10px 14px;
	font-family: inherit;
	font-size: 14.5px;
	line-height: 1.45;
	color: var(--text);
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	box-shadow: none;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.jdoc-cf7-wrap input:focus,
.jdoc-cf7-wrap select:focus,
.jdoc-cf7-wrap textarea:focus {
	outline: none;
	border-color: var(--brand);
	box-shadow: 0 0 0 3px rgba(22, 94, 131, 0.10);
}

.jdoc-cf7-wrap select {
	padding-right: 34px;
	font-size: 15px;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--muted) 50%),
		linear-gradient(135deg, var(--muted) 50%, transparent 50%);
	background-position:
		calc(100% - 18px) 50%,
		calc(100% - 13px) 50%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	cursor: pointer;
}

.jdoc-cf7-wrap select option {
	font-size: 15px;
	padding: 8px 12px;
	color: var(--text);
	background: #fff;
}

.jdoc-cf7-wrap textarea,
.jdoc-cf7-wrap .wpcf7-form-control.wpcf7-textarea {
	min-height: 120px;
	padding: 12px 14px;
	resize: vertical;
}

/* Acceptance row — left aligned, hugs the bottom of the field stack */
.jdoc-cf7-wrap .wpcf7-acceptance,
.jdoc-cf7-wrap .wpcf7-form-control.wpcf7-acceptance,
.jdoc-cf7-wrap .jdoc-cf7-acceptance {
	margin: 14px 0 0;
	text-align: left;
}

.jdoc-cf7-wrap .jdoc-cf7-acceptance > p {
	margin: 0;
}

.jdoc-cf7-wrap .wpcf7-list-item {
	display: inline-flex;
	align-items: center;
	margin: 0;
}

.jdoc-cf7-wrap .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
	letter-spacing: 0.02em;
	text-transform: none;
	cursor: pointer;
}

.jdoc-cf7-wrap .wpcf7-list-item input[type="checkbox"] {
	width: 15px;
	height: 15px;
	margin: 0;
	accent-color: var(--brand);
	cursor: pointer;
}

.jdoc-cf7-wrap .wpcf7-list-item-label {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
	letter-spacing: 0.02em;
	text-transform: none;
}

.jdoc-cf7-wrap .wpcf7-list-item-label a,
.jdoc-cf7-wrap .jdoc-cf7-acceptance a {
	color: var(--brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.jdoc-cf7-wrap .wpcf7-list-item-label a:hover,
.jdoc-cf7-wrap .jdoc-cf7-acceptance a:hover {
	color: var(--brand-hover);
}

/* Submit button — editorial pill, auto width, brand color */
.jdoc-cf7-submit,
.jdoc-cf7-wrap .wpcf7-form > p:has(.wpcf7-submit) {
	margin: 22px 0 0;
	text-align: left;
}

.jdoc-cf7-wrap .wpcf7-submit {
	display: inline-block;
	width: auto;
	min-width: 180px;
	padding: 12px 30px;
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	background: var(--brand);
	border: 0;
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: background 0.18s ease, transform 0.18s ease;
}

.jdoc-cf7-wrap .wpcf7-submit:hover {
	background: var(--brand-hover);
	transform: translateY(-1px);
}

.jdoc-cf7-wrap .wpcf7-submit[disabled] {
	opacity: 0.6;
	cursor: wait;
	transform: none;
}

.jdoc-cf7-wrap .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: #c0392b;
}

.jdoc-cf7-wrap .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 12px 16px;
	border-radius: var(--radius-md);
	font-size: 14px;
	line-height: 1.5;
	border: 1px solid var(--line);
	background: rgba(22, 94, 131, 0.04);
}

.jdoc-cf7-wrap .wpcf7-mail-sent-ok + .wpcf7-response-output,
.jdoc-cf7-wrap form.sent .wpcf7-response-output {
	border-color: #2e7d32;
	background: rgba(46, 125, 50, 0.06);
	color: #1b5e20;
}

.jdoc-cf7-wrap form.invalid .wpcf7-response-output,
.jdoc-cf7-wrap form.failed .wpcf7-response-output {
	border-color: #c0392b;
	background: rgba(192, 57, 43, 0.06);
	color: #a93226;
}

.jdoc-cf7-wrap .wpcf7-spinner {
	margin-left: 10px;
	vertical-align: middle;
}

/* Contact page — two-column layout ------------------------------------- */
.static-page--contact {
	padding: 72px 0 0;
}

.page-contact .site-footer {
	margin-top: 48px;
}

.contact-page__inner {
	max-width: 1040px;
	margin: 0 auto;
}

.contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 80px;
	align-items: start;
}

.contact-intro .eyebrow {
	display: inline-block;
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--brand);
	margin-bottom: 18px;
}

.contact-intro__title {
	margin: 0;
	font-family: var(--font-heading-en), var(--font-heading-ja);
	font-size: clamp(34px, 4.2vw, 50px);
	line-height: 1.05;
	letter-spacing: -0.015em;
	font-weight: 600;
	color: var(--text);
}

.contact-intro__lead {
	margin: 22px 0 0;
	max-width: 36ch;
	font-size: 15.5px;
	line-height: 1.75;
	color: var(--muted);
}

.contact-meta {
	margin: 44px 0 0;
	padding-top: 28px;
	border-top: 1px solid var(--line);
	display: grid;
	gap: 20px;
}

.contact-meta__row {
	margin: 0;
}

.contact-meta__label {
	margin: 0 0 6px;
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted);
}

.contact-meta__value {
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	color: var(--text);
	word-break: break-word;
}

.contact-meta__value a {
	color: var(--brand);
	text-decoration: none;
	border-bottom: 1px solid rgba(22, 94, 131, 0.25);
	transition: color 0.18s ease, border-color 0.18s ease;
}

.contact-meta__value a:hover {
	color: var(--brand-hover);
	border-bottom-color: var(--brand-hover);
}

.contact-form-panel {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	padding: 32px 32px 28px;
}

@media (max-width: 880px) {
	.static-page--contact {
		padding: 48px 0 0;
	}
	.page-contact .site-footer {
		margin-top: 40px;
	}
	.contact-layout {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.contact-intro__lead {
		max-width: none;
	}
	.contact-meta {
		margin-top: 32px;
		padding-top: 22px;
	}
	.contact-form-panel {
		padding: 24px 22px 22px;
	}
}

/* Long-form prose (Privacy Policy etc.) -------------------------------- */
.static-prose {
	font-size: 15.5px;
	line-height: 1.85;
	color: var(--text);
}

.static-prose > * + * {
	margin-top: 1.1em;
}

.static-prose h2 {
	margin-top: 2.4em;
	margin-bottom: 0.6em;
	font-family: var(--font-heading-en), var(--font-heading-ja);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.005em;
	color: var(--brand-deep);
}

.static-prose ul {
	margin: 0;
	padding-left: 1.4em;
}

.static-prose ul li + li {
	margin-top: 0.4em;
}

.static-prose a {
	color: var(--brand);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.static-prose a:hover {
	color: var(--brand-hover);
}

/* Search form (used on 404) -------------------------------------------- */
.jdoc-search {
	display: flex;
	gap: 10px;
	width: 100%;
}

.jdoc-search__input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 12px 16px;
	font-size: 15px;
	font-family: inherit;
	color: var(--text);
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.jdoc-search__input:focus {
	outline: none;
	border-color: var(--brand);
	box-shadow: 0 0 0 3px rgba(22, 94, 131, 0.12);
}

.jdoc-search__submit {
	flex: 0 0 auto;
	padding: 12px 22px;
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
	background: var(--brand);
	border: 0;
	border-radius: var(--radius-md);
	cursor: pointer;
	transition: background 0.18s ease;
}

.jdoc-search__submit:hover {
	background: var(--brand-hover);
}

/* 404 ------------------------------------------------------------------- */
.static-page--404 .static-page__title {
	font-size: clamp(40px, 5.2vw, 60px);
}

.static-card--search {
	max-width: 560px;
	text-align: left;
}

.not-found-sections {
	margin: 72px auto 0;
	max-width: 720px;
	text-align: center;
}

.not-found-sections__title {
	margin: 0 0 28px;
	font-family: var(--font-body-en), var(--font-body-ja);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--muted);
}

.not-found-sections__grid {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}

.not-found-sections__item a {
	display: block;
	padding: 22px 24px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	text-align: left;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.not-found-sections__item a:hover {
	border-color: var(--brand);
	box-shadow: var(--shadow-soft);
	transform: translateY(-1px);
}

.not-found-sections__label {
	display: block;
	font-family: var(--font-heading-en), var(--font-heading-ja);
	font-size: 18px;
	font-weight: 600;
	color: var(--brand-deep);
}

.not-found-sections__lead {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.55;
	color: var(--muted);
}

.not-found-sections__home {
	margin: 32px 0 0;
	font-size: 14px;
	letter-spacing: 0.04em;
}

.not-found-sections__home a {
	color: var(--brand);
	text-decoration: none;
	border-bottom: 1px solid rgba(22, 94, 131, 0.25);
	padding-bottom: 2px;
	transition: color 0.18s ease, border-color 0.18s ease;
}

.not-found-sections__home a:hover {
	color: var(--brand-hover);
	border-bottom-color: var(--brand-hover);
}

/* Mobile ---------------------------------------------------------------- */
@media (max-width: 640px) {
	.static-page {
		padding: 48px 0 72px;
	}

	.static-page__hero {
		margin-bottom: 36px;
	}

	.static-card {
		padding: 24px 22px;
	}

	.contact-card__value {
		font-size: 22px;
	}

	.static-prose h2 {
		font-size: 19px;
	}

	.jdoc-search {
		flex-direction: column;
	}

	.jdoc-search__submit {
		width: 100%;
	}

	.not-found-sections {
		margin-top: 48px;
	}

	.not-found-sections__grid {
		grid-template-columns: 1fr;
	}
}
