/*
 * Combined Design — theme.css
 * - すべてのクラスは cd- 接頭辞（他テーマ/プラグインとの衝突回避）
 * - 既存コンテンツ（Astra/Spectra製の固定ページ）への影響を避けるため、
 *   本文向けの文字組みは .cd-prose 配下の素のコアブロックに限定
 * - 色・フォント・基本の余白は theme.json 側で管理
 */

:root {
	--cd-line: #d9d9d9;
	--cd-dark: #444444;
	--cd-muted: #6b6b6b;
	--cd-sub: #f5f5f5;
	--cd-side: clamp(24px, 13%, 240px);
	--cd-gap: clamp(96px, 11vw, 160px);
	--cd-header-h: 76px;
	--cd-anchor-admin: 0px;
}

html {
	scroll-behavior: smooth;
	/* Header/admin-bar offsets are included in scroll-margin below. */
	scroll-padding-top: 0 !important;
}

body {
	line-break: strict;
	word-break: auto-phrase;
	-webkit-font-smoothing: antialiased;
}

[id] {
	scroll-margin-top: calc(var(--cd-header-h) + var(--cd-anchor-admin) + 8px / 3);
}

.admin-bar {
	--cd-anchor-admin: var(--wp-admin--admin-bar--height, 32px);
}

/* ---------- Header ---------- */
.cd-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.96);
}

.admin-bar .cd-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.cd-header-inner {
	height: var(--cd-header-h);
	padding: 0 max(24px, 4vw);
	align-items: center;
}

.cd-logo {
	margin: 0;
}

.cd-logo img {
	display: block;
	height: 28px;
	width: auto;
}

.cd-nav {
	font-size: 14px;
	letter-spacing: 0.08em;
}

.cd-nav .wp-block-navigation__container {
	gap: clamp(24px, 3vw, 48px);
}

.cd-nav .wp-block-navigation-item__content {
	position: relative;
	padding: 6px 0;
}

.cd-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background: currentColor;
	transition: width 0.3s;
}

.cd-nav .wp-block-navigation-item__content:hover::after {
	width: 100%;
}

.cd-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
	display: none;
}

.cd-nav .wp-block-navigation__responsive-container.is-menu-open {
	font-size: 16px;
}

/* ---------- Header: SNS icons ---------- */
:root {
	--cd-sns-size: 19px;
	--cd-sns-hover: #bdbdbd;
	--cd-nav-gap: clamp(16px, 2vw, 32px);
}

.cd-nav .wp-block-navigation__container {
	align-items: center;
	column-gap: var(--cd-nav-gap);
}

/* Separate the SNS section, then keep its individual touch targets close. */
.cd-nav .wp-block-navigation__container > .cd-nav-social {
	margin-inline-start: 24px;
}

.cd-nav .wp-block-navigation__container > .cd-nav-social + .cd-nav-social {
	margin-inline-start: calc(4px - var(--cd-nav-gap));
}

.cd-nav .cd-nav-social .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	min-height: 40px;
	padding: 0;
	color: #000;
}

/* Keep actual service names available to screen readers. */
.cd-nav .cd-nav-social .wp-block-navigation-item__label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.cd-nav .cd-nav-social .wp-block-navigation-item__content::after {
	display: none;
}

.cd-nav .cd-nav-social .wp-block-navigation-item__content::before {
	content: "";
	width: var(--cd-sns-size);
	height: var(--cd-sns-size);
	background: currentColor;
	-webkit-mask: var(--cd-social-icon) center / contain no-repeat;
	mask: var(--cd-social-icon) center / contain no-repeat;
}

.cd-nav-social-x { --cd-social-icon: var(--cd-icon-x); }
.cd-nav-social-note { --cd-social-icon: var(--cd-icon-note); }
.cd-nav-social-linkedin { --cd-social-icon: var(--cd-icon-linkedin); }

.cd-nav .cd-nav-social a:hover { color: var(--cd-sns-hover); }
.cd-nav a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

/* Standard navigation overlay handles focus, Escape, and scroll locking. */
.cd-nav .wp-block-navigation__responsive-container.is-menu-open {
	box-sizing: border-box;
	padding: 24px;
}

.cd-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: flex-start;
}

.cd-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
	gap: 16px 4px;
	width: min(100%, 320px);
}

.cd-nav .is-menu-open .wp-block-navigation__container > :not(.cd-nav-social) {
	flex: 0 0 100%;
}

.cd-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
	align-items: flex-start;
	text-align: left;
}

.cd-nav .is-menu-open .wp-block-navigation__container > .cd-nav-social {
	flex: 0 0 auto;
	margin-top: 16px;
	margin-inline-start: 0;
}

/* Switch early enough that five Japanese labels and SNS do not overflow. */
@media (min-width: 600px) and (max-width: 1199px) {
	.cd-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.cd-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
}

/* ---------- Home: reset ---------- */
.cd-home :where(h1, h2, h3, h4, p, figure, ul, ol) {
	margin-block: 0;
}

/* ---------- Hero ---------- */
.wp-block-image.cd-hero-visual {
	margin: 0;
	width: 100%;
	height: calc(100svh - var(--cd-header-h) - 96px);
	min-height: 320px;
	max-height: 820px;
	overflow: hidden;
	background: var(--cd-sub);
}

.wp-block-image.cd-hero-visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.cd-scroll-cue {
	padding-top: 18px;
	font-family: var(--wp--preset--font-family--cd-en);
	font-size: 11px;
	letter-spacing: 0.24em;
	text-align: center;
	text-indent: 0.24em;
}

.cd-scroll-cue::after {
	content: "";
	display: block;
	width: 1px;
	height: 56px;
	margin: 10px auto 0;
	background: #000;
	transform-origin: top;
	animation: cd-cue 2.4s ease-in-out infinite;
}

@keyframes cd-cue {
	0% { transform: scaleY(0); }
	50% { transform: scaleY(1); }
	100% { transform: scaleY(1); opacity: 0; }
}

.cd-hero-text {
	text-align: center;
	padding: clamp(72px, 8vw, 120px) var(--cd-side) clamp(120px, 14vw, 200px);
}

.cd-hero-block + .cd-hero-block {
	margin-top: clamp(72px, 8vw, 120px);
}

.cd-hero-block {
	scroll-margin-top: calc(var(--cd-header-h) + var(--cd-anchor-admin) + 8px);
}

.cd-hero-block h3 {
	font-size: clamp(20px, 2vw, 28px);
	letter-spacing: 0.08em;
	margin-bottom: 2em;
	font-weight: 400;
	text-wrap: balance;
}

.cd-hero-block p {
	font-size: clamp(14px, 1.3vw, 17px);
}

/* ---------- Common sections ---------- */
.cd-section {
	padding: var(--cd-gap) var(--cd-side) 0;
}

/* Keep the front-page layout, but reduce the visible inset when an anchor
 * lands on a section that already has substantial top padding. */
.cd-section[id] {
	scroll-margin-top: calc(var(--cd-header-h) + var(--cd-anchor-admin) + 8px / 3 - var(--cd-gap) * 2 / 3);
}

.cd-section-title {
	font-size: clamp(20px, 2vw, 28px);
	letter-spacing: 0.1em;
	margin-bottom: clamp(40px, 5vw, 72px);
}

/* 3 Work */
.cd-work-body {
	max-width: 720px;
	font-size: clamp(14px, 1.2vw, 16px);
}

.cd-work-body p + p {
	margin-top: 2em;
}

/* 4 Domain */
.cd-domain {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: clamp(40px, 6vw, 96px);
	align-items: start;
}

.cd-domain-lead {
	font-size: clamp(15px, 1.4vw, 18px);
	position: sticky;
	top: calc(var(--cd-header-h) + 40px);
}

.admin-bar .cd-domain-lead {
	top: calc(var(--cd-header-h) + 40px + var(--wp-admin--admin-bar--height, 32px));
}

.cd-domain-row {
	display: grid;
	grid-template-columns: 36px 76px 1fr;
	gap: clamp(14px, 1.6vw, 24px);
	align-items: center;
	padding: clamp(9px, 1vw, 12px) 0;
	border-top: 1px solid var(--cd-line);
}

.cd-domain-row:last-child {
	border-bottom: 1px solid var(--cd-line);
}

.cd-domain-row::before {
	content: "";
	width: 30px;
	height: 30px;
	background: #000;
	-webkit-mask: var(--cd-icon) center / contain no-repeat;
	mask: var(--cd-icon) center / contain no-repeat;
}

.cd-domain-row h3 {
	font-size: 16px;
	letter-spacing: 0.14em;
	line-height: 1.5;
}

.cd-domain-row p {
	font-size: 14px;
	line-height: 1.6;
}

.cd-domain-row em {
	display: block;
	margin-top: 2px;
	font-style: normal;
	font-size: 13px;
	color: var(--cd-muted);
	letter-spacing: 0.08em;
}

/* 5 FSENCO */
.cd-fsenco {
	text-align: center;
}

.cd-fsenco-grid.wp-block-group {
	margin: clamp(64px, 8vw, 112px) auto 0;
	max-width: 880px;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
}

.cd-fsenco-item {
	padding: 48px 16px;
	text-align: center;
	border-right: 1px solid var(--cd-line);
	border-bottom: 1px solid var(--cd-line);
}

.cd-fsenco-item:nth-child(3n) {
	border-right: 0;
}

.cd-fsenco-item:nth-child(n + 4) {
	border-bottom: 0;
}

.cd-fsenco-item .wp-block-image {
	margin: 0 0 24px;
}

.cd-fsenco-item img {
	display: block;
	width: 88px;
	height: 88px;
	margin: 0 auto;
}

.cd-fsenco-item h3 {
	font-family: var(--wp--preset--font-family--cd-en);
	font-size: 18px;
	letter-spacing: 0.16em;
	font-weight: 400;
	margin-bottom: 8px;
}

.cd-fsenco-item p {
	font-size: 14px;
}

/* 6 Column */
.cd-column-lead {
	max-width: 640px;
	margin-bottom: clamp(48px, 6vw, 80px);
}

.cd-cards.wp-block-group {
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(24px, 3vw, 48px);
}

.cd-card {
	display: flex;
	flex-direction: column;
}

.cd-card .wp-block-image {
	margin: 0 0 24px;
	aspect-ratio: 16 / 10;
	background: var(--cd-sub);
	overflow: hidden;
}

.cd-card .wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s;
}

.cd-card:hover .wp-block-image img {
	transform: scale(1.03);
}

.cd-card h3 {
	font-size: 18px;
	letter-spacing: 0.06em;
	margin-bottom: 12px;
}

.cd-card p {
	font-size: 14px;
	color: #333;
	flex: 1;
}

.cd-card .wp-block-buttons {
	margin-top: 24px;
	justify-content: center;
}

.cd-column-all {
	margin-top: clamp(56px, 7vw, 96px);
	justify-content: center;
}

.cd-column-all .wp-block-button__link {
	padding: 16px 56px;
	font-size: 14px;
}

/* 7 / 8 Centered text */
.cd-trust p,
.cd-future p {
	font-size: clamp(14px, 1.3vw, 17px);
	text-wrap: pretty;
}

.cd-trust p + p {
	margin-top: 2em;
}

.cd-trust .cd-section-title,
.cd-future .cd-section-title {
	text-align: center;
}

.cd-future {
	margin-top: var(--cd-gap);
	padding: var(--cd-gap) var(--cd-side);
}

.cd-future p {
	line-height: 2.4;
}

.cd-future p:last-child {
	margin-top: 1.2em;
	font-size: 1.1em;
}

/* 9 Company */
.cd-company {
	padding-bottom: 0;
}

.wp-block-table.cd-company-table {
	box-sizing: border-box;
	width: 100%;
	max-width: 760px;
	margin: 0;
}

.wp-block-table.cd-company-table table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}

.wp-block-table.cd-company-table td {
	text-align: left;
	vertical-align: top;
	font-weight: 300;
	padding: 28px 24px;
	border: 1px solid var(--cd-dark);
	font-size: 15px;
	background: #fff;
}

.wp-block-table.cd-company-table td:first-child {
	width: 30%;
	font-weight: 400;
	letter-spacing: 0.1em;
}

/* 10 Contact */
.cd-contact {
	padding-top: var(--cd-gap);
	padding-bottom: var(--cd-gap);
}

.cd-contact-inner {
	max-width: 720px;
}

.cd-contact-lead {
	margin-bottom: 0;
}

.cd-contact-note {
	margin-top: 1.5em;
	font-size: 13px;
	color: var(--cd-dark);
	line-height: 1.9;
}

.cd-contact-mail {
	margin-top: 2em;
	margin-bottom: clamp(40px, 5vw, 64px);
	font-size: 15px;
}

.cd-contact-mail a::before {
	content: "";
	display: inline-block;
	width: 1em;
	height: 0.75em;
	margin-right: 0.5em;
	background: currentColor;
	-webkit-mask: var(--cd-icon-mail) center / contain no-repeat;
	mask: var(--cd-icon-mail) center / contain no-repeat;
}

.cd-contact-mail a:hover {
	color: var(--cd-muted);
}

/* Contact Form 7 */
.cd-contact .wpcf7 form p,
.cd-contact .wpcf7 form .cd-field {
	margin: 0 0 32px;
}

.cd-contact .wpcf7 label {
	display: block;
	font-size: 13px;
	letter-spacing: 0.12em;
}

.cd-contact .wpcf7-form-control-wrap {
	display: block;
	margin-top: 10px;
}

.cd-contact .wpcf7 input[type="text"],
.cd-contact .wpcf7 input[type="email"],
.cd-contact .wpcf7 input[type="tel"],
.cd-contact .wpcf7 textarea {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	font: inherit;
	font-size: 16px;
	font-weight: 300;
	color: #000;
	border: 1px solid #bdbdbd;
	border-radius: 0;
	background: #fff;
	padding: 14px 16px;
	outline: none;
	letter-spacing: inherit;
	transition: border-color 0.3s;
}

.cd-contact .wpcf7 textarea {
	min-height: 180px;
	resize: vertical;
}

.cd-contact .wpcf7 input[type="text"]:focus,
.cd-contact .wpcf7 input[type="email"]:focus,
.cd-contact .wpcf7 input[type="tel"]:focus,
.cd-contact .wpcf7 textarea:focus {
	border-color: #000;
}

.cd-contact .wpcf7 input[type="submit"],
.cd-contact .wpcf7 .wpcf7-submit {
	font: inherit;
	font-size: 14px;
	letter-spacing: 0.2em;
	background: #000;
	color: #fff;
	border: 1px solid #000;
	border-radius: 999px;
	cursor: pointer;
	padding: 17px 72px;
	transition: background 0.3s, border-color 0.3s;
	-webkit-appearance: none;
	appearance: none;
}

.cd-contact .wpcf7 input[type="submit"]:hover,
.cd-contact .wpcf7 .wpcf7-submit:hover {
	background: var(--cd-dark);
	border-color: var(--cd-dark);
}

.cd-contact .wpcf7-not-valid-tip,
.cd-contact .wpcf7 form .wpcf7-response-output {
	font-size: 13px;
}

.cd-contact .wpcf7 form .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 0;
	border: 0;
	color: var(--cd-muted);
}

.cd-notice {
	font-size: 13px;
	color: var(--cd-muted);
}

/* ---------- Footer ---------- */
.cd-footer-inner {
	padding: 64px var(--cd-side) 48px;
	background: #fff;
	text-align: center;
}

.cd-footer-logo {
	margin: 0 0 24px;
}

.cd-footer-logo img {
	display: block;
	height: 20px;
	width: auto;
	margin: 0 auto;
	opacity: 0.9;
}

.cd-footer-links {
	font-size: 12px;
	margin: 0 0 12px;
}

.cd-footer-links a {
	border-bottom: 1px solid var(--cd-line);
}

.cd-footer-copy {
	margin: 0;
	font-size: 11px;
	color: var(--cd-muted);
	letter-spacing: 0.06em;
}

/* ---------- Fade in ---------- */
html.cd-js .cd-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 1s ease, transform 1s ease;
}

html.cd-js .cd-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* Anchor targets must not move after the browser has aligned them. */
html.cd-js .cd-reveal:target {
	opacity: 1;
	transform: none;
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	html.cd-js .cd-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.cd-scroll-cue::after {
		animation: none;
	}
	html {
		scroll-behavior: auto;
	}
}

/* =========================================================
 * 下層ページ（固定ページ／コラム）
 * ========================================================= */
.cd-page {
	padding: calc(clamp(56px, 7vw, 104px) / 3) 24px var(--cd-gap);
}

/* Values are measured from the existing first-content chain, so only its
 * leading whitespace shrinks; subsequent article blocks keep their spacing. */
.cd-page .cd-leading-compact {
	margin-top: var(--cd-leading-margin) !important;
	padding-top: var(--cd-leading-padding) !important;
}

.cd-page-title {
	font-size: clamp(22px, 2.4vw, 32px);
	line-height: 1.6;
	letter-spacing: 0.08em;
	margin: 0 0 clamp(40px, 5vw, 72px);
}

/* Series breadcrumbs sit outside the stored content and its Legacy layouts. */
.cd-breadcrumbs {
	margin-block: 0 20px;
	font-size: 13px;
	line-height: 1.8;
	color: var(--cd-muted);
}

.cd-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cd-breadcrumbs li {
	display: flex;
	align-items: baseline;
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.cd-breadcrumbs-separator {
	flex: none;
	margin-inline: 0.65em;
}

.cd-breadcrumbs a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.cd-breadcrumbs a:hover,
.cd-breadcrumbs a:focus-visible {
	color: var(--wp--preset--color--contrast, #000);
}

/* 本文の文字組み（素のコアブロックのみ対象。Spectra等の独自ブロックは上書きしない） */
.cd-prose {
	--wp--style--block-gap: 1.9em;
	line-height: 1.95;
}

.cd-prose p {
	line-height: 1.95;
}

.cd-prose .wp-block-heading {
	line-height: 1.6;
	letter-spacing: 0.06em;
	font-weight: 400;
}

.cd-prose h2.wp-block-heading {
	font-size: clamp(21px, 2.1vw, 26px);
	margin-top: 2.8em;
	padding-bottom: 0.5em;
	border-bottom: 1px solid var(--cd-line);
}

.cd-prose h3.wp-block-heading {
	font-size: clamp(18px, 1.8vw, 21px);
	margin-top: 2.4em;
}

.cd-prose h4.wp-block-heading {
	font-size: 17px;
	margin-top: 2em;
}

.cd-prose img {
	max-width: 100%;
	height: auto;
}

.cd-prose .wp-block-image {
	margin-top: 2.4em;
	margin-bottom: 2.4em;
}

.cd-prose .wp-block-image figcaption {
	font-size: 13px;
	color: var(--cd-muted);
	text-align: center;
	margin-top: 0.8em;
}

.cd-prose a:not(.wp-block-button__link) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
}

.cd-prose a:not(.wp-block-button__link):hover {
	color: var(--cd-muted);
}

.cd-prose ul,
.cd-prose ol {
	padding-left: 1.4em;
}

.cd-prose blockquote {
	margin-left: 0;
	margin-right: 0;
	padding: 0 0 0 1.4em;
	border-left: 1px solid var(--cd-dark);
	color: var(--cd-dark);
}

.cd-prose hr {
	border: 0;
	border-top: 1px solid var(--cd-line);
	margin: 3em 0;
}

.cd-prose > *:first-child {
	margin-top: 0;
}

/* コラム一覧：既存Spectra Legacyのカードだけを補正。本文は変更しない。 */
.cd-column-index .cd-page > .cd-prose {
	box-sizing: border-box;
	width: 100%;
	max-width: 1120px !important;
	margin-inline: auto !important;
}

.cd-column-index .cd-prose .cd-cards.wp-block-group { margin-top: 0; }

.cd-column-index .cd-prose .column-card-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 48px 32px !important;
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	padding: 0;
}

.cd-column-index .column-card-grid > .column-card {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	grid-column: auto !important;
	align-self: stretch;
}

.cd-column-index .column-card-grid > .column-card > .uagb-container-inner-blocks-wrap {
	display: flex;
	flex-direction: column;
	justify-content: flex-start !important;
	gap: 0 !important;
	width: 100%;
	max-width: 100%;
	height: 100%;
	padding: 0;
	margin: 0 !important;
}

.cd-column-index .column-card :is(.wp-block-uagb-image, .wp-block-image),
.cd-column-index .column-card .wp-block-uagb-image__figure {
	flex: 0 0 auto;
	width: 100%;
	max-width: 100%;
	margin: 0 !important;
}

.cd-column-index .column-card :is(.wp-block-uagb-image, .wp-block-image) img {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: auto !important;
}

.cd-column-index .column-card .column-card-title {
	margin: 20px 0 12px !important;
	padding: 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.7;
	letter-spacing: 0.06em;
	border: 0;
}

.cd-column-index .column-card .column-card-text {
	flex-grow: 1;
	margin: 0 !important;
	padding: 0;
	font-size: 14px;
	line-height: 1.95;
	color: #333;
}

.cd-column-index .column-card .column-card-actions {
	margin: 24px 0 0 !important;
	padding: 0;
}

.cd-column-index .column-card-actions .uagb-buttons__wrap { justify-content: center; }
.cd-column-index .column-card-actions .wp-block-button__link {
	box-sizing: border-box;
	padding: 13px 32px;
	font-size: 13px;
	font-weight: 300;
	line-height: 1.9;
	letter-spacing: 0.16em;
	color: #000;
	background: #fff;
	border: 1px solid #000;
	border-radius: 999px;
	text-decoration: none;
}
.cd-column-index .column-card-actions .uagb-button__link { color: inherit !important; }
.cd-column-index .column-card-actions .wp-block-button__link:is(:hover, :focus-visible) {
	color: #fff;
	background: #444;
	border-color: #444;
}

@media (max-width: 1024px) {
	.cd-column-index .cd-prose .column-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 40px 24px !important;
	}
}
@media (max-width: 767px) {
	.cd-column-index .cd-prose .column-card-grid {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 40px !important;
	}
}

/* シリーズ目次：リストを目次風に */
.cd-series .cd-prose ul,
.cd-series .cd-prose ol {
	list-style: none;
	padding: 0;
	margin-left: 0;
	border-bottom: 1px solid var(--cd-line);
}

.cd-series .cd-prose ul > li,
.cd-series .cd-prose ol > li {
	padding: 18px 0;
	border-top: 1px solid var(--cd-line);
}

.cd-series .cd-prose ul > li a,
.cd-series .cd-prose ol > li a {
	display: block;
	text-decoration: none;
	position: relative;
	padding-right: 2em;
}

.cd-series .cd-prose ul > li a::after,
.cd-series .cd-prose ol > li a::after {
	content: "→";
	position: absolute;
	right: 0;
	transition: transform 0.3s;
}

.cd-series .cd-prose ul > li a:hover::after,
.cd-series .cd-prose ol > li a:hover::after {
	transform: translateX(4px);
}

/* コラム本文：読みやすさ優先 */
.cd-article .cd-page-title {
	margin-bottom: clamp(48px, 6vw, 80px);
}

.cd-article .cd-prose p {
	font-size: clamp(15px, 1.2vw, 17px);
}

/* ---------- Column detail: percentages refer to the page viewport ---------- */
.cd-column-detail {
	--cd-detail-copy-width: 60%;
	/* The image sits inside the 60% text area: 60% x 5/6 = 50%. */
	--cd-detail-image-width: 83.3333333%;
}

.cd-column-detail .cd-page {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	padding-inline: 0;
}

.cd-column-detail .cd-page > :is(.cd-prose, .cd-page-title, .cd-breadcrumbs) {
	box-sizing: border-box;
	width: var(--cd-detail-copy-width) !important;
	max-width: none !important;
	margin-inline: auto !important;
}

/* Remove stacked width restrictions, including Legacy's 60% inner containers.
 * Preserve their order, vertical spacing, and every stored block/link. */
.cd-column-detail .cd-prose :is(.wp-block-uagb-container, .uagb-container-inner-blocks-wrap) {
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	padding-inline: 0 !important;
	margin-inline: auto !important;
}

.cd-column-detail .cd-prose > *,
.cd-column-detail .cd-prose .is-layout-constrained > * {
	max-width: 100% !important;
}

.cd-column-detail .cd-prose :is(.wp-block-uagb-image, .wp-block-image) {
	box-sizing: border-box;
	width: var(--cd-detail-image-width) !important;
	max-width: 100% !important;
	margin-inline: auto !important;
	float: none;
}

.cd-column-detail .cd-prose .wp-block-uagb-image__figure {
	width: 100% !important;
	max-width: 100% !important;
	margin-inline: 0 !important;
}

.cd-column-detail .cd-prose :is(.wp-block-uagb-image, .wp-block-image) img {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
}

/* Equal-sized cells remain in place on the first/last article as well. */
.cd-column-detail .series-article-nav {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(4px, 1.5vw, 24px) !important;
	align-items: center;
	width: 100%;
	max-width: 100%;
}

.cd-column-detail .series-article-nav > .series-nav-item {
	grid-column: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	text-align: center;
	/* Suppress the old full-width spacer before the previous link. */
	font-size: 0 !important;
	letter-spacing: 0;
}

.cd-column-detail .series-article-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45em;
	min-height: 44px;
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: 0.02em;
	white-space: nowrap;
	text-decoration: none !important;
}

.cd-column-detail .series-nav-prev a::before,
.cd-column-detail .series-nav-next a::after {
	content: "";
	box-sizing: border-box;
	flex: 0 0 0.5em;
	width: 0.5em;
	height: 0.5em;
	border: solid currentColor;
	border-width: 0 0 1.5px 1.5px;
	transform: rotate(45deg);
}

.cd-column-detail .series-nav-next a::after {
	transform: rotate(225deg);
}

.cd-column-detail .series-article-nav a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

@media (max-width: 1024px) {
	.cd-column-detail {
		--cd-detail-copy-width: 95%;
		--cd-detail-image-width: 100%;
	}
	.cd-column-detail .series-article-nav a { font-size: 14px; }
}

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
	:root {
		--cd-side: 8%;
	}

	.cd-cards.wp-block-group {
		grid-template-columns: repeat(2, 1fr);
	}

	.cd-domain {
		grid-template-columns: 1fr;
	}

	.cd-domain-lead,
	.admin-bar .cd-domain-lead {
		position: static;
	}
}

/* ---------- WP admin bar (small screens) ---------- */
@media (max-width: 782px) {
	.admin-bar .cd-header {
		top: var(--wp-admin--admin-bar--height, 46px);
	}
}

@media (max-width: 600px) {
	.admin-bar {
		--cd-anchor-admin: 0px;
	}
	.admin-bar .cd-header {
		top: 0;
	}
}

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
	:root {
		--cd-side: 24px;
		--cd-header-h: 64px;
	}

	body {
		font-size: 15px;
	}

	/* モバイルでは細切れの改行を解除し、自然に流れる文章にする */
	.cd-work-body br,
	.cd-domain-lead br,
	.cd-fsenco-text br {
		display: none;
	}

	.cd-work-body,
	.cd-domain-lead,
	.cd-column-lead,
	.cd-contact-lead {
		line-height: 2;
	}

	.cd-logo img {
		height: 24px;
	}

	.wp-block-image.cd-hero-visual {
		max-height: 560px;
	}

	.cd-domain-row {
		grid-template-columns: 34px 1fr;
		gap: 4px 16px;
	}

	.cd-domain-row p {
		grid-column: 2;
	}

	.cd-fsenco-grid.wp-block-group {
		grid-template-columns: repeat(2, 1fr);
	}

	.cd-fsenco-item {
		padding: 36px 8px;
	}

	.cd-fsenco-item:nth-child(3n) {
		border-right: 1px solid var(--cd-line);
	}

	.cd-fsenco-item:nth-child(2n) {
		border-right: 0;
	}

	.cd-fsenco-item:nth-child(n + 4) {
		border-bottom: 1px solid var(--cd-line);
	}

	.cd-fsenco-item:nth-child(n + 5) {
		border-bottom: 0;
	}

	.cd-fsenco-item img {
		width: 72px;
		height: 72px;
	}

	.cd-cards.wp-block-group {
		grid-template-columns: 1fr;
	}

	.wp-block-table.cd-company-table td {
		box-sizing: border-box;
		display: block;
		width: 100%;
		border-bottom: 0;
		padding: 8px 20px 20px;
	}

	.wp-block-table.cd-company-table table {
		table-layout: fixed;
	}

	.wp-block-table.cd-company-table td {
		overflow-wrap: anywhere;
	}

	.wp-block-table.cd-company-table td:first-child {
		width: 100%;
		padding: 20px 20px 4px;
		border-top: 1px solid var(--cd-dark);
	}

	.wp-block-table.cd-company-table td + td {
		border-top: 0;
	}

	.wp-block-table.cd-company-table tr:last-child td:last-child {
		border-bottom: 1px solid var(--cd-dark);
	}

	.cd-contact .wpcf7 input[type="submit"],
	.cd-contact .wpcf7 .wpcf7-submit {
		display: block;
		width: 70%;
		margin: 0 auto;
	}

	.cd-prose h2.wp-block-heading {
		margin-top: 2.4em;
	}
}

/* ---------- Icons (CSS mask) ---------- */
:root {
	--cd-icon-note: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6.5%2019V8.5M6.5%2012.2C6.5%209.6%208.4%208%2010.8%208h.4c2.8%200%204.3%201.6%204.3%204.2V19'/%3E%3C/svg%3E");
	--cd-icon-mail: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2024'%20%3E%3Cpath%20d='M4%200H28C30.2%200%2032%201.8%2032%204V5.2L16%2014L0%205.2V4C0%201.8%201.8%200%204%200Z'%20fill='black'/%3E%3Cpath%20d='M0%208L14.2%2018C15.3%2018.8%2016.7%2018.8%2017.8%2018L32%208V20C32%2022.2%2030.2%2024%2028%2024H4C1.8%2024%200%2022.2%200%2020V8Z'%20fill='black'/%3E%3C/svg%3E");
}

.cd-icon-1 {
	--cd-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%20fill='none'%20stroke='black'%20stroke-width='1'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='24'%20cy='24'%20r='18'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='9'/%3E%3Ccircle%20cx='24'%20cy='24'%20r='1.5'/%3E%3C/svg%3E");
}

.cd-icon-2 {
	--cd-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%20fill='none'%20stroke='black'%20stroke-width='1'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M24%205%2041%2020%2024%2043%207%2020Z'/%3E%3Cpath%20d='M7%2020h34M24%205l-7%2015%207%2023%207-23z'/%3E%3C/svg%3E");
}

.cd-icon-3 {
	--cd-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%20fill='none'%20stroke='black'%20stroke-width='1'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='18'%20cy='24'%20r='12'/%3E%3Ccircle%20cx='30'%20cy='24'%20r='12'/%3E%3C/svg%3E");
}

.cd-icon-4 {
	--cd-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%20fill='none'%20stroke='black'%20stroke-width='1'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%2032h40'/%3E%3Cpath%20d='M12%2032a12%2012%200%200%201%2024%200'/%3E%3Cpath%20d='M24%2010v6M9%2017l4%204M39%2017l-4%204'/%3E%3C/svg%3E");
}

.cd-icon-5 {
	--cd-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%20fill='none'%20stroke='black'%20stroke-width='1'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6%2024h34'/%3E%3Cpath%20d='m30%2014%2010%2010-10%2010'/%3E%3C/svg%3E");
}

/* Header icon masks: single-color shapes, no icon-font dependency. */
:root {
	--cd-icon-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M18.9 2H22l-6.8 7.8L23.2 22h-6.3L12 14.6 5.5 22H2.3l7.4-8.5L1 2h6.5l4.5 6.8L18.9 2Zm-1.1 18h1.7L6.6 3.9H4.8Z'/%3E%3C/svg%3E");
	--cd-icon-linkedin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M20.4 2H3.6C2.7 2 2 2.7 2 3.6v16.8c0 .9.7 1.6 1.6 1.6h16.8c.9 0 1.6-.7 1.6-1.6V3.6c0-.9-.7-1.6-1.6-1.6ZM8 19H5V9h3Zm-1.5-11.4a1.7 1.7 0 1 1 0-3.4 1.7 1.7 0 0 1 0 3.4ZM19 19h-3v-5.2c0-1.3-.5-2-1.4-2-1 0-1.6.7-1.6 2V19h-3V9h2.9v1.3c.5-.9 1.4-1.5 2.7-1.5 2.2 0 3.4 1.4 3.4 4.1Z'/%3E%3C/svg%3E");
}
