/*
 * AKIPLA UI v0.6
 * A single authoritative refinement layer for layout, Japanese typography,
 * readable gutters and collision fixes. Loaded after main.css.
 */

:root {
	--ui-wide: 1220px;
	--ui-content: 760px;
	--ui-gutter: 48px;
}

.container {
	width: min(calc(100% - (var(--ui-gutter) * 2)), var(--container));
}

.container--wide { --container: var(--ui-wide); }
.container--content { --container: var(--ui-content); }

h1,
h2,
h3,
.section-heading__title {
	word-break: normal;
	overflow-wrap: break-word;
	line-break: strict;
	text-wrap: pretty;
	letter-spacing: -.035em;
}

p,
li,
dd {
	word-break: normal;
	overflow-wrap: break-word;
}

.section { padding-block: clamp(76px, 7vw, 112px); }
.section-heading { max-width: 760px; }
.section-heading__title {
	max-width: 740px;
	margin-bottom: 20px;
	font-size: clamp(34px, 3.4vw, 46px);
	line-height: 1.48;
}
.section-heading__lead { max-width: 720px; font-size: 15px; line-height: 1.95; }

/* The visible breadcrumb strip duplicated navigation and interrupted the page. */
.breadcrumbs { display: none; }

/* Hero: two deliberate lines at a common 1366px desktop width. */
.hero__inner {
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	min-height: 670px;
	padding-block: 52px 68px;
	gap: clamp(56px, 6vw, 84px);
}
.hero__content { min-width: 0; max-width: 560px; }
.hero__title {
	max-width: 560px;
	margin-bottom: 22px;
	font-size: clamp(41px, 3.7vw, 52px);
	line-height: 1.42;
}
.hero__lead { max-width: 540px; font-size: 15px; line-height: 1.95; }
.hero__image-wrap > img { padding: clamp(10px, 2vw, 24px); }

/* Connection story */
.connection-editorial__inner {
	grid-template-columns: minmax(0, 1.12fr) minmax(420px, .88fr);
	gap: clamp(56px, 6vw, 84px);
}
.connection-editorial__content { min-width: 0; }
.connection-editorial h2 {
	max-width: 670px;
	margin-bottom: 24px;
	font-size: clamp(36px, 3.25vw, 44px);
	line-height: 1.52;
}
.connection-editorial__lead { max-width: 690px; font-size: 15px; line-height: 2; }
.connection-flow h3 { font-size: 18px; }

/* Audience cards: number was hidden by an older rule, leaving copy in 34px. */
.audience__intro { max-width: 720px; }
.audience__intro h2 { font-size: clamp(32px, 3.1vw, 42px); line-height: 1.5; }
.audience__grid { gap: 24px; }
.audience-card { min-width: 0; }
.audience-card__body {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	min-width: 0;
	padding: 28px 30px 32px;
	gap: 14px;
}
.audience-card__number {
	display: block;
	width: auto;
	color: var(--forest);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
}
.audience-card__body > div { min-width: 0; width: 100%; }
.audience-card h2 {
	max-width: none;
	margin-bottom: 10px;
	font-size: clamp(22px, 2vw, 28px);
	line-height: 1.5;
	white-space: normal;
}
.audience-card__body p { max-width: 500px; }
.audience-card__link { white-space: normal; }

/* About and trust use a calmer editorial scale. */
.about__inner { gap: clamp(56px, 6vw, 88px); }
.about__content { min-width: 0; }
.about .section-heading__title { max-width: 610px; font-size: clamp(36px, 3.2vw, 43px); line-height: 1.52; }
.about__content > p:not(.eyebrow) { max-width: 650px; }
.about-values { margin-top: 30px; }

.trust__inner {
	grid-template-columns: minmax(0, 1.06fr) minmax(420px, .94fr);
	gap: clamp(56px, 6vw, 84px);
	padding: clamp(44px, 5vw, 68px);
	border-radius: 30px;
	background: var(--white);
	overflow: hidden;
}
.trust__content { min-width: 0; }
.trust .section-heading__title {
	max-width: 650px;
	font-size: clamp(36px, 3.2vw, 44px);
	line-height: 1.52;
}
.trust__content > p { max-width: 650px; font-size: 14px; line-height: 1.95; }
.trust__operator { border-color: var(--line); color: var(--forest) !important; }
.trust__facts { border-top-color: var(--line); }
.trust__facts > div { border-bottom-color: var(--line); }
.trust__facts dt { color: var(--ink); }
.trust__facts dd { color: var(--muted); }
.trust__content,
.trust__content > *,
.trust__facts,
.trust__facts > div { min-width: 0; max-width: 100%; }

/* Listing headings keep their CTA attached to the heading block. */
.want__head,
.magazine__head {
	display: grid;
	grid-template-columns: minmax(0, 760px) auto;
	align-items: end;
	justify-content: space-between;
	gap: 48px;
}
.want__head .section-heading,
.magazine__head .section-heading { min-width: 0; }
.want__head .text-link,
.magazine__head .text-link { align-self: end; margin-bottom: 10px; white-space: nowrap; }

/* Final action area */
.final-cta__inner {
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
	gap: clamp(50px, 6vw, 80px);
}
.final-cta__content { min-width: 0; }
.final-cta h2 {
	max-width: 620px;
	font-size: clamp(36px, 3.25vw, 44px);
	line-height: 1.52;
}

/* Secondary page hero */
.page-hero,
.landing-hero { padding-block: clamp(64px, 7vw, 98px); }
.page-hero__split,
.landing-hero__inner {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(52px, 5vw, 68px);
}
.page-hero__copy,
.landing-hero__content { min-width: 0; }
.page-hero h1,
.landing-hero h1 {
	max-width: 500px;
	font-size: clamp(37px, 3.15vw, 42px);
	line-height: 1.55;
}
.page-hero__copy > p:last-child,
.landing-hero__content > p { max-width: 610px; }

.about-problem h2,
.about-role h2,
.owner-intro h2,
.want-explainer h2,
.partner-intro h2,
.principles__intro h2,
.legacy h2,
.company-profile__content h2,
.representative-message h2,
.difficult-cases h2,
.matching-policy h2,
.alliance-expectations__intro h2 {
	font-size: clamp(34px, 3.15vw, 44px);
	line-height: 1.55;
}

/* Contact topics must never inherit the numbered after-submit grid. */
.after-submit .contact-topics {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	width: 100%;
}
.after-submit .section-heading__title { max-width: 720px; font-size: 38px; }
.desktop-break { display: block; }
.after-submit .contact-topics > li,
.after-submit .contact-topics > li + li {
	display: block;
	min-width: 0;
	width: auto;
	padding: 18px 24px 18px 28px;
	border-left: 0;
	font-size: 14px;
	line-height: 1.8;
}

/* Footer CTA */
.site-footer__cta { gap: 42px; }
.site-footer__cta > div:first-child { min-width: 0; flex: 1 1 auto; }
.site-footer__cta h2 {
	max-width: 790px;
	font-size: clamp(29px, 2.5vw, 35px);
	line-height: 1.55;
}

@media (max-width: 1100px) {
	:root { --ui-gutter: 32px; }
	.hero__inner,
	.connection-editorial__inner,
	.trust__inner,
	.final-cta__inner,
	.page-hero__split,
	.landing-hero__inner {
		gap: 48px;
	}
	.hero__title { font-size: 42px; }
	.connection-editorial h2,
	.trust .section-heading__title { font-size: 38px; }
	.want__head,
	.magazine__head { grid-template-columns: minmax(0, 1fr) auto; }
}

@media (max-width: 960px) {
	.hero__inner,
	.connection-editorial__inner,
	.trust__inner,
	.final-cta__inner,
	.page-hero__split,
	.landing-hero__inner {
		grid-template-columns: 1fr;
	}
	.trust__inner,
	.final-cta__inner { grid-template-areas: "visual" "content"; }
	.trust__visual,
	.final-cta__visual {
		grid-column: 1 !important;
		grid-row: 1 !important;
		order: 0 !important;
	}
	.trust__content,
	.final-cta__content {
		grid-column: 1 !important;
		grid-row: 2 !important;
		order: 0 !important;
	}
	.audience__grid { grid-template-columns: 1fr; }
	.audience-card { max-width: 720px; margin-inline: auto; }
	.want__head,
	.magazine__head { grid-template-columns: 1fr; gap: 22px; }
	.want__head .text-link,
	.magazine__head .text-link { justify-self: start; margin: 0; }
}

@media (max-width: 680px) {
	:root { --ui-gutter: 18px; }
	.section { padding-block: 64px; }
	.section-heading__title { font-size: 28px; line-height: 1.55; }
	.section-heading__lead { font-size: 13px; }
	.hero__inner { min-height: auto; padding-block: 14px 52px; gap: 24px; }
	.hero__title { max-width: 350px; font-size: 31px; line-height: 1.5; }
	.hero__lead { font-size: 13px; }
	.connection-editorial h2,
	.about .section-heading__title,
	.trust .section-heading__title,
	.final-cta h2,
	.landing-hero h1,
	.about-problem h2,
	.about-role h2,
	.owner-intro h2,
	.want-explainer h2,
	.partner-intro h2,
	.principles__intro h2,
	.legacy h2,
	.company-profile__content h2,
	.representative-message h2,
	.difficult-cases h2,
	.matching-policy h2,
	.alliance-expectations__intro h2 {
		font-size: 27px;
		line-height: 1.58;
	}
	.page-hero h1 { max-width: 340px; font-size: 25px; line-height: 1.65; }
	.audience-card__body { grid-template-columns: 32px minmax(0, 1fr); padding: 22px 20px 25px; }
	.audience-card h2 { font-size: 21px; }
	.trust__inner {
		width: calc(100% - (var(--ui-gutter) * 2));
		padding: 22px;
		border-radius: 22px;
		gap: 28px;
	}
	.trust__visual { overflow: hidden; }
	.trust__facts { margin-block: 26px; }
	.trust__facts > div {
		grid-template-columns: 82px minmax(0, 1fr);
		gap: 14px;
		padding-block: 14px;
	}
	.trust__facts dd { font-size: 11px; }
	.final-cta__inner {
		width: calc(100% - (var(--ui-gutter) * 2));
		padding: 22px;
		border-radius: 22px;
		gap: 28px;
	}
	.after-submit .contact-topics { grid-template-columns: 1fr; }
	.after-submit .section-heading__title { font-size: 27px; }
	.desktop-break { display: none; }
	.after-submit .contact-topics > li,
	.after-submit .contact-topics > li + li { padding: 17px 18px 17px 26px; }
	.site-footer__cta h2 { font-size: 25px; }
}
