/* ==========================================================================
   Eyewall corporate site — theme stylesheet
   構成:
     1. Design tokens
     2. Reset / base（.ew-page 配下のみに適用。Cocoon標準ページには影響しない）
     3. Utilities（1pxグリッド・コンテナ・縦書き・英字ラベル・見出し・タグ・ボタン等）
     4. 共通コンポーネント（header / page-head / footer / SPヘッダー・メニュー）※フェーズ2で追加
     5. TOPページ専用セクション ※フェーズ3で追加
     6. 再利用カード・行リスト（card-work / row-news）※フェーズ5で追加
     7. 下層ページ専用セクション ※フェーズ4で追加
     8. フォーム ※フェーズ4で追加
     9. レスポンシブ（max-width:768px）※各セクション追加時に合わせて追記
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root {
	--ew-color-bg: #F2EFE7;
	--ew-color-bg-alt: #EDE9DF;
	--ew-color-ink: #14161F;
	--ew-color-body: #42444d;
	--ew-color-body-article: #2c2e38;
	--ew-color-sub: #5a5c66;
	--ew-color-label: #8a8778;
	--ew-color-navy: #1B2A5E;
	--ew-color-vermilion: #C7412A;
	--ew-color-vermilion-hover: #A83722;
	--ew-color-vermilion-soft: #F2B8AB;
	--ew-color-rule: #d8d3c6;
	--ew-color-border: #b9b3a3;
	--ew-color-grid: #c9c3b3;
	--ew-color-placeholder: #dcd7c9;

	--ew-font-serif: 'Shippori Mincho B1', serif;
	--ew-font-sans: 'Zen Kaku Gothic New', sans-serif;
	--ew-font-en: 'Oswald', sans-serif;

	--ew-pad-pc: 44px;
	--ew-pad-sp: 18px;
	--ew-radius: 0;
}

/* --------------------------------------------------------------------------
   2. Reset / base
   -------------------------------------------------------------------------- */
.ew-page,
.ew-page *,
.ew-page *::before,
.ew-page *::after {
	box-sizing: border-box;
}

.ew-page {
	background: var(--ew-color-bg);
	color: var(--ew-color-body);
	font-family: var(--ew-font-sans);
	font-size: 13px;
	line-height: 2.3;
}

.ew-page h1,
.ew-page h2,
.ew-page h3,
.ew-page h4,
.ew-page p,
.ew-page dl,
.ew-page dd,
.ew-page dt,
.ew-page ul,
.ew-page ol,
.ew-page figure {
	margin: 0;
	padding: 0;
}

.ew-page ul,
.ew-page ol {
	list-style: none;
}

/* 要素セレクタのみ（.ew-page を付けない）：詳細度をクラス1個分より低く保ち、
   個別コンポーネントの img.xxx{display:none} 系の出し分けが確実に勝つようにする */
img {
	display: block;
	max-width: 100%;
	height: auto;
}

.ew-page a {
	color: inherit;
	text-decoration: none;
	transition: opacity .2s ease;
}

.ew-page a:hover {
	opacity: .6;
}

.ew-page * {
	border-radius: var(--ew-radius);
}

/* --------------------------------------------------------------------------
   3. Utilities
   -------------------------------------------------------------------------- */

/* コンテナ：横パディング PC44px / SP18px（フェーズ9で上書き） */
.ew-container {
	padding-left: var(--ew-pad-pc);
	padding-right: var(--ew-pad-pc);
}

/* 1pxグリッド：display:grid; gap:1px; background:区切り色 の子要素に地色を敷く手法 */
.ew-grid-1px {
	display: grid;
	gap: 1px;
	background: var(--ew-color-grid);
}

.ew-grid-1px > * {
	background: var(--ew-color-bg);
}

.ew-grid-1px--cols-2 {
	grid-template-columns: repeat(2, 1fr);
}

.ew-grid-1px--cols-3 {
	grid-template-columns: repeat(3, 1fr);
}

.ew-grid-1px--bordered {
	border: 1px solid var(--ew-color-grid);
}

.ew-grid-1px--cols-4 {
	grid-template-columns: repeat(4, 1fr);
}

.ew-grid-1px--cols-5 {
	grid-template-columns: repeat(5, 1fr);
}

.ew-grid-1px--on-navy {
	background: rgba(255, 255, 255, .25);
}

.ew-grid-1px--on-navy > * {
	background: var(--ew-color-navy);
}

/* 縦書き：横書きへの切替はフェーズ9のメディアクエリに一本化する（他所で上書きしない） */
.ew-vertical {
	writing-mode: vertical-rl;
}

/* 欧文ラベル：Oswald・letter-spacing広め・大文字 */
.ew-label-en {
	font-family: var(--ew-font-en);
	text-transform: uppercase;
	font-weight: 400;
}

.ew-label-en--sm {
	font-size: 11px;
	letter-spacing: .3em;
}

.ew-label-en--md {
	font-size: 12px;
	letter-spacing: .24em;
}

.ew-label-en--lg {
	font-size: 12px;
	letter-spacing: .26em;
}

.ew-label-en--xs {
	font-size: 11px;
	letter-spacing: .24em;
}

/* セクション見出しパターン（英字ラベル番号＋和文タイトル。TOP・下層ページで反復） */
.ew-section-num {
	display: flex;
	align-items: baseline;
	gap: 16px;
}

.ew-section-num__no {
	color: var(--ew-color-navy);
}

.ew-section-num__no--on-navy {
	color: rgba(255, 255, 255, .6);
}

/* 見出しパターン（README「PCの主なサイズ」表に対応。SP側はフェーズ9で上書き） */
.ew-heading {
	font-family: var(--ew-font-serif);
	font-weight: 600;
}

.ew-heading--hero {
	font-size: 40px;
	line-height: 1.75;
	letter-spacing: .18em;
}

.ew-heading--page-title {
	font-size: 44px;
	letter-spacing: .12em;
}

.ew-heading--section {
	font-size: 26px;
	letter-spacing: .10em;
}

.ew-heading--lead {
	font-size: 34px;
	line-height: 1.8;
	letter-spacing: .08em;
}

.ew-heading--card-title {
	font-weight: 400;
	font-size: 20px;
	line-height: 1.8;
	letter-spacing: .06em;
}

/* 見出しの朱罫線装飾（お知らせ詳細h2・プライバシーポリシー条見出し等で使用） */
.ew-heading--ruled {
	border-left: 3px solid var(--ew-color-vermilion);
	padding-left: 18px;
}

/* 引用：朱罫線＋余白多め（見出し装飾とはpadding-leftの値が異なるため別クラス） */
.ew-quote {
	border-left: 3px solid var(--ew-color-vermilion);
	padding-left: 22px;
}

/* タグ（対応メニュー・勤務地タグ等） */
.ew-tag {
	display: inline-block;
	border: 1px solid var(--ew-color-border);
	padding: 7px 16px;
	font-size: 12px;
}

.ew-tag--active {
	background: var(--ew-color-vermilion);
	border-color: var(--ew-color-vermilion);
	color: #fff;
}

/* ボタン */
.ew-btn {
	display: inline-block;
	font-family: var(--ew-font-sans);
	font-size: 12px;
	letter-spacing: .14em;
	text-align: center;
}

.ew-btn--primary {
	background: var(--ew-color-vermilion);
	color: #fff;
	padding: 12px 26px;
}

.ew-btn--primary:hover {
	background: var(--ew-color-vermilion-hover);
	opacity: 1;
}

.ew-btn--lg {
	padding: 22px;
	font-size: 14px;
}

/* 下線リンク（「会社案内を見る →」等） */
.ew-link-arrow {
	display: inline-block;
	border-bottom: 2px solid var(--ew-color-vermilion);
	padding-bottom: 2px;
	font-size: 13px;
}

/* 定義リスト：ラベル幅はブロックごとに異なるため style="--ew-dl-label-w:200px" で上書きする */
.ew-dl {
	display: grid;
	grid-template-columns: var(--ew-dl-label-w, 160px) 1fr;
	gap: 10px 20px;
}

.ew-dl dt {
	color: var(--ew-color-label);
}

/* パンくず */
.ew-breadcrumb {
	font-size: 11px;
	letter-spacing: .1em;
	color: var(--ew-color-label);
}

.ew-breadcrumb a:hover {
	opacity: .6;
}

/* スクリーンリーダー専用（視覚非表示だが読み上げ対応） */
.ew-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* --------------------------------------------------------------------------
   4. 共通コンポーネント（header / page-head / footer / SPメニュー）
   -------------------------------------------------------------------------- */

/* --- Header --- */
.ew-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 900;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px var(--ew-pad-pc);
	border-bottom: 1px solid var(--ew-color-ink);
	background: var(--ew-color-bg);
	transition: padding .25s ease, box-shadow .25s ease;
}

.ew-header.is-scrolled {
	padding-top: 10px;
	padding-bottom: 10px;
	box-shadow: 0 2px 14px rgba(20, 22, 31, .08);
}

.ew-header.is-scrolled .ew-header__brand-name {
	font-size: 19px;
}

.ew-header.is-scrolled .ew-header__cta {
	padding: 9px 20px;
}

.ew-header__brand-name,
.ew-header__cta {
	transition: font-size .25s ease, padding .25s ease;
}

/* 固定ヘッダー分の被り防止。JSがヘッダー実測高さに合わせて正確な値へ上書きする */
.ew-page {
	padding-top: 92px;
}

.ew-header__brand {
	display: flex;
	align-items: baseline;
	gap: 16px;
}

.ew-header__brand-name {
	font-family: var(--ew-font-serif);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--ew-color-ink);
}

.ew-header__region {
	color: var(--ew-color-navy);
}

.ew-header__nav {
	display: flex;
	align-items: center;
	gap: 28px;
	font-size: 13px;
	letter-spacing: .12em;
	font-family: var(--ew-font-serif);
}

.ew-header__nav-link {
	color: var(--ew-color-ink);
	border-bottom: 1px solid transparent;
	padding-bottom: 4px;
}

.ew-header__nav-link.is-active {
	color: var(--ew-color-vermilion);
	border-bottom-color: var(--ew-color-vermilion);
}

.ew-header__sp-actions {
	display: none;
	align-items: center;
	gap: 8px;
}

.ew-header__sp-cta {
	display: none;
}

.ew-header__burger {
	display: none;
	width: 40px;
	height: 40px;
	background: var(--ew-color-ink);
	border: 0;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	cursor: pointer;
}

.ew-header__burger-line {
	display: block;
	width: 16px;
	height: 1px;
	background: #fff;
}

/* --- SPメニュー（全画面オーバーレイ） --- */
.ew-sp-menu {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: var(--ew-color-ink);
	color: #fff;
	overflow-y: auto;
	font-family: var(--ew-font-sans);
}

.ew-sp-menu__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 18px;
	border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.ew-sp-menu__brand {
	font-family: var(--ew-font-serif);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .1em;
}

.ew-sp-menu__close {
	width: 40px;
	height: 40px;
	background: var(--ew-color-vermilion);
	border: 0;
	color: #fff;
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.ew-sp-menu__link {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 22px 18px;
	border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.ew-sp-menu__ja {
	display: block;
	font-family: var(--ew-font-serif);
	font-size: 20px;
	letter-spacing: .1em;
	margin-bottom: 6px;
}

.ew-sp-menu__en {
	font-size: 9px;
	letter-spacing: .24em;
	color: rgba(255, 255, 255, .45);
}

.ew-sp-menu__arrow {
	color: var(--ew-color-vermilion);
	font-size: 13px;
}

.ew-sp-menu__foot {
	padding: 30px 18px;
}

.ew-sp-menu__cta {
	display: block;
	text-align: center;
	padding: 17px;
	margin-bottom: 14px;
}

.ew-sp-menu__email {
	text-align: center;
	font-size: 11px;
	color: rgba(255, 255, 255, .6);
	word-break: break-all;
}

/* --- ページ見出し帯 --- */
.ew-page-head {
	display: grid;
	grid-template-columns: 1fr 300px;
	border-bottom: 1px solid var(--ew-color-ink);
	background: var(--ew-color-bg);
	font-family: var(--ew-font-sans);
}

.ew-page-head__main {
	padding: 64px var(--ew-pad-pc) 56px;
}

.ew-page-head__en {
	margin-bottom: 22px;
}

.ew-page-head__title {
	margin-bottom: 22px;
}

.ew-page-head__lead {
	margin: 0;
	font-size: 13px;
	line-height: 2.3;
	color: var(--ew-color-body);
	max-width: 600px;
}

.ew-page-head__breadcrumb {
	margin-top: 34px;
}

.ew-page-head__side {
	border-left: 1px solid var(--ew-color-ink);
	background: var(--ew-color-navy);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 34px 0;
}

.ew-page-head__vertical {
	font-family: var(--ew-font-serif);
	font-size: 15px;
	letter-spacing: .3em;
	color: rgba(255, 255, 255, .85);
}

/* --- Footer --- */
.ew-footer {
	font-family: var(--ew-font-sans);
}

.ew-footer__top {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-top: 1px solid var(--ew-color-ink);
	background: var(--ew-color-bg);
}

.ew-footer__contact {
	padding: 76px var(--ew-pad-pc);
	border-right: 1px solid var(--ew-color-ink);
}

.ew-footer__contact-title {
	font-size: 30px;
	letter-spacing: .1em;
	line-height: 1.7;
	margin-bottom: 20px;
	color: var(--ew-color-ink);
}

.ew-footer__contact-lead {
	margin: 0 0 30px;
	font-size: 13px;
	line-height: 2.3;
	color: var(--ew-color-body);
}

.ew-footer__contact-actions {
	display: flex;
	gap: 14px;
	align-items: center;
}

.ew-footer__email {
	font-size: 13px;
	letter-spacing: .04em;
	color: var(--ew-color-ink);
	border-bottom: 1px solid var(--ew-color-ink);
	padding-bottom: 5px;
}

.ew-footer__company {
	padding: 76px var(--ew-pad-pc);
	font-size: 13px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

.ew-footer__company-sp {
	display: none;
}

.ew-footer__bottom {
	background: var(--ew-color-ink);
	color: rgba(255, 255, 255, .55);
	padding: 24px var(--ew-pad-pc);
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 12px;
}

.ew-footer__sitemap {
	display: flex;
	gap: 24px;
}

.ew-footer__copyright {
	letter-spacing: .14em;
}

/* --------------------------------------------------------------------------
   5. TOPページ専用セクション
   -------------------------------------------------------------------------- */

/* --- ヒーロー --- */
.ew-hero {
	display: grid;
	grid-template-columns: 1fr 300px;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-hero__media {
	position: relative;
	height: 600px;
	background: var(--ew-color-ink);
	overflow: hidden;
}

.ew-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .75;
	background: var(--ew-color-ink) center/cover no-repeat;
}

.ew-hero__gradient {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(20, 22, 31, .85), rgba(20, 22, 31, .15));
}

.ew-hero__caption {
	position: relative;
	display: block;
	color: rgba(255, 255, 255, .7);
	padding: 28px 32px;
}

.ew-hero__play {
	position: absolute;
	left: 44px;
	bottom: 44px;
	display: flex;
	align-items: center;
	gap: 14px;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: rgba(255, 255, 255, .7);
	font-family: inherit;
}

.ew-hero__play-icon {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--ew-color-vermilion);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}

.ew-hero__side {
	border-left: 1px solid var(--ew-color-ink);
	background: var(--ew-color-bg);
	color: var(--ew-color-ink);
	padding: 52px 34px;
	display: flex;
	justify-content: space-between;
	height: 600px;
	box-sizing: border-box;
	overflow: hidden;
}

.ew-hero__catch,
.ew-hero__lead,
.ew-hero__since {
	max-height: 100%;
}

.ew-hero__lead {
	font-size: 12px;
	line-height: 2.2;
	letter-spacing: .14em;
	color: #4a4c57;
}

.ew-hero__since {
	color: var(--ew-color-vermilion);
}

.ew-hero__media-sp-img {
	display: none;
}

/* SP専用ヒーロー（PC版とは構図が別物のため独立マークアップ。960行台のレスポンシブで表示切替） */
.ew-hero-sp {
	display: none;
}

/* --- TOPICS帯 --- */
.ew-topics {
	display: flex;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-topics__label {
	width: 150px;
	flex: 0 0 150px;
	border-right: 1px solid var(--ew-color-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ew-color-navy);
	color: #fff;
}

.ew-topics__item {
	flex: 1;
	padding: 20px 26px;
	border-right: 1px solid var(--ew-color-rule);
	font-size: 12px;
	line-height: 1.9;
}

.ew-topics__date {
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .14em;
	color: var(--ew-color-vermilion);
	margin-bottom: 8px;
}

/* --- 私たちについて --- */
.ew-about-teaser {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.ew-about-teaser__text {
	padding: 88px 56px 88px var(--ew-pad-pc);
	border-right: 1px solid var(--ew-color-ink);
}

.ew-about-teaser__heading {
	margin: 26px 0;
}

.ew-about-teaser__body {
	margin: 0 0 18px;
	font-size: 13px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

.ew-about-teaser__body:last-of-type {
	margin-bottom: 32px;
}

.ew-about-teaser__media {
	padding: var(--ew-pad-pc);
}

.ew-about-teaser__main-img {
	width: 100%;
	height: 300px;
	object-fit: cover;
}

.ew-about-teaser__sub-imgs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-top: 16px;
}

.ew-about-teaser__sub-imgs img {
	width: 100%;
	height: 150px;
	object-fit: cover;
}

/* SPのみ：テキスト内に挿入する1枚画像（PC版はサブ画像込みの右カラムを使う） */
.ew-about-teaser__inline-img {
	display: none;
}

.ew-about-teaser__body--pc-only {
	/* SPでは2段落目を省略（デザイン仕様どおり） */
}

/* --- 事業内容 --- */
.ew-services {
	background: var(--ew-color-navy);
	color: #fff;
	padding: 80px var(--ew-pad-pc);
}

.ew-services__head {
	margin-bottom: 40px;
}

.ew-service-card {
	padding: 36px 28px 40px;
}

.ew-service-card__no {
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .2em;
	color: var(--ew-color-vermilion-soft);
	margin-bottom: 22px;
}

.ew-service-card__title {
	font-family: var(--ew-font-serif);
	font-size: 21px;
	letter-spacing: .08em;
	line-height: 1.6;
	margin-bottom: 18px;
}

.ew-service-card__body {
	font-size: 12px;
	line-height: 2.1;
	color: rgba(255, 255, 255, .72);
}

/* --- 実績 --- */
.ew-works-list {
	padding: 88px var(--ew-pad-pc);
}

.ew-works-list__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 34px;
}

.ew-works-list__more {
	font-size: 12px;
	letter-spacing: .12em;
	border-bottom: 1px solid var(--ew-color-ink);
	padding-bottom: 6px;
}

.ew-works-list__rows {
	border-top: 1px solid var(--ew-color-ink);
}

.ew-works-list__row {
	display: grid;
	grid-template-columns: 150px 130px 1fr 120px;
	gap: 28px;
	align-items: center;
	padding: 22px 0;
	border-bottom: 1px solid var(--ew-color-rule);
}

.ew-works-list__thumb {
	width: 100%;
	height: 74px;
	background-color: var(--ew-color-placeholder);
	background-size: cover;
	background-position: center;
}

.ew-works-list__cat {
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .14em;
	color: var(--ew-color-vermilion);
}

.ew-works-list__date {
	display: none;
}

.ew-works-list__title {
	font-family: var(--ew-font-serif);
	font-size: 18px;
	letter-spacing: .06em;
}

.ew-works-list__link {
	text-align: right;
	font-size: 12px;
	color: #6a6c74;
}

.ew-works-list__more-sp {
	display: none;
}

/* --------------------------------------------------------------------------
   6. 再利用カード・行リスト（card-work / row-news）
   -------------------------------------------------------------------------- */

.ew-work-card__img {
	width: 100%;
	height: 210px;
	background-color: var(--ew-color-placeholder);
	background-size: cover;
	background-position: center;
}

.ew-work-card--related .ew-work-card__img {
	height: 180px;
}

.ew-work-card__meta {
	display: flex;
	gap: 14px;
	margin: 16px 0 10px;
	font-family: var(--ew-font-en);
	font-size: 10px;
	letter-spacing: .16em;
}

.ew-work-card--related .ew-work-card__meta {
	margin: 14px 0 8px;
}

.ew-work-card__cat {
	color: var(--ew-color-vermilion);
}

.ew-work-card__date {
	color: var(--ew-color-label);
}

.ew-work-card__title {
	font-family: var(--ew-font-serif);
	font-size: 18px;
	line-height: 1.8;
	letter-spacing: .06em;
}

.ew-work-card--related .ew-work-card__title {
	font-size: 17px;
}

.ew-work-card__client {
	font-size: 12px;
	line-height: 2;
	color: var(--ew-color-sub);
	margin-top: 10px;
}

.ew-news-row {
	display: grid;
	grid-template-columns: 130px 120px 1fr 110px;
	gap: 24px;
	align-items: center;
	padding: 24px 0;
	border-bottom: 1px solid var(--ew-color-rule);
}

.ew-news-row__date {
	font-family: var(--ew-font-en);
	font-size: 12px;
	letter-spacing: .12em;
	color: var(--ew-color-label);
}

.ew-news-row__cat {
	border: 1px solid var(--ew-color-border);
	text-align: center;
	padding: 5px 0;
	font-size: 11px;
	letter-spacing: .1em;
	color: var(--ew-color-sub);
}

.ew-news-row__title {
	font-family: var(--ew-font-serif);
	font-size: 17px;
	line-height: 1.8;
	letter-spacing: .05em;
}

.ew-news-row__link {
	text-align: right;
	font-size: 12px;
	color: var(--ew-color-label);
}

.ew-news-row--sidebar {
	display: block;
	padding: 16px 0;
	border-bottom: 1px solid var(--ew-color-rule);
}

.ew-news-row--sidebar .ew-news-row__date {
	margin-bottom: 8px;
}

.ew-news-row--sidebar .ew-news-row__title {
	font-family: var(--ew-font-sans);
	font-size: 12px;
	line-height: 1.9;
	color: var(--ew-color-body-article);
	letter-spacing: normal;
}

/* WordPress標準 paginate_links() の出力クラス（page-numbers/current/next/prev）をそのまま対象にする */
.ew-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.ew-pagination .page-numbers {
	min-width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--ew-font-en);
	font-size: 13px;
	border: 1px solid var(--ew-color-border);
	padding: 0 8px;
}

.ew-pagination .page-numbers.current {
	background: var(--ew-color-ink);
	color: #fff;
	border-color: var(--ew-color-ink);
}

.ew-pagination .page-numbers.dots {
	border: 0;
}

.ew-pagination .page-numbers.next,
.ew-pagination .page-numbers.prev {
	width: auto;
	padding: 0 20px;
	font-family: var(--ew-font-sans);
	font-size: 12px;
	letter-spacing: .1em;
}

/* --------------------------------------------------------------------------
   7. 下層ページ専用セクション
   -------------------------------------------------------------------------- */

/* === 自治体のご担当者さまへ（/government/） === */

.ew-gov-hero {
	display: grid;
	grid-template-columns: 1fr 300px;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-gov-hero__media {
	position: relative;
	height: 520px;
	background: var(--ew-color-ink);
	overflow: hidden;
}

.ew-gov-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .7;
}

.ew-gov-hero__gradient {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(20, 22, 31, .9), rgba(20, 22, 31, .1));
}

.ew-gov-hero__overlay {
	position: absolute;
	left: 44px;
	right: 44px;
	bottom: 48px;
	color: #fff;
}

.ew-gov-hero__eyebrow {
	color: rgba(255, 255, 255, .7);
	margin-bottom: 22px;
}

.ew-gov-hero__title {
	margin: 0;
	font-size: 40px;
	line-height: 1.65;
	letter-spacing: .1em;
}

.ew-gov-hero__panel {
	border-left: 1px solid var(--ew-color-ink);
	background: var(--ew-color-navy);
	color: #fff;
	padding: 44px 32px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.ew-gov-hero__panel-text {
	font-size: 13px;
	line-height: 2.3;
	color: rgba(255, 255, 255, .88);
}

.ew-gov-hero__cta {
	display: block;
	text-align: center;
	padding: 18px;
	font-size: 13px;
	letter-spacing: .12em;
}

.ew-gov-issue,
.ew-gov-support,
.ew-gov-flow,
.ew-gov-faq {
	padding: 80px var(--ew-pad-pc);
}

.ew-gov-issue,
.ew-gov-flow {
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-gov-issue__head,
.ew-gov-support__head,
.ew-gov-flow__head,
.ew-gov-faq__head {
	margin-bottom: 34px;
}

.ew-gov-issue__card {
	padding: 32px 28px 36px;
}

.ew-gov-issue__no {
	font-family: var(--ew-font-en);
	font-size: 12px;
	letter-spacing: .16em;
	color: var(--ew-color-vermilion);
	margin-bottom: 16px;
}

.ew-gov-issue__text {
	font-family: var(--ew-font-serif);
	font-size: 18px;
	line-height: 1.8;
	letter-spacing: .06em;
}

.ew-gov-support {
	background: var(--ew-color-navy);
	color: #fff;
}

.ew-gov-support__card {
	padding: 36px 34px 40px;
}

.ew-gov-support__no {
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .2em;
	color: var(--ew-color-vermilion-soft);
	margin-bottom: 18px;
}

.ew-gov-support__title {
	font-family: var(--ew-font-serif);
	font-size: 22px;
	letter-spacing: .08em;
	margin-bottom: 16px;
}

.ew-gov-support__desc {
	font-size: 13px;
	line-height: 2.2;
	color: rgba(255, 255, 255, .75);
}

.ew-gov-flow__rows {
	border-top: 1px solid var(--ew-color-ink);
}

.ew-gov-flow__row {
	display: grid;
	grid-template-columns: 80px 260px 1fr;
	gap: 32px;
	align-items: center;
	padding: 26px 0;
	border-bottom: 1px solid var(--ew-color-rule);
}

.ew-gov-flow__no {
	font-family: var(--ew-font-en);
	font-size: 22px;
	color: var(--ew-color-vermilion);
}

.ew-gov-flow__title {
	font-family: var(--ew-font-serif);
	font-size: 20px;
	letter-spacing: .08em;
}

.ew-gov-flow__desc {
	font-size: 13px;
	line-height: 2.1;
	color: var(--ew-color-body);
}

.ew-gov-case {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-gov-case__img {
	display: block;
	width: 100%;
	height: 420px;
	object-fit: cover;
}

.ew-gov-case__text {
	padding: 64px var(--ew-pad-pc);
	border-left: 1px solid var(--ew-color-ink);
}

.ew-gov-case__eyebrow {
	color: var(--ew-color-navy);
	margin-bottom: 22px;
}

.ew-gov-case__title {
	margin: 0 0 24px;
	font-family: var(--ew-font-serif);
	font-size: 28px;
	line-height: 1.8;
	font-weight: 600;
	letter-spacing: .08em;
}

.ew-gov-case__body {
	margin: 0 0 26px;
	font-size: 13px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

.ew-gov-faq__rows {
	border-top: 1px solid var(--ew-color-ink);
}

.ew-gov-faq__item {
	padding: 26px 0;
	border-bottom: 1px solid var(--ew-color-rule);
}

.ew-gov-faq__row {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 20px;
}

.ew-gov-faq__row + .ew-gov-faq__row {
	margin-top: 14px;
}

.ew-gov-faq__q-mark {
	font-family: var(--ew-font-en);
	font-size: 16px;
	color: var(--ew-color-vermilion);
}

.ew-gov-faq__q-text {
	font-family: var(--ew-font-serif);
	font-size: 18px;
	letter-spacing: .06em;
}

.ew-gov-faq__a-mark {
	font-family: var(--ew-font-en);
	font-size: 16px;
	color: var(--ew-color-navy);
}

.ew-gov-faq__a-text {
	font-size: 13px;
	line-height: 2.2;
	color: var(--ew-color-body);
}

/* === 会社案内（/about/） === */

.ew-about-message {
	display: grid;
	grid-template-columns: 480px 1fr;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-about-message__portrait {
	border-right: 1px solid var(--ew-color-ink);
}

.ew-about-message__portrait img {
	display: block;
	width: 100%;
	height: 540px;
	object-fit: cover;
	object-position: center 18%;
}

.ew-about-message__portrait-mobile {
	display: none;
}

.ew-about-message__content {
	padding: 64px var(--ew-pad-pc);
}

.ew-about-message__eyebrow {
	margin-bottom: 24px;
}

.ew-about-message__title {
	margin: 0 0 30px;
	font-size: 32px;
}

.ew-about-message__body {
	margin: 0 0 20px;
	font-size: 13px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

.ew-about-message__sign {
	margin-top: 30px;
	font-family: var(--ew-font-serif);
	font-size: 15px;
	letter-spacing: .1em;
}

.ew-about-profile,
.ew-about-history {
	padding: 80px var(--ew-pad-pc);
}

.ew-about-profile {
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-about-profile__head,
.ew-about-history__head {
	margin-bottom: 34px;
}

.ew-about-profile__rows {
	border-top: 1px solid var(--ew-color-ink);
}

.ew-about-profile__row {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 32px;
	padding: 20px 0;
	border-bottom: 1px solid var(--ew-color-rule);
	font-size: 13px;
	line-height: 2.1;
}

.ew-about-profile__key {
	color: var(--ew-color-label);
	letter-spacing: .1em;
}

.ew-about-history {
	background: var(--ew-color-navy);
	color: #fff;
}

.ew-about-history__head {
	margin-bottom: 40px;
}

.ew-about-history__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0 56px;
}

.ew-about-history__row {
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 24px;
	padding: 18px 0;
	border-top: 1px solid rgba(255, 255, 255, .25);
	font-size: 13px;
	line-height: 2;
}

.ew-about-history__year {
	font-family: var(--ew-font-en);
	letter-spacing: .12em;
	color: var(--ew-color-vermilion-soft);
}

.ew-about-history__text {
	color: rgba(255, 255, 255, .88);
}

.ew-about-access {
	display: grid;
	grid-template-columns: 1fr 560px;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-about-access__text {
	padding: 76px var(--ew-pad-pc);
	border-right: 1px solid var(--ew-color-ink);
}

.ew-about-access__head {
	margin-bottom: 28px;
}

.ew-about-access__body {
	font-size: 13px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

.ew-about-access__map {
	height: 320px;
}

.ew-about-access__map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* === 事業内容（/service/） === */

.ew-service-index {
	display: flex;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-service-index__label {
	width: 150px;
	flex: 0 0 150px;
	border-right: 1px solid var(--ew-color-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--ew-color-navy);
	color: #fff;
}

.ew-service-index__item {
	flex: 1;
	padding: 20px 26px;
	border-right: 1px solid var(--ew-color-rule);
}

.ew-service-index__no {
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .16em;
	color: var(--ew-color-vermilion);
	margin-bottom: 8px;
}

.ew-service-index__title {
	font-family: var(--ew-font-serif);
	font-size: 16px;
	letter-spacing: .08em;
}

.ew-service-block {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--ew-color-ink);
	background: var(--ew-color-bg);
}

.ew-service-block--alt {
	background: var(--ew-color-bg-alt);
}

.ew-service-block__content {
	padding: 72px 48px 72px var(--ew-pad-pc);
	border-right: 1px solid var(--ew-color-ink);
}

.ew-service-block__head {
	display: flex;
	align-items: baseline;
	gap: 16px;
	margin-bottom: 26px;
}

.ew-service-block__no {
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .3em;
	color: var(--ew-color-navy);
}

.ew-service-block__en {
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .24em;
	color: var(--ew-color-label);
}

.ew-service-block__title {
	margin: 0 0 26px;
	font-family: var(--ew-font-serif);
	font-size: 34px;
	line-height: 1.7;
	font-weight: 600;
	letter-spacing: .1em;
}

.ew-service-block__desc {
	margin: 0 0 26px;
	font-size: 13px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

.ew-service-block__menu {
	border-top: 1px solid var(--ew-color-rule);
	padding-top: 22px;
}

.ew-service-block__menu-label {
	font-size: 11px;
	letter-spacing: .18em;
	color: var(--ew-color-label);
	margin-bottom: 14px;
}

.ew-service-block__menu-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.ew-service-block__media {
	padding: var(--ew-pad-pc);
}

.ew-service-block__img {
	width: 100%;
	height: 380px;
	background-color: var(--ew-color-placeholder);
	background-size: cover;
	background-position: center;
}

.ew-service-flow {
	padding: 80px var(--ew-pad-pc);
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-service-flow__head {
	margin-bottom: 34px;
}

.ew-service-flow__card {
	padding: 30px 24px 34px;
}

.ew-service-flow__no {
	font-family: var(--ew-font-en);
	font-size: 24px;
	color: var(--ew-color-vermilion);
	margin-bottom: 16px;
}

.ew-service-flow__title {
	font-family: var(--ew-font-serif);
	font-size: 17px;
	letter-spacing: .08em;
	margin-bottom: 12px;
}

.ew-service-flow__desc {
	font-size: 12px;
	line-height: 2;
	color: var(--ew-color-sub);
}

.ew-service-flow__rows {
	display: none;
}

/* === 採用情報（/recruit/） === */

.ew-recruit-hero {
	position: relative;
	height: 500px;
	background: var(--ew-color-ink);
	overflow: hidden;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-recruit-hero img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .65;
}

.ew-recruit-hero__gradient {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(20, 22, 31, .92), rgba(20, 22, 31, .15));
}

.ew-recruit-hero__content {
	position: absolute;
	left: 44px;
	bottom: 52px;
	color: #fff;
}

.ew-recruit-hero__eyebrow {
	color: rgba(255, 255, 255, .7);
	margin-bottom: 22px;
}

.ew-recruit-hero__title {
	margin: 0 0 20px;
	font-size: 44px;
	line-height: 1.6;
	letter-spacing: .12em;
}

.ew-recruit-hero__lead {
	margin: 0;
	font-size: 13px;
	line-height: 2.2;
	color: rgba(255, 255, 255, .78);
	max-width: 520px;
}

.ew-recruit-points {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-recruit-points__item {
	padding: 44px 36px 48px;
	border-right: 1px solid var(--ew-color-rule);
}

.ew-recruit-points__no {
	color: var(--ew-color-navy);
	margin-bottom: 16px;
}

.ew-recruit-points__title {
	font-family: var(--ew-font-serif);
	font-size: 21px;
	line-height: 1.7;
	letter-spacing: .08em;
	margin-bottom: 16px;
}

.ew-recruit-points__desc {
	font-size: 13px;
	line-height: 2.2;
	color: var(--ew-color-body);
}

.ew-recruit-positions {
	padding: 80px var(--ew-pad-pc);
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-recruit-positions__head {
	margin-bottom: 34px;
}

.ew-recruit-positions__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.ew-recruit-position {
	border: 1px solid var(--ew-color-ink);
	padding: 36px 34px 40px;
}

.ew-recruit-position__tags {
	display: flex;
	gap: 10px;
	margin-bottom: 20px;
}

.ew-recruit-position__tag-type {
	background: var(--ew-color-navy);
	color: #fff;
	padding: 6px 14px;
	font-size: 11px;
	letter-spacing: .1em;
}

.ew-recruit-position__tag-place {
	border: 1px solid var(--ew-color-border);
	padding: 6px 14px;
	font-size: 11px;
	letter-spacing: .1em;
	color: var(--ew-color-sub);
}

.ew-recruit-position__title {
	font-family: var(--ew-font-serif);
	font-size: 26px;
	letter-spacing: .08em;
	margin-bottom: 20px;
}

.ew-recruit-position__desc {
	font-size: 13px;
	line-height: 2.2;
	color: var(--ew-color-body);
	margin-bottom: 24px;
}

.ew-recruit-position__req {
	border-top: 1px solid var(--ew-color-rule);
	padding-top: 18px;
	font-size: 12px;
	line-height: 2.1;
	color: var(--ew-color-sub);
}

.ew-recruit-position__apply {
	display: inline-block;
	margin-top: 24px;
	background: var(--ew-color-vermilion);
	color: #fff;
	padding: 14px 30px;
	font-size: 12px;
	letter-spacing: .12em;
}

.ew-recruit-flow {
	background: var(--ew-color-navy);
	color: #fff;
	padding: 80px var(--ew-pad-pc);
}

.ew-recruit-flow__head {
	margin-bottom: 40px;
}

.ew-recruit-flow__card {
	padding: 32px 28px 36px;
}

.ew-recruit-flow__no {
	font-family: var(--ew-font-en);
	font-size: 24px;
	color: var(--ew-color-vermilion-soft);
	margin-bottom: 14px;
}

.ew-recruit-flow__title {
	font-family: var(--ew-font-serif);
	font-size: 19px;
	letter-spacing: .08em;
	margin-bottom: 12px;
}

.ew-recruit-flow__desc {
	font-size: 12px;
	line-height: 2;
	color: rgba(255, 255, 255, .72);
}

/* === プライバシーポリシー（/privacy/） === */

.ew-privacy {
	max-width: 940px;
	padding: 72px var(--ew-pad-pc) 88px;
}

.ew-privacy__item {
	margin-bottom: 44px;
}

.ew-privacy__title {
	margin: 0 0 18px;
	font-family: var(--ew-font-serif);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: .08em;
}

.ew-privacy__body {
	margin: 0;
	font-size: 13px;
	line-height: 2.5;
	color: var(--ew-color-body-article);
}

.ew-privacy__footer {
	border-top: 1px solid var(--ew-color-rule);
	padding-top: 26px;
	font-size: 12px;
	line-height: 2.1;
	color: var(--ew-color-sub);
}

/* === 実績一覧（/works/） === */

.ew-works-cats {
	display: flex;
	align-items: stretch;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-works-cats__label {
	padding: 18px 30px;
	background: var(--ew-color-ink);
	color: #fff;
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .2em;
	display: flex;
	align-items: center;
}

.ew-works-cats__item {
	padding: 18px 26px;
	border-right: 1px solid var(--ew-color-rule);
	font-size: 12px;
	letter-spacing: .08em;
	display: flex;
	align-items: center;
	color: var(--ew-color-ink);
}

.ew-works-cats__item--active {
	background: var(--ew-color-vermilion);
	color: #fff;
}

.ew-works-archive-grid {
	padding: 56px var(--ew-pad-pc) 30px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

.ew-works-archive-pagination {
	padding: 24px var(--ew-pad-pc) 76px;
}

/* === 実績詳細（/works/{slug}/） === */

.ew-work-detail__head {
	padding: 52px var(--ew-pad-pc) 40px;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-work-detail__breadcrumb {
	margin-bottom: 26px;
}

.ew-work-detail__meta {
	display: flex;
	gap: 16px;
	margin-bottom: 22px;
	font-family: var(--ew-font-en);
	font-size: 11px;
	letter-spacing: .18em;
}

.ew-work-detail__cat {
	background: var(--ew-color-vermilion);
	color: #fff;
	padding: 6px 14px;
}

.ew-work-detail__date {
	color: var(--ew-color-label);
	align-self: center;
}

.ew-work-detail__title {
	margin: 0;
	font-size: 40px;
	line-height: 1.6;
	letter-spacing: .1em;
}

.ew-work-detail__hero {
	position: relative;
	height: 560px;
	background: var(--ew-color-ink);
	overflow: hidden;
	border-bottom: 1px solid var(--ew-color-ink);
}

.ew-work-detail__hero img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .85;
}

.ew-work-detail__play {
	position: absolute;
	left: 44px;
	bottom: 44px;
	display: flex;
	align-items: center;
	gap: 14px;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: rgba(255, 255, 255, .85);
}

.ew-work-detail__play-icon {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--ew-color-vermilion);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}

.ew-work-detail__layout {
	display: grid;
	grid-template-columns: 1fr 380px;
}

.ew-work-detail__main {
	padding: 72px 48px 72px var(--ew-pad-pc);
	border-right: 1px solid var(--ew-color-ink);
}

.ew-work-detail__eyebrow {
	margin-bottom: 22px;
}

.ew-work-detail__overview-title {
	margin: 0 0 26px;
	font-family: var(--ew-font-serif);
	font-size: 26px;
	line-height: 1.8;
	font-weight: 600;
	letter-spacing: .08em;
}

.ew-work-detail__body {
	margin: 0 0 22px;
	font-size: 13px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

.ew-work-detail__gallery {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 36px 0;
}

.ew-work-detail__gallery img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.ew-work-detail__quote {
	padding: 8px 0 8px 22px;
	font-family: var(--ew-font-serif);
	font-size: 17px;
	line-height: 2.1;
	letter-spacing: .06em;
}

.ew-work-detail__quote-by {
	display: block;
	font-family: var(--ew-font-sans);
	font-size: 12px;
	color: var(--ew-color-label);
	margin-top: 12px;
}

.ew-work-detail__side {
	padding: 72px var(--ew-pad-pc);
}

.ew-work-detail__credit-rows {
	border-top: 1px solid var(--ew-color-ink);
}

.ew-work-detail__credit-row {
	padding: 16px 0;
	border-bottom: 1px solid var(--ew-color-rule);
	font-size: 12px;
	line-height: 1.9;
}

.ew-work-detail__credit-key {
	color: var(--ew-color-label);
	letter-spacing: .1em;
	margin-bottom: 6px;
}

.ew-work-detail__related {
	border-top: 1px solid var(--ew-color-ink);
	padding: 72px var(--ew-pad-pc);
}

.ew-work-detail__related-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 30px;
}

.ew-work-detail__related-title {
	font-family: var(--ew-font-serif);
	font-size: 24px;
	font-weight: 600;
	letter-spacing: .1em;
}

.ew-work-detail__related-more {
	font-size: 12px;
	letter-spacing: .1em;
	border-bottom: 1px solid var(--ew-color-ink);
	padding-bottom: 5px;
}

.ew-work-detail__related-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

/* === お知らせ一覧（/news/） === */

.ew-news-archive {
	display: grid;
	grid-template-columns: 1fr 280px;
}

.ew-news-archive__main {
	padding: 56px var(--ew-pad-pc) 76px;
	border-right: 1px solid var(--ew-color-ink);
}

.ew-news-archive__rows {
	border-top: 1px solid var(--ew-color-ink);
}

.ew-news-archive__pagination {
	margin-top: 44px;
}

.ew-news-sidebar {
	padding: 56px 30px;
}

.ew-news-sidebar__label {
	margin-bottom: 18px;
}

.ew-news-sidebar__label--spaced {
	margin: 40px 0 18px;
}

.ew-news-sidebar__list {
	font-size: 13px;
	line-height: 2.9;
	color: var(--ew-color-body);
	border-top: 1px solid var(--ew-color-rule);
}

.ew-news-sidebar__list a:hover {
	opacity: .6;
}

/* === お知らせ詳細（/news/{slug}/） === */

.ew-news-detail {
	display: grid;
	grid-template-columns: 1fr 280px;
}

.ew-news-detail__col {
	border-right: 1px solid var(--ew-color-ink);
}

.ew-news-detail__head {
	padding: 52px 48px 40px var(--ew-pad-pc);
	border-bottom: 1px solid var(--ew-color-rule);
}

.ew-news-detail__breadcrumb {
	margin-bottom: 26px;
}

.ew-news-detail__meta {
	display: flex;
	gap: 16px;
	align-items: center;
	margin-bottom: 22px;
}

.ew-news-detail__cat {
	background: var(--ew-color-navy);
	color: #fff;
	padding: 6px 16px;
	font-size: 11px;
	letter-spacing: .12em;
}

.ew-news-detail__date {
	font-family: var(--ew-font-en);
	font-size: 12px;
	letter-spacing: .14em;
	color: var(--ew-color-label);
}

.ew-news-detail__title {
	margin: 0;
	font-size: 34px;
	line-height: 1.7;
	letter-spacing: .1em;
}

.ew-news-detail__body {
	padding: 48px 48px 72px var(--ew-pad-pc);
}

.ew-news-detail__thumb {
	display: block;
	width: 100%;
	height: 400px;
	object-fit: cover;
	margin-bottom: 40px;
}

.ew-news-detail__body p {
	margin: 0 0 26px;
	font-size: 14px;
	line-height: 2.5;
	color: var(--ew-color-body-article);
}

.ew-news-detail__body h2 {
	margin: 44px 0 20px;
}

.ew-news-detail__related-box {
	background: var(--ew-color-bg-alt);
	border: 1px solid var(--ew-color-rule);
	padding: 30px 32px;
	margin: 40px 0 0;
}

.ew-news-detail__related-label {
	margin-bottom: 14px;
}

.ew-news-detail__related-text {
	font-size: 13px;
	line-height: 2.2;
	color: var(--ew-color-body);
}

.ew-news-detail__nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 56px;
	padding-top: 26px;
	border-top: 1px solid var(--ew-color-rule);
	font-size: 12px;
	letter-spacing: .08em;
	color: var(--ew-color-sub);
}

.ew-news-detail__nav-archive {
	border: 1px solid var(--ew-color-ink);
	padding: 12px 26px;
	color: var(--ew-color-ink);
}

.ew-news-detail__nav-mobile {
	display: none;
}

/* --------------------------------------------------------------------------
   8. フォーム（お問い合わせ）
   -------------------------------------------------------------------------- */

.ew-contact-layout {
	display: grid;
	grid-template-columns: 1fr 340px;
}

.ew-contact-form {
	padding: 64px 48px 76px var(--ew-pad-pc);
	border-right: 1px solid var(--ew-color-ink);
}

.ew-contact-steps {
	display: flex;
	gap: 10px;
	margin-bottom: 44px;
}

.ew-contact-steps__step {
	border: 1px solid var(--ew-color-border);
	padding: 12px 24px;
	font-size: 12px;
	letter-spacing: .1em;
	color: var(--ew-color-label);
}

.ew-contact-steps__step--active {
	background: var(--ew-color-vermilion);
	border-color: var(--ew-color-vermilion);
	color: #fff;
}

.ew-contact-field {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 28px;
	align-items: start;
	padding: 22px 0;
	border-top: 1px solid var(--ew-color-rule);
}

.ew-contact-field__label {
	font-size: 13px;
	letter-spacing: .08em;
	padding-top: 14px;
}

.ew-contact-field__req {
	color: var(--ew-color-vermilion);
	margin-left: 8px;
	font-size: 11px;
}

.ew-contact-field__input,
.ew-contact-field__select,
.ew-contact-field__textarea {
	display: block;
	width: 100%;
	background: #fff;
	border: 1px solid var(--ew-color-border);
	padding: 15px 16px;
	font-size: 13px;
	font-family: var(--ew-font-sans);
	color: var(--ew-color-ink);
}

.ew-contact-field__textarea {
	min-height: 160px;
	resize: vertical;
}

.ew-contact-field__input::placeholder,
.ew-contact-field__textarea::placeholder {
	color: #a8a49a;
}

.ew-contact-agree {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 26px 0;
	border-top: 1px solid var(--ew-color-rule);
	font-size: 12px;
	color: var(--ew-color-body);
}

.ew-contact-agree__box {
	appearance: none;
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	border: 1px solid var(--ew-color-ink);
	background: #fff;
	margin: 0;
	cursor: pointer;
}

.ew-contact-agree__box:checked {
	background: var(--ew-color-ink);
}

.ew-contact-submit {
	display: block;
	width: 100%;
	margin-top: 20px;
	background: var(--ew-color-vermilion);
	color: #fff;
	text-align: center;
	padding: 22px;
	font-size: 14px;
	letter-spacing: .14em;
	border: 0;
	font-family: var(--ew-font-sans);
	cursor: pointer;
}

.ew-contact-submit:hover {
	background: var(--ew-color-vermilion-hover);
}

.ew-contact-side {
	padding: 64px 34px;
}

.ew-contact-side__label {
	margin-bottom: 20px;
}

.ew-contact-side__label--spaced {
	margin: 44px 0 20px;
}

.ew-contact-side__text {
	font-size: 13px;
	line-height: 2.2;
	color: var(--ew-color-body);
	margin-bottom: 14px;
}

.ew-contact-side__email {
	font-size: 14px;
	letter-spacing: .02em;
	border-bottom: 1px solid var(--ew-color-ink);
	padding-bottom: 8px;
	display: inline-block;
	word-break: break-all;
}

.ew-contact-side__office {
	font-size: 13px;
	line-height: 2.2;
	color: var(--ew-color-body);
}

.ew-contact-side__note {
	font-size: 12px;
	line-height: 2.1;
	color: var(--ew-color-sub);
}

/* --------------------------------------------------------------------------
   9. レスポンシブ（max-width:768px）— utilities分のみ。他セクション追加時にここへ追記する
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
	.ew-container {
		padding-left: var(--ew-pad-sp);
		padding-right: var(--ew-pad-sp);
	}

	.ew-page {
		font-size: 12px;
		line-height: 2.15;
	}

	.ew-vertical {
		writing-mode: horizontal-tb;
	}

	.ew-grid-1px--cols-3,
	.ew-grid-1px--cols-4,
	.ew-grid-1px--cols-5 {
		grid-template-columns: 1fr;
	}

	.ew-heading--hero {
		font-size: 28px;
	}

	.ew-heading--page-title {
		font-size: 30px;
	}

	.ew-heading--section {
		font-size: 20px;
	}

	.ew-heading--lead {
		font-size: 24px;
	}

	/* --- Header --- */
	.ew-page {
		padding-top: 66px;
	}

	.ew-header {
		padding: 14px var(--ew-pad-sp);
	}

	.ew-header.is-scrolled {
		padding-top: 8px;
		padding-bottom: 8px;
	}

	.ew-header.is-scrolled .ew-header__brand-name {
		font-size: 15px;
	}

	.ew-header__brand {
		flex-direction: column;
		align-items: flex-start;
		gap: 3px;
	}

	.ew-header__brand-name {
		font-size: 17px;
	}

	.ew-header__region {
		font-size: 8px;
		letter-spacing: .22em;
	}

	.ew-header__nav {
		display: none;
	}

	.ew-header__sp-actions {
		display: flex;
	}

	.ew-header__sp-cta {
		display: inline-block;
		padding: 9px 12px;
		font-size: 10px;
		letter-spacing: .1em;
	}

	.ew-header__burger {
		display: flex;
	}

	/* --- ページ見出し帯 --- */
	.ew-page-head {
		display: block;
	}

	.ew-page-head__main {
		padding: 34px var(--ew-pad-sp) 30px;
	}

	.ew-page-head__en {
		margin-bottom: 14px;
		font-size: 10px;
		letter-spacing: .28em;
	}

	.ew-page-head__title {
		margin-bottom: 14px;
	}

	.ew-page-head__lead {
		font-size: 12px;
		line-height: 2.1;
		margin-bottom: 18px;
	}

	.ew-page-head__breadcrumb {
		margin-top: 0;
		font-size: 10px;
	}

	.ew-page-head__side {
		display: none;
	}

	/* --- Footer --- */
	.ew-footer__top {
		grid-template-columns: 1fr;
	}

	.ew-footer__contact {
		padding: 44px var(--ew-pad-sp);
		border-right: 0;
	}

	.ew-footer__contact-title {
		font-size: 24px;
		margin-bottom: 14px;
	}

	.ew-footer__contact-lead {
		font-size: 12px;
		line-height: 2.1;
		margin-bottom: 22px;
	}

	.ew-footer__contact-actions {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.ew-footer__contact-actions .ew-btn--primary {
		padding: 17px;
	}

	.ew-footer__email {
		text-align: center;
		border-bottom: 0;
		padding-bottom: 0;
		word-break: break-all;
	}

	.ew-footer__company {
		display: none;
	}

	.ew-footer__company-sp {
		display: block;
		padding: 26px var(--ew-pad-sp);
		font-size: 12px;
		line-height: 2.3;
		color: var(--ew-color-body);
		border-top: 1px solid var(--ew-color-rule);
		background: var(--ew-color-bg);
	}

	.ew-footer__company-sp-label {
		display: block;
		margin-bottom: 8px;
		font-size: 10px;
		letter-spacing: .16em;
		color: var(--ew-color-label);
	}

	.ew-footer__bottom {
		padding: 22px var(--ew-pad-sp);
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
	}

	.ew-footer__sitemap {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px 16px;
		font-size: 11px;
	}

	/* --- TOP：ヒーロー（PC/SPで構図が別物のため個別マークアップを出し分け） --- */
	.ew-hero {
		display: none;
	}

	.ew-hero-sp {
		display: block;
		position: relative;
		height: 440px;
		background: var(--ew-color-ink);
		overflow: hidden;
	}

	.ew-hero-sp__img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		opacity: .72;
	}

	.ew-hero-sp__gradient {
		position: absolute;
		inset: 0;
		background: linear-gradient(to top, rgba(20, 22, 31, .92), rgba(20, 22, 31, .1));
	}

	.ew-hero-sp__content {
		position: absolute;
		left: var(--ew-pad-sp);
		right: var(--ew-pad-sp);
		bottom: 26px;
		color: #fff;
	}

	.ew-hero-sp__since {
		font-family: var(--ew-font-en);
		font-size: 9px;
		letter-spacing: .3em;
		color: rgba(255, 255, 255, .65);
		margin-bottom: 16px;
	}

	.ew-hero-sp__heading {
		margin: 0 0 16px;
		font-family: var(--ew-font-serif);
		font-size: 29px;
		line-height: 1.65;
		font-weight: 600;
		letter-spacing: .1em;
	}

	.ew-hero-sp__lead {
		margin: 0 0 20px;
		font-size: 11px;
		line-height: 2;
		color: rgba(255, 255, 255, .78);
	}

	.ew-hero-sp__play {
		display: flex;
		align-items: center;
		gap: 10px;
		background: none;
		border: 0;
		padding: 0;
		color: rgba(255, 255, 255, .75);
		cursor: pointer;
	}

	.ew-hero-sp__play-icon {
		width: 40px;
		height: 40px;
		border-radius: 50%;
		background: var(--ew-color-vermilion);
		color: #fff;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 11px;
	}

	.ew-hero-sp__play-label {
		font-size: 9px;
		letter-spacing: .22em;
	}

	/* --- TOP：TOPICS帯 --- */
	.ew-topics {
		flex-direction: column;
	}

	.ew-topics__label {
		width: auto;
		flex: none;
		height: auto;
		border-right: 0;
		justify-content: flex-start;
		padding: 9px 18px;
		font-size: 10px;
		letter-spacing: .22em;
	}

	.ew-topics__item {
		border-right: 0;
		border-bottom: 1px solid var(--ew-color-rule);
		padding: 14px 18px;
	}

	.ew-topics__date {
		font-size: 10px;
		margin-bottom: 6px;
	}

	/* --- TOP：私たちについて --- */
	.ew-about-teaser {
		display: block;
		padding: 44px var(--ew-pad-sp);
		border-bottom: 1px solid var(--ew-color-ink);
	}

	.ew-about-teaser__text {
		padding: 0;
		border-right: 0;
	}

	.ew-about-teaser__heading {
		margin: 0 0 18px;
		font-size: 23px;
		line-height: 1.8;
	}

	.ew-about-teaser__inline-img {
		display: block;
		width: 100%;
		height: 190px;
		object-fit: cover;
		margin-bottom: 18px;
	}

	.ew-about-teaser__body {
		font-size: 12px;
		line-height: 2.2;
		margin-bottom: 18px;
	}

	.ew-about-teaser__body--pc-only,
	.ew-about-teaser__media {
		display: none;
	}

	/* --- TOP：事業内容 --- */
	.ew-services {
		padding: 44px var(--ew-pad-sp);
	}

	.ew-service-card {
		padding: 22px 20px 26px;
	}

	.ew-service-card__no {
		font-size: 10px;
		margin-bottom: 12px;
	}

	.ew-service-card__title {
		font-size: 19px;
		margin-bottom: 12px;
	}

	.ew-service-card__body {
		font-size: 11px;
		line-height: 2;
	}

	/* --- TOP：実績 --- */
	.ew-works-list {
		padding: 44px var(--ew-pad-sp);
	}

	.ew-works-list__more-pc {
		display: none;
	}

	.ew-works-list__more-sp {
		display: inline;
	}

	.ew-works-list__rows {
		display: grid;
		gap: 24px;
		border-top: 0;
	}

	.ew-works-list__row {
		display: block;
		padding: 0;
		border-bottom: 0;
	}

	.ew-works-list__row:nth-child(n+4) {
		display: none;
	}

	.ew-works-list__thumb {
		height: 180px;
	}

	.ew-works-list__meta {
		display: flex;
		gap: 12px;
		margin: 12px 0 8px;
		font-family: var(--ew-font-en);
		font-size: 9px;
		letter-spacing: .16em;
	}

	.ew-works-list__date {
		display: inline;
		color: var(--ew-color-label);
	}

	.ew-works-list__title {
		font-size: 16px;
		line-height: 1.8;
		letter-spacing: .05em;
	}

	.ew-works-list__link {
		display: none;
	}

	/* --- 自治体のご担当者さまへ --- */
	.ew-gov-hero {
		display: block;
	}

	.ew-gov-hero__media {
		height: 380px;
	}

	.ew-gov-hero__overlay {
		left: var(--ew-pad-sp);
		right: var(--ew-pad-sp);
		bottom: 24px;
	}

	.ew-gov-hero__eyebrow {
		font-size: 9px;
		letter-spacing: .28em;
		margin-bottom: 14px;
	}

	.ew-gov-hero__title {
		font-size: 27px;
	}

	.ew-gov-hero__panel {
		padding: 30px var(--ew-pad-sp);
	}

	.ew-gov-hero__panel-text {
		font-size: 12px;
		line-height: 2.2;
		margin-bottom: 20px;
	}

	.ew-gov-hero__cta {
		padding: 16px;
		font-size: 12px;
	}

	.ew-gov-issue,
	.ew-gov-support,
	.ew-gov-flow,
	.ew-gov-faq {
		padding: 40px var(--ew-pad-sp);
	}

	.ew-gov-issue__head,
	.ew-gov-support__head,
	.ew-gov-flow__head,
	.ew-gov-faq__head {
		margin-bottom: 18px;
	}

	.ew-gov-issue__card {
		padding: 18px;
	}

	.ew-gov-issue__no {
		font-size: 10px;
		margin-bottom: 8px;
	}

	.ew-gov-issue__text {
		font-size: 15px;
		letter-spacing: .05em;
	}

	.ew-gov-support__card {
		padding: 22px 20px 26px;
	}

	.ew-gov-support__no {
		font-size: 10px;
		margin-bottom: 12px;
	}

	.ew-gov-support__title {
		font-size: 18px;
		margin-bottom: 12px;
	}

	.ew-gov-support__desc {
		font-size: 11px;
		line-height: 2;
	}

	.ew-gov-flow__row {
		grid-template-columns: 44px 1fr;
		gap: 14px;
		padding: 16px 0;
		border-top: 1px solid var(--ew-color-rule);
		border-bottom: 0;
		align-items: start;
	}

	.ew-gov-flow__rows {
		border-top: 0;
	}

	.ew-gov-flow__no {
		font-size: 18px;
	}

	.ew-gov-flow__title {
		font-size: 16px;
		letter-spacing: .06em;
		margin-bottom: 6px;
	}

	.ew-gov-flow__desc {
		font-size: 11px;
		line-height: 1.9;
		color: var(--ew-color-sub);
	}

	.ew-gov-case {
		display: block;
	}

	.ew-gov-case__img {
		height: 200px;
	}

	.ew-gov-case__text {
		padding: 30px var(--ew-pad-sp) 36px;
		border-left: 0;
	}

	.ew-gov-case__eyebrow {
		font-size: 9px;
		letter-spacing: .24em;
		margin-bottom: 14px;
	}

	.ew-gov-case__title {
		font-size: 21px;
		margin-bottom: 14px;
	}

	.ew-gov-case__body {
		font-size: 12px;
		line-height: 2.2;
		margin-bottom: 18px;
	}

	.ew-gov-faq__item {
		padding: 18px 0;
		border-bottom: 0;
		border-top: 1px solid var(--ew-color-rule);
	}

	.ew-gov-faq__rows {
		border-top: 0;
	}

	.ew-gov-faq__row {
		grid-template-columns: 22px 1fr;
		gap: 12px;
	}

	.ew-gov-faq__row + .ew-gov-faq__row {
		margin-top: 10px;
	}

	.ew-gov-faq__q-mark,
	.ew-gov-faq__a-mark {
		font-size: 13px;
	}

	.ew-gov-faq__q-text {
		font-size: 15px;
		line-height: 1.8;
		letter-spacing: .04em;
	}

	.ew-gov-faq__a-text {
		font-size: 12px;
		line-height: 2.1;
	}

	/* --- お問い合わせ --- */
	.ew-contact-layout {
		display: block;
	}

	.ew-contact-form {
		padding: 26px var(--ew-pad-sp) 40px;
		border-right: 0;
	}

	.ew-contact-steps {
		gap: 6px;
		margin-bottom: 30px;
	}

	.ew-contact-steps__step {
		padding: 9px 14px;
		font-size: 11px;
	}

	.ew-contact-field {
		display: block;
		padding: 16px 0;
	}

	.ew-contact-field__label {
		display: block;
		font-size: 12px;
		letter-spacing: .06em;
		padding-top: 0;
		margin-bottom: 10px;
	}

	.ew-contact-field__req {
		font-size: 10px;
	}

	.ew-contact-field__input,
	.ew-contact-field__select,
	.ew-contact-field__textarea {
		padding: 14px;
		font-size: 12px;
	}

	.ew-contact-field__textarea {
		min-height: 120px;
	}

	.ew-contact-agree {
		gap: 10px;
		padding: 20px 0;
		font-size: 11px;
	}

	.ew-contact-submit {
		padding: 18px;
		font-size: 13px;
	}

	.ew-contact-side {
		margin-top: 34px;
		border-top: 1px solid var(--ew-color-rule);
		padding: 24px var(--ew-pad-sp) 40px;
	}

	.ew-contact-side__label {
		font-size: 10px;
		letter-spacing: .22em;
		margin-bottom: 12px;
	}

	.ew-contact-side__label--spaced {
		margin: 30px 0 12px;
	}

	.ew-contact-side__text {
		font-size: 12px;
		line-height: 2.1;
		margin-bottom: 10px;
	}

	.ew-contact-side__email {
		font-size: 13px;
		padding-bottom: 6px;
	}

	/* SPはBY EMAILのみ表示（デザイン仕様どおりOFFICE/NOTEは省略） */
	.ew-contact-side__block--pc-only {
		display: none;
	}

	/* --- 会社案内 --- */
	.ew-about-message {
		display: block;
		border-bottom: 1px solid var(--ew-color-ink);
	}

	.ew-about-message__portrait {
		display: none;
	}

	.ew-about-message__portrait-mobile {
		display: block;
		width: 100%;
		height: 230px;
		object-fit: cover;
		object-position: center 18%;
	}

	.ew-about-message__content {
		padding: 36px var(--ew-pad-sp) 44px;
		border-bottom: 1px solid var(--ew-color-ink);
	}

	.ew-about-message__eyebrow {
		font-size: 10px;
		letter-spacing: .26em;
		margin-bottom: 14px;
	}

	.ew-about-message__title {
		font-size: 23px;
		line-height: 1.8;
		margin-bottom: 18px;
	}

	.ew-about-message__body {
		font-size: 12px;
		line-height: 2.2;
		margin-bottom: 16px;
	}

	.ew-about-message__body--pc-only {
		display: none;
	}

	.ew-about-profile,
	.ew-about-history {
		padding: 40px var(--ew-pad-sp);
	}

	.ew-about-profile__head,
	.ew-about-history__head {
		margin-bottom: 20px;
	}

	.ew-about-profile__row {
		display: block;
		padding: 14px 0;
		font-size: 12px;
		line-height: 1.9;
	}

	.ew-about-profile__key {
		display: block;
		font-size: 10px;
		letter-spacing: .14em;
		margin-bottom: 6px;
	}

	.ew-about-profile__val {
		word-break: break-all;
	}

	.ew-about-history__grid {
		display: block;
	}

	.ew-about-history__row {
		display: block;
		padding: 14px 0;
		font-size: 12px;
	}

	.ew-about-history__year {
		display: block;
		font-size: 11px;
		margin-bottom: 5px;
	}

	.ew-about-access {
		display: none;
	}

	/* --- 事業内容 --- */
	.ew-service-index {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.ew-service-index__label {
		display: none;
	}

	.ew-service-index__item {
		padding: 16px 18px;
		border-right: 1px solid var(--ew-color-rule);
		border-bottom: 1px solid var(--ew-color-rule);
	}

	.ew-service-index__no {
		font-size: 10px;
		margin-bottom: 6px;
	}

	.ew-service-index__title {
		font-size: 14px;
		letter-spacing: .06em;
	}

	.ew-service-block {
		display: flex;
		flex-direction: column-reverse;
	}

	.ew-service-block__content {
		padding: 30px var(--ew-pad-sp) 36px;
		border-right: 0;
	}

	.ew-service-block__head {
		gap: 12px;
		margin-bottom: 14px;
	}

	.ew-service-block__no {
		font-size: 10px;
		letter-spacing: .26em;
	}

	.ew-service-block__en {
		font-size: 9px;
		letter-spacing: .2em;
	}

	.ew-service-block__title {
		font-size: 25px;
		line-height: 1.7;
		margin-bottom: 16px;
	}

	.ew-service-block__desc {
		font-size: 12px;
		line-height: 2.2;
		margin-bottom: 20px;
	}

	.ew-service-block__menu {
		padding-top: 16px;
	}

	.ew-service-block__menu-label {
		font-size: 10px;
		letter-spacing: .16em;
		margin-bottom: 10px;
	}

	.ew-service-block__menu-list {
		gap: 6px;
	}

	.ew-service-block__menu-list .ew-tag {
		padding: 6px 12px;
		font-size: 11px;
	}

	.ew-service-block__media {
		padding: 0;
	}

	.ew-service-block__img {
		height: 200px;
	}

	.ew-service-flow {
		padding: 40px var(--ew-pad-sp);
	}

	.ew-service-flow__head {
		margin-bottom: 18px;
	}

	.ew-service-flow__cards {
		display: none;
	}

	.ew-service-flow__rows {
		display: block;
	}

	.ew-service-flow__row {
		display: grid;
		grid-template-columns: 44px 1fr;
		gap: 14px;
		padding: 16px 0;
		border-top: 1px solid var(--ew-color-rule);
	}

	.ew-service-flow__row-no {
		font-family: var(--ew-font-en);
		font-size: 18px;
		color: var(--ew-color-vermilion);
	}

	.ew-service-flow__row-title {
		font-family: var(--ew-font-serif);
		font-size: 16px;
		letter-spacing: .06em;
		margin-bottom: 6px;
	}

	.ew-service-flow__row-desc {
		font-size: 11px;
		line-height: 1.9;
		color: var(--ew-color-sub);
	}

	/* --- 採用情報 --- */
	.ew-recruit-hero {
		height: 400px;
	}

	.ew-recruit-hero__content {
		left: var(--ew-pad-sp);
		right: var(--ew-pad-sp);
		bottom: 24px;
	}

	.ew-recruit-hero__eyebrow {
		font-size: 9px;
		letter-spacing: .28em;
		margin-bottom: 14px;
	}

	.ew-recruit-hero__title {
		font-size: 29px;
		line-height: 1.6;
		letter-spacing: .11em;
		margin-bottom: 14px;
	}

	.ew-recruit-hero__lead {
		font-size: 11px;
		line-height: 2;
		max-width: none;
	}

	.ew-recruit-points {
		display: block;
	}

	.ew-recruit-points__item {
		padding: 26px 18px 30px;
		border-right: 0;
		border-bottom: 1px solid var(--ew-color-rule);
	}

	.ew-recruit-points__no {
		font-size: 10px;
		letter-spacing: .22em;
		margin-bottom: 12px;
	}

	.ew-recruit-points__title {
		font-size: 19px;
		margin-bottom: 12px;
	}

	.ew-recruit-points__desc {
		font-size: 12px;
		line-height: 2.1;
	}

	.ew-recruit-positions {
		padding: 40px var(--ew-pad-sp);
	}

	.ew-recruit-positions__head {
		margin-bottom: 20px;
	}

	.ew-recruit-positions__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.ew-recruit-position {
		padding: 24px 20px 28px;
	}

	.ew-recruit-position__tags {
		gap: 8px;
		margin-bottom: 16px;
	}

	.ew-recruit-position__tag-type,
	.ew-recruit-position__tag-place {
		padding: 5px 12px;
		font-size: 10px;
	}

	.ew-recruit-position__title {
		font-size: 22px;
		margin-bottom: 14px;
	}

	.ew-recruit-position__desc {
		font-size: 12px;
		line-height: 2.1;
		margin-bottom: 18px;
	}

	.ew-recruit-position__req {
		padding-top: 14px;
		font-size: 11px;
		line-height: 2;
	}

	.ew-recruit-position__apply {
		display: block;
		text-align: center;
		margin-top: 20px;
		padding: 14px;
		font-size: 12px;
	}

	.ew-recruit-flow {
		padding: 40px var(--ew-pad-sp);
	}

	.ew-recruit-flow__head {
		margin-bottom: 20px;
	}

	.ew-recruit-flow__card {
		padding: 20px;
	}

	.ew-recruit-flow__no {
		font-size: 18px;
		margin-bottom: 10px;
	}

	.ew-recruit-flow__title {
		font-size: 17px;
		margin-bottom: 8px;
	}

	.ew-recruit-flow__desc {
		font-size: 11px;
		line-height: 1.9;
	}

	/* --- プライバシーポリシー --- */
	.ew-privacy {
		padding: 34px var(--ew-pad-sp) 40px;
	}

	.ew-privacy__item {
		margin-bottom: 30px;
	}

	.ew-privacy__title {
		font-size: 16px;
		letter-spacing: .06em;
		margin-bottom: 12px;
		padding-left: 14px;
	}

	.ew-privacy__body {
		font-size: 12px;
		line-height: 2.3;
	}

	.ew-privacy__footer {
		padding-top: 20px;
		font-size: 11px;
		line-height: 2;
		word-break: break-all;
	}

	/* --- 実績一覧 --- */
	.ew-works-cats {
		flex-wrap: wrap;
		gap: 6px;
		padding: 14px var(--ew-pad-sp);
		border-bottom: 1px solid var(--ew-color-ink);
	}

	.ew-works-cats__label {
		display: none;
	}

	.ew-works-cats__item {
		border: 1px solid var(--ew-color-border);
		border-right: 0;
		padding: 7px 13px;
		font-size: 11px;
		white-space: nowrap;
	}

	.ew-works-archive-grid {
		padding: 26px var(--ew-pad-sp) 30px;
		display: grid;
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.ew-works-archive-pagination {
		padding: 0 var(--ew-pad-sp) 44px;
	}

	.ew-work-card__img {
		height: 176px;
	}

	.ew-pagination {
		gap: 6px;
	}

	.ew-pagination .page-numbers {
		min-width: 38px;
		height: 38px;
		font-size: 12px;
	}

	.ew-pagination .page-numbers.next,
	.ew-pagination .page-numbers.prev {
		height: 38px;
		padding: 0 16px;
		font-size: 11px;
	}

	/* --- 実績詳細 --- */
	.ew-work-detail__head {
		padding: 28px var(--ew-pad-sp) 24px;
	}

	.ew-work-detail__breadcrumb {
		font-size: 10px;
		margin-bottom: 16px;
	}

	.ew-work-detail__meta {
		gap: 10px;
		margin-bottom: 16px;
	}

	.ew-work-detail__cat {
		font-size: 9px;
		padding: 5px 12px;
	}

	.ew-work-detail__date {
		font-size: 10px;
	}

	.ew-work-detail__title {
		font-size: 24px;
		line-height: 1.7;
		letter-spacing: .08em;
	}

	.ew-work-detail__hero {
		height: 240px;
	}

	.ew-work-detail__play {
		left: var(--ew-pad-sp);
		bottom: 18px;
		gap: 10px;
	}

	.ew-work-detail__play-icon {
		width: 40px;
		height: 40px;
		font-size: 11px;
	}

	.ew-work-detail__layout {
		display: block;
	}

	.ew-work-detail__main {
		padding: 34px var(--ew-pad-sp) 40px;
		border-right: 0;
	}

	.ew-work-detail__overview-title {
		font-size: 21px;
		line-height: 1.8;
		margin-bottom: 16px;
	}

	.ew-work-detail__body {
		font-size: 12px;
		line-height: 2.3;
		margin-bottom: 16px;
	}

	.ew-work-detail__gallery {
		grid-template-columns: 1fr;
		gap: 12px;
		margin: 24px 0;
	}

	.ew-work-detail__gallery img {
		height: 190px;
	}

	.ew-work-detail__quote {
		padding: 6px 0 6px 16px;
		font-size: 14px;
		line-height: 2;
		letter-spacing: .04em;
	}

	.ew-work-detail__quote-by {
		font-size: 11px;
		margin-top: 10px;
	}

	.ew-work-detail__side {
		padding: 34px var(--ew-pad-sp) 40px;
		border-top: 1px solid var(--ew-color-ink);
	}

	.ew-work-detail__eyebrow {
		font-size: 10px;
		letter-spacing: .26em;
		margin-bottom: 16px;
	}

	.ew-work-detail__credit-row {
		padding: 13px 0;
	}

	.ew-work-detail__credit-key {
		font-size: 10px;
	}

	/* SP版デザインには「関連する実績」セクションが無い（デザイン仕様どおり省略） */
	.ew-work-detail__related {
		display: none;
	}

	/* --- お知らせ一覧 --- */
	.ew-news-archive {
		display: block;
	}

	.ew-news-archive__main {
		padding: 0 var(--ew-pad-sp) 40px;
		border-right: 0;
	}

	.ew-news-row {
		display: block;
		padding: 18px 0;
	}

	.ew-news-row__date {
		display: inline-block;
		font-size: 10px;
		margin-right: 10px;
	}

	.ew-news-row__cat {
		display: inline-block;
		border: 1px solid var(--ew-color-border);
		padding: 3px 10px;
		font-size: 10px;
	}

	.ew-news-row__title {
		display: block;
		font-size: 15px;
		line-height: 1.85;
		letter-spacing: .04em;
		margin-top: 8px;
	}

	.ew-news-row__link {
		display: none;
	}

	.ew-news-archive__pagination {
		margin-top: 28px;
	}

	/* サイドバー（カテゴリ件数・アーカイブ）はSPでは省略し、一覧のみ表示する */
	.ew-news-sidebar {
		display: none;
	}

	/* --- お知らせ詳細 --- */
	.ew-news-detail {
		display: block;
	}

	.ew-news-detail__col {
		border-right: 0;
	}

	.ew-news-detail__head {
		padding: 28px var(--ew-pad-sp) 24px;
		border-bottom: 1px solid var(--ew-color-rule);
	}

	.ew-news-detail__breadcrumb {
		font-size: 10px;
		margin-bottom: 16px;
	}

	.ew-news-detail__meta {
		gap: 10px;
		margin-bottom: 16px;
	}

	.ew-news-detail__cat {
		padding: 5px 12px;
		font-size: 10px;
	}

	.ew-news-detail__date {
		font-size: 10px;
		letter-spacing: .12em;
	}

	.ew-news-detail__title {
		font-size: 23px;
		line-height: 1.75;
		letter-spacing: .08em;
	}

	.ew-news-detail__body {
		padding: 26px var(--ew-pad-sp) 40px;
	}

	.ew-news-detail__thumb {
		height: 210px;
		margin-bottom: 26px;
	}

	.ew-news-detail__body p {
		font-size: 13px;
		line-height: 2.4;
		margin-bottom: 20px;
	}

	.ew-news-detail__body h2 {
		font-size: 18px;
		letter-spacing: .06em;
		padding-left: 14px;
		margin: 32px 0 14px;
	}

	.ew-news-detail__related-box {
		padding: 20px 18px;
		margin-top: 30px;
	}

	.ew-news-detail__related-label {
		font-size: 10px;
		letter-spacing: .2em;
		margin-bottom: 10px;
	}

	.ew-news-detail__related-text {
		font-size: 12px;
		line-height: 2.1;
	}

	/* SP版は前後記事ナビの代わりに「お知らせ一覧へ」ボタン1つのみ（デザイン仕様どおり） */
	.ew-news-detail__nav {
		display: none;
	}

	.ew-news-detail__nav-mobile {
		display: block;
		margin-top: 34px;
		border: 1px solid var(--ew-color-ink);
		text-align: center;
		padding: 14px;
		font-size: 12px;
		letter-spacing: .1em;
	}
}
