/* STEP7-1: 書体・幅・余白・色は確認用の仮設定。正式なブランド指定ではありません。 */
:root {
	--dd-color-background: #fff;
	--dd-color-text: #242424;
	--dd-color-link: #242424;
	--dd-content-width: 75rem;
	--dd-page-gutter: clamp(1.25rem, 4vw, 3rem);
	--dd-home-frame-width: 1600px;
	--dd-home-gutter: clamp(24px, 4vw, 64px);
	--dd-home-content-width: calc(min(100vw, var(--dd-home-frame-width)) - var(--dd-home-gutter) * 2);
	--dd-font-body: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: var(--dd-color-background);
	color: var(--dd-color-text);
	font-family: var(--dd-font-body);
	font-size: 1rem;
	line-height: 1.8;
	overflow-wrap: anywhere;
}

img,
video {
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea {
	font: inherit;
}

a {
	color: var(--dd-color-link);
	text-underline-offset: 0.2em;
}

:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.dd-container,
.site-main {
	width: min(var(--dd-content-width), calc(100% - var(--dd-page-gutter) * 2));
	margin-inline: auto;
}

.site-main {
	padding-block: clamp(2rem, 5vw, 5rem);
}

/* PCの本文幅は、お悩みカード列の左右に統一します。 */
@media (min-width: 768px) {
	.site-main .dd-services__inner,
	.site-main .dd-capabilities,
	.site-main .dd-cube,
	.site-main .dd-achievements__inner,
	.site-main .dd-news--latest,
	.site-main .dd-final-cta__inner {
		width: var(--dd-home-content-width);
		max-width: none;
		margin-inline: auto;
	}

	.site-main .dd-capabilities,
	.site-main .dd-final-cta__inner {
		padding-inline: 0;
	}
}

h1,
h2,
h3,
h4,
h5,
h6 {
	line-height: 1.4;
}

/* ホームの主要セクションは、お悩み見出しと同じ書式・左端に揃えます。 */
.dd-section-heading {
	max-width: var(--dd-home-frame-width);
	margin-inline: auto;
	padding: 64px var(--dd-home-gutter) 36px;
	background: #fff;
	color: #243327;
}

.dd-section-heading__eyebrow {
	margin: 0 0 8px;
	font-size: 13px;
	letter-spacing: .16em;
	color: #526347;
}

.dd-section-heading h2 {
	margin: 0;
	padding-left: 18px;
	border-left: 3px solid #91ad5b;
	font-size: clamp(25px, 3vw, 40px);
	letter-spacing: .04em;
}

#services,
#case-stories {
	scroll-margin-top: 140px;
}

@media (max-width: 599px) {
	.dd-section-heading {
		padding: 44px 20px 28px;
	}
}

.entry-content > :first-child {
	margin-block-start: 0;
}

.entry-content > :last-child {
	margin-block-end: 0;
}

/* WordPressの読み上げ用テキストは、キーボードフォーカス時に表示します。 */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	top: 1rem;
	left: 1rem;
	z-index: 100000;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0.75rem 1rem;
	clip-path: none;
	white-space: normal;
	background: var(--dd-color-background);
	color: var(--dd-color-text);
}
