/* ==========================================================================
   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: 16px;
	line-height: 2.3;
	/* 段落の最終行が「い」「ード」など1〜2文字だけになるのを避ける（未対応ブラウザでは従来どおり。2026-10-13） */
	text-wrap: pretty;
}

/* :where() で詳細度を要素1個分(0,0,1)に落とす。`.ew-page p`(0,1,1) のままだと
   `.ew-footer__contact-lead{margin:0 0 30px}`(0,1,0) 等のクラス単体の余白指定が全て0に潰される
   （2026-10-13 SP確認で発覚：お問い合わせ欄のボタンが本文に密着、ページ見出しのパンくずが本文に密着 等） */
:where(.ew-page) h1,
:where(.ew-page) h2,
:where(.ew-page) h3,
:where(.ew-page) h4,
:where(.ew-page) p,
:where(.ew-page) dl,
:where(.ew-page) dd,
:where(.ew-page) dt,
:where(.ew-page) ul,
:where(.ew-page) ol,
:where(.ew-page) figure {
	margin: 0;
	padding: 0;
}

:where(.ew-page) ul,
:where(.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: 16px;
	letter-spacing: .3em;
}

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

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

.ew-label-en--xs {
	font-size: 16px;
	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: 16px;
}

.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: 16px;
	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-page a { color: inherit }（詳細度0,1,1）が .ew-btn--primary（0,1,0）に勝ち、
   ヘッダー・フッターなど地色が墨色の場所で黒字になっていた（藍パネル上では白を継承していたため気づきにくい）。 */
.ew-page a.ew-btn--primary,
.ew-page a.ew-btn--primary:hover {
	color: #fff;
}

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

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

/* 定義リスト：ラベル幅はブロックごとに異なるため 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: 16px;
	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;
}

/* 文節のまとまり。狭い画面で「支／援」のように語の途中で折り返さないよう、ひとかたまりで次の行へ送る */
.ew-phrase {
	display: inline-block;
}

/* 2行程度の短い文（カード見出し・課題カード等）は文節で折り返したうえで行の長さを揃え、「…ダッシュボ／ード」
   「…実感がな／い」のような末尾だけの行を作らない。文節判定(auto-phrase)が無いブラウザ(Safari等)で揃えると
   「寄附実／績」のように語の途中で割れるため、その場合は揃えず .ew-page の text-wrap:pretty に任せる（2026-10-13） */
@supports (word-break: auto-phrase) {
	.ew-work-card__title,
	.ew-works-list__title,
	.ew-work-detail__title,
	.ew-gov-issue__text,
	.ew-topics__item > div:not(.ew-topics__date) {
		word-break: auto-phrase;
		text-wrap: balance;
	}
}

/* --------------------------------------------------------------------------
   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: 16px;
	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;
}

/* 行高は本文(2.15)を継がせず個別に詰める。継いだままだと英字ラベルの最小16px化と合わせて
   1項目128pxになり、7項目が1画面に収まらなかった（2026-10-13） */
.ew-sp-menu__link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 15px 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;
	line-height: 1.5;
	letter-spacing: .1em;
	margin-bottom: 2px;
}

.ew-sp-menu__en {
	display: block;
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: .24em;
	color: rgba(255, 255, 255, .45);
}

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

.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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

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

/* お問い合わせページ（footer.php で問い合わせ欄を出さない）は会社概要だけを1カラムで */
.ew-footer__top--no-contact {
	grid-template-columns: 1fr;
}

.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: 16px;
}

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

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

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

/* --- ヒーロー --- */
.ew-hero {
	display: grid;
	/* 最小フォント16px化（2026-10-05）でリード文が縦2段組みになり300pxでは収まらないため340pxに */
	grid-template-columns: 1fr 340px;
	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;
	overflow: hidden;
	container-type: size;
}

/* YouTube背景：16:9のiframeを枠いっぱいに「cover」させる（はみ出しは枠でクリップ）。
   container query 単位で枠の幅・高さのどちらが足りなくても隙間が出ないようにする。
   pointer-events:none で上の再生ボタンを押せるようにし、YouTubeのホバーUIも出さない */
.ew-hero__video iframe,
.ew-hero-sp__video iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: max(100cqw, 177.78cqh);
	height: max(100cqh, 56.25cqw);
	max-width: none; /* Cocoon親テーマの iframe{max-width:100%} を打ち消す。残すと縦長のSPで横幅が枠に縮み、上下に黒帯が出る */
	transform: translate(-50%, -50%);
	border: 0;
	pointer-events: none;
	opacity: 0;
	transition: opacity .8s ease;
}

/* 再生開始を js/eyewall.js が検知して付ける。自動再生が止められた端末では透明のまま＝下の静止画が見える */
.ew-hero__video iframe.is-playing,
.ew-hero-sp__video iframe.is-playing {
	opacity: 1;
}

.ew-hero-sp__video {
	display: none;
}

/* .ew-hero__gradient（動画上の暗いグラデーション）はクライアント指示で撤去（2026-10-06） */

.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;
}

/* 再生ボタンは YouTube へのリンク(<a>)にしたため、.ew-page a { color: inherit }（詳細度0,1,1）に負けないよう要素付きで指定 */
.ew-page a.ew-hero__play {
	color: rgba(255, 255, 255, .7);
}

.ew-page a.ew-hero-sp__play {
	color: rgba(255, 255, 255, .75);
}

.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: 16px;
}

.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: 16px;
	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: 16px;
	line-height: 1.9;
}

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

/* --- TOP：自治体のご担当者さまへ（入口） ---
   採用案2Aには無い追加セクション（front-page.php のコメント参照）。
   面は藍＋写真、CTAのみ朱という2Aの配色ルールを踏襲する。 */
.ew-gov-entry {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--ew-color-ink);
	background: var(--ew-color-navy);
}

.ew-gov-entry__media {
	position: relative;
	/* 高さ固定にすると右パネルが伸びたとき下に藍の余りが出るため、行の高さまで伸ばす */
	min-height: 420px;
	background: var(--ew-color-ink);
	overflow: hidden;
}

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

.ew-gov-entry__panel {
	background: var(--ew-color-navy);
	color: #fff;
	padding: 76px 56px 76px 48px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
}

.ew-gov-entry__eyebrow {
	color: rgba(255, 255, 255, .62);
	margin-bottom: 24px;
}

.ew-gov-entry__title {
	margin: 0 0 26px;
	font-size: 34px;
	line-height: 1.7;
	letter-spacing: .08em;
	color: #fff;
}

.ew-gov-entry__text {
	margin: 0 0 34px;
	font-size: 16px;
	line-height: 2.3;
	color: rgba(255, 255, 255, .84);
	max-width: 480px;
}

.ew-gov-entry__cta {
	padding: 18px 40px;
	font-size: 16px;
	letter-spacing: .12em;
}

/* --- 私たちについて --- */
.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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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);
}

/* カテゴリ欄はデザインの130pxだと「自治体 / 広告・プロモーション」（2カテゴリ表記）が「広／告・プロモー／ション」と
   割れたため190pxに広げ、.ew-works-list__cat 側で「/」の位置でだけ折り返す（2026-10-13） */
.ew-works-list__row {
	display: grid;
	grid-template-columns: 150px 190px 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: 16px;
	letter-spacing: .14em;
	color: var(--ew-color-vermilion);
	word-break: keep-all; /* 空白（「 / 」の前後）でだけ折り返す */
	line-height: 1.8;
}

.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: 16px;
	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;
}

/* カテゴリと日付はそれぞれ途中で折り返さず、収まらなければ日付だけ次の行へ送る
  （SPで「広告・プロモーショ／ン」と割れていた。2026-10-13） */
.ew-work-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0 14px;
	margin: 16px 0 10px;
	font-family: var(--ew-font-en);
	font-size: 16px;
	letter-spacing: .16em;
}

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

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

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

.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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	line-height: 2.3;
	color: rgba(255, 255, 255, .88);
}

.ew-gov-hero__cta {
	display: block;
	text-align: center;
	padding: 18px;
	font-size: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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;
}

/* 代表写真なし（クライアント指示 2026-10-05）。1カラムにし、本文の行長が伸びすぎないよう幅を抑える */
.ew-about-message--no-portrait {
	grid-template-columns: 1fr;
}

.ew-about-message--no-portrait .ew-about-message__content {
	max-width: 900px;
}

.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: 16px;
	line-height: 2.4;
	color: var(--ew-color-body);
}

.ew-about-message__sign {
	margin-top: 30px;
	font-family: var(--ew-font-serif);
	font-size: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	letter-spacing: .3em;
	color: var(--ew-color-navy);
}

.ew-service-block__en {
	font-family: var(--ew-font-en);
	font-size: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	letter-spacing: .1em;
}

.ew-recruit-position__tag-place {
	border: 1px solid var(--ew-color-border);
	padding: 6px 14px;
	font-size: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin-bottom: 22px;
	font-family: var(--ew-font-en);
	font-size: 16px;
	letter-spacing: .18em;
}

/* カテゴリ帯・日付は語の途中で割らず、収まらなければ日付を次の行へ（2026-10-13） */
.ew-work-detail__cat {
	background: var(--ew-color-vermilion);
	color: #fff;
	padding: 6px 14px;
	white-space: nowrap;
}

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

.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: 16px;
}

.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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	letter-spacing: .12em;
}

.ew-news-detail__date {
	font-family: var(--ew-font-en);
	font-size: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	letter-spacing: .08em;
	padding-top: 14px;
}

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

.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: 16px;
	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: 16px;
	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: 16px;
	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: 16px;
	line-height: 2.2;
	color: var(--ew-color-body);
	margin-bottom: 14px;
}

.ew-contact-side__email {
	font-size: 16px;
	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: 16px;
	line-height: 2.2;
	color: var(--ew-color-body);
}

.ew-contact-side__note {
	font-size: 16px;
	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: 16px;
		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;
	}

	/* 360px幅以下で「プライバシーポリシ／ー」と1文字落ちるため、画面幅に応じて30pxから少しだけ縮める */
	.ew-heading--page-title {
		font-size: min(30px, 7.6vw);
	}

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

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

	/* 英字ラベルの横に和文見出しが収まらないときは、見出しごと次の行へ送る
	  （横並びのまま折り返すと「…までの流／れ」のように末尾1文字だけが落ちていた。2026-10-13） */
	.ew-section-num {
		flex-wrap: wrap;
		row-gap: 2px;
	}

	/* --- 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: 16px;
	}

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

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

	/* デザインでは8pxの添え字。最小16px化で社名ロゴより大きくなりヘッダーが98pxまで伸びたため、
	   SPでは省く（1080px以下のPCと同じ扱い。2026-10-13） */
	.ew-header__region {
		display: none;
	}

	.ew-header__nav {
		display: none;
	}

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

	.ew-header__sp-cta {
		display: inline-block;
		padding: 8px 12px;
		font-size: 16px;
		line-height: 24px; /* 本文の行高2.15を継ぐと52pxになりハンバーガー(40px)より高くなる */
		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: 16px;
		letter-spacing: .28em;
	}

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

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

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

	.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: 16px;
		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;
	}

	/* 中身（PC用会社概要）が非表示で空になるため、罫線だけが二重に残らないよう枠ごと消す */
	.ew-footer__top--no-contact {
		display: none;
	}

	.ew-footer__company-sp {
		display: block;
		padding: 26px var(--ew-pad-sp);
		font-size: 16px;
		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: 16px;
		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;
	}

	/* デザインは11pxの2列グリッド。16pxだと「自治体のご担当者さまへ」「プライバシーポリシー」が
	   列幅に収まらず語の途中で折り返したため、語単位で流し込む（2026-10-13） */
	.ew-footer__sitemap {
		display: flex;
		flex-wrap: wrap;
		gap: 4px 22px;
		font-size: 16px;
		line-height: 2.2;
	}

	.ew-footer__sitemap a {
		white-space: nowrap;
	}

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

	/* 動画の上に文字を重ねると読みにくく、動画側の焼き込みテロップとも重なるため、
	   SPは「16:9の動画枠（動画をそのまま全体表示）→その下に文章」の縦積みにする（2026-10-13 クライアント側指示）。
	   静止画と動画は同じグリッドセルに重ね、動画が再生されるまでは静止画を見せる */
	.ew-hero-sp {
		display: grid;
		background: var(--ew-color-ink);
	}

	.ew-hero-sp__img,
	.ew-hero-sp__video {
		grid-area: 1 / 1;
		width: 100%;
		aspect-ratio: 16 / 9;
	}

	.ew-hero-sp__img {
		height: auto;
		object-fit: cover;
		object-position: center 62%; /* 縦長の静止画から地平線（並木）あたりを切り出す */
	}

	.ew-hero-sp__video {
		display: block;
		position: relative;
		overflow: hidden;
		container-type: size;
	}

	.ew-hero-sp__gradient {
		display: none;
	}

	.ew-hero-sp__content {
		grid-area: 2 / 1;
		padding: 30px var(--ew-pad-sp) 34px;
		color: #fff;
	}

	.ew-hero-sp__since {
		font-family: var(--ew-font-en);
		font-size: 16px;
		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: 16px;
		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: 16px;
	}

	.ew-hero-sp__play-label {
		font-size: 16px;
		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: 16px;
		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: 16px;
		margin-bottom: 6px;
	}

	/* --- TOP：自治体のご担当者さまへ（入口） --- */
	.ew-gov-entry {
		display: block;
	}

	.ew-gov-entry__media {
		min-height: 0;
		height: 200px;
	}

	.ew-gov-entry__panel {
		padding: 36px var(--ew-pad-sp) 40px;
	}

	.ew-gov-entry__eyebrow {
		margin-bottom: 16px;
	}

	.ew-gov-entry__title {
		margin: 0 0 18px;
		font-size: 22px;
		line-height: 1.8;
	}

	.ew-gov-entry__text {
		margin: 0 0 26px;
		font-size: 16px;
		line-height: 2.2;
	}

	.ew-gov-entry__cta {
		display: block;
		width: 100%;
		text-align: center;
		padding: 16px;
		font-size: 16px;
	}

	/* --- 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: 16px;
		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: 16px;
		margin-bottom: 12px;
	}

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

	.ew-service-card__body {
		font-size: 16px;
		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;
		flex-wrap: wrap;
		gap: 0 12px;
		white-space: nowrap; /* 子のカテゴリ・日付それぞれを語の途中で割らない */
		margin: 12px 0 8px;
		font-family: var(--ew-font-en);
		font-size: 16px;
		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: 16px;
		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: 16px;
		line-height: 2.2;
		margin-bottom: 20px;
	}

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

	.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: 16px;
		margin-bottom: 8px;
	}

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

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

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

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

	.ew-gov-support__desc {
		font-size: 16px;
		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: 16px;
		line-height: 1.9;
		color: var(--ew-color-sub);
		/* SPは2列グリッド（番号｜見出し）。3つ目の子である説明文が1列目（44px）に落ちて
		   1文字幅の縦長表示になっていたため、見出しと同じ2列目に置く */
		grid-column: 2;
	}

	.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: 16px;
		letter-spacing: .24em;
		margin-bottom: 14px;
	}

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

	.ew-gov-case__body {
		font-size: 16px;
		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: 16px;
	}

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

	.ew-gov-faq__a-text {
		font-size: 16px;
		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: 16px;
	}

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

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

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

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

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

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

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

	.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: 16px;
		letter-spacing: .22em;
		margin-bottom: 12px;
	}

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

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

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

	/* SPはNOTEのみ表示（OFFICEは省略）。BY EMAIL欄は2026-10-13に削除（お問い合わせはフォームのみ） */
	.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: 16px;
		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: 16px;
		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: 16px;
		line-height: 1.9;
	}

	.ew-about-profile__key {
		display: block;
		font-size: 16px;
		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: 16px;
	}

	.ew-about-history__year {
		display: block;
		font-size: 16px;
		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: 16px;
		margin-bottom: 6px;
	}

	.ew-service-index__title {
		font-size: 16px;
		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: 16px;
		letter-spacing: .26em;
	}

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

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

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

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

	.ew-service-block__menu-label {
		font-size: 16px;
		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: 16px;
	}

	.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: 16px;
		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: 16px;
		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: 16px;
		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: 16px;
		letter-spacing: .22em;
		margin-bottom: 12px;
	}

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

	.ew-recruit-points__desc {
		font-size: 16px;
		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: 16px;
	}

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

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

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

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

	.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: 16px;
		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: 16px;
		line-height: 2.3;
	}

	.ew-privacy__footer {
		padding-top: 20px;
		font-size: 16px;
		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: 16px;
		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: 16px;
	}

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

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

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

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

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

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

	.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: 16px;
	}

	.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: 16px;
		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: 16px;
		line-height: 2;
		letter-spacing: .04em;
	}

	.ew-work-detail__quote-by {
		font-size: 16px;
		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: 16px;
		letter-spacing: .26em;
		margin-bottom: 16px;
	}

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

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

	/* 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: 16px;
		margin-right: 10px;
	}

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

	.ew-news-row__title {
		display: block;
		font-size: 16px;
		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: 16px;
		margin-bottom: 16px;
	}

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

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

	.ew-news-detail__date {
		font-size: 16px;
		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: 16px;
		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: 16px;
		letter-spacing: .2em;
		margin-bottom: 10px;
	}

	.ew-news-detail__related-text {
		font-size: 16px;
		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: 16px;
		letter-spacing: .1em;
	}
}

/* --------------------------------------------------------------------------
   10. 中間幅（769〜1180px）：ヘッダーナビの詰め
   PCナビが5項目になったため、狭いノートPC幅でブランドと衝突しないよう間隔を詰める。
   -------------------------------------------------------------------------- */
@media (min-width: 769px) and (max-width: 1180px) {
	.ew-header {
		padding-left: 24px;
		padding-right: 24px;
	}

	.ew-header__brand {
		gap: 10px;
	}

	.ew-header__brand-name {
		font-size: 20px;
		letter-spacing: .08em;
	}

	.ew-header__nav {
		gap: 18px;
		font-size: 16px;
		letter-spacing: .06em;
	}

	.ew-header__cta {
		padding: 11px 18px;
		letter-spacing: .08em;
	}
}

/* 1080px以下ではヘッダーの英字拠点表記を省き、ナビの幅を確保する */
@media (min-width: 769px) and (max-width: 1080px) {
	.ew-header__region {
		display: none;
	}

	/* 最小フォント16px化（2026-10-05）に伴う中間幅の調整。
	   810px未満でナビが折り返す／実績カテゴリとお知らせ一覧が横にはみ出すのを防ぐ */
	.ew-header__brand-name {
		font-size: 18px;
	}

	.ew-header__nav {
		gap: 12px;
		letter-spacing: .02em;
	}

	.ew-header__cta {
		padding: 10px 12px;
		letter-spacing: .04em;
	}

	.ew-works-cats {
		flex-wrap: wrap;
	}

	.ew-works-cats__item {
		padding: 12px 16px;
		border-bottom: 1px solid var(--ew-color-rule);
	}

	.ew-news-archive {
		display: block;
	}

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

	/* フッター：リンクが語中で折り返す／「フォームへ」が縦長になるのを防ぐ */
	.ew-footer__sitemap {
		flex-wrap: wrap;
		gap: 10px 20px;
	}

	.ew-footer__sitemap a,
	.ew-footer__contact-actions .ew-btn {
		white-space: nowrap;
	}

	.ew-footer__contact-actions {
		flex-wrap: wrap;
	}

	.ew-footer__bottom {
		flex-wrap: wrap;
		gap: 12px;
	}

	/* お問い合わせ：右カラム340px固定でフォーム幅が足りず入力欄が極端に狭くなるため、
	   フォームを全幅にし補足情報（メール・所在地・注意書き）を下に送る */
	.ew-contact-layout {
		display: block;
	}

	.ew-contact-form {
		border-right: 0;
		border-bottom: 1px solid var(--ew-color-ink);
	}

	.ew-contact-field {
		grid-template-columns: 170px 1fr;
		gap: 16px;
	}

	/* 会社案内アクセス：地図の固定幅560pxで文章側が潰れるため上下積みに */
	.ew-about-access {
		grid-template-columns: 1fr;
	}

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


/* --------------------------------------------------------------------------
   ロゴ画像（2026-10-06）。社名テキストをロゴ画像に置き換え。
   高さだけ指定し幅は比率に任せる。スクロール時は既存の縮小演出に合わせて小さくする
   -------------------------------------------------------------------------- */
.ew-header__brand {
	align-items: center;
}

.ew-header__brand-name {
	display: block;
	line-height: 0;
}

.ew-header__logo {
	display: block;
	width: auto;
	height: 46px;
	transition: height .25s ease;
}

.ew-header.is-scrolled .ew-header__logo {
	height: 36px;
}

.ew-sp-menu__logo {
	display: block;
	width: auto;
	height: 30px;
}

@media (min-width: 769px) and (max-width: 1180px) {
	.ew-header__logo {
		height: 40px;
	}
}

@media (min-width: 769px) and (max-width: 1080px) {
	.ew-header__logo {
		height: 34px;
	}
}

@media (max-width: 768px) {
	.ew-header__brand {
		align-items: flex-start;
	}

	.ew-header__logo {
		height: 32px;
	}

	.ew-header.is-scrolled .ew-header__logo {
		height: 28px;
	}

	.ew-header__sp-cta {
		white-space: nowrap;
	}
}

/* 320px級の小型端末：ロゴ・お問い合わせ・メニューが1行に収まらず、ボタンの文字が2行に折れていた */
@media (max-width: 359px) {
	.ew-header__logo,
	.ew-header.is-scrolled .ew-header__logo {
		height: 26px;
	}

	.ew-header__sp-cta {
		padding-left: 8px;
		padding-right: 8px;
		letter-spacing: .02em;
	}

	/* お問い合わせの「1. 入力／2. 確認／3. 送信完了」が枠内で2行に割れるため */
	.ew-contact-steps__step {
		padding-left: 8px;
		padding-right: 8px;
		letter-spacing: 0;
		white-space: nowrap;
	}
}

/* --------------------------------------------------------------------------
   お知らせ本文の画像・動画・リンク（2026-10-06 初回記事投入に合わせて追加）
   -------------------------------------------------------------------------- */
/* アイキャッチはポスター等の告知画像もあるため、切り抜かず全体を見せる */
.ew-news-detail__thumb {
	height: auto;
	max-height: 720px;
	object-fit: contain;
	background: var(--ew-color-bg-alt);
}

.ew-news-figure {
	margin: 8px 0 30px;
}

.ew-news-figure img {
	display: block;
	width: 100%;
	height: auto;
}

/* 縦長のPOP等を2枚並べる */
.ew-news-figures {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 8px 0 30px;
}

.ew-news-figures .ew-news-figure {
	margin: 0;
}

.ew-news-embed {
	position: relative;
	aspect-ratio: 16 / 9;
	margin: 8px 0 30px;
	background: var(--ew-color-ink);
}

.ew-news-embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	border: 0;
}

.ew-news-detail__body .ew-news-link a {
	color: var(--ew-color-vermilion);
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}

@media (max-width: 768px) {
	.ew-news-detail__thumb {
		height: auto;
		max-height: 480px;
	}

	.ew-news-figures {
		gap: 10px;
	}
}


/* --------------------------------------------------------------------------
   お知らせ→実績一本化（2026-10-06）。旧お知らせ本文の画像・動画・リンクを実績詳細でも整える
   -------------------------------------------------------------------------- */
/* 全体表示で余る左右（上下）は黒帯にせず、ページと同じ生成りにする（2026-10-13 クライアント側指示） */
.ew-work-detail__hero--contain {
	background: var(--ew-color-bg);
}

.ew-work-detail__hero--contain img {
	object-fit: contain;
	opacity: 1;
}

/* SPの高さ240px固定だと縦長のリール表紙・ポスターが小さく収まるため、画像の縦横比なりの高さ（上限480px）にする。
   横長の画像は従来どおり帯なしで収まる（2026-10-13） */
@media (max-width: 768px) {
	.ew-work-detail__hero--contain {
		height: auto;
	}

	.ew-work-detail__hero--contain img {
		position: static;
		width: 100%;
		height: auto;
		max-height: 480px;
	}
}

.ew-work-detail__body p {
	margin: 0 0 22px;
}

.ew-work-detail__body .ew-news-link a {
	color: var(--ew-color-vermilion);
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}


/* --------------------------------------------------------------------------
   お問い合わせフォーム：Contact Form 7（2026-10-13 導入）。
   フォームテンプレートは ew-contact-* のマークアップ（docs/content-2026-10/contact-form/apply_cf7.php）。
   「1.入力 → 2.確認 → 3.送信完了」は form[data-ew-step] で出し分ける（js/eyewall.js）。
   属性が無い＝JSが動かない場合は確認画面なしで「送信する」を出す
   -------------------------------------------------------------------------- */
.ew-contact-cf7 .wpcf7-form-control-wrap {
	display: block;
}

.ew-contact-cf7 .wpcf7-not-valid-tip {
	display: block;
	margin-top: 8px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--ew-color-vermilion);
}

.ew-contact-cf7 .ew-contact-field__input[aria-invalid="true"],
.ew-contact-cf7 .ew-contact-field__select[aria-invalid="true"],
.ew-contact-cf7 .ew-contact-field__textarea[aria-invalid="true"] {
	border-color: var(--ew-color-vermilion);
}

/* 同意チェック（CF7 の acceptance は label の中に checkbox と文言を出す） */
.ew-contact-agree .wpcf7-list-item {
	margin: 0;
}

.ew-contact-agree label {
	display: flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
}

.ew-contact-agree input[type="checkbox"] {
	appearance: none;
	-webkit-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 input[type="checkbox"]:checked {
	background: var(--ew-color-ink);
	box-shadow: inset 0 0 0 3px #fff;
}

.ew-page .ew-contact-agree a,
.ew-page .ew-privacy__footer a {
	border-bottom: 1px solid currentColor;
}

/* 迷惑投稿よけの入力欄（inc/contact.php）。人には見せない */
.ew-contact-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ボタン：確認画面では「入力内容を修正する」と「送信する」を横に並べる */
.ew-contact-actions {
	position: relative;
	display: flex;
	gap: 12px;
	margin-top: 20px;
}

.ew-contact-actions .ew-contact-submit {
	margin-top: 0;
	flex: 1 1 auto;
}

/* CF7 の送信ボタンは input[type=submit]。Cocoon 親テーマの input[type="submit"]{背景グレー}（詳細度0,1,1）に
   .ew-contact-submit（0,1,0）が負けて薄いグレーのボタンになったため、要素＋属性付きで指定し直す */
.ew-page input[type="submit"].ew-contact-submit {
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	border-radius: 0;
	background: var(--ew-color-vermilion);
	color: #fff;
	line-height: 1.6;
	cursor: pointer;
}

.ew-page input[type="submit"].ew-contact-submit:hover {
	background: var(--ew-color-vermilion-hover);
}

.ew-page input[type="submit"].ew-contact-submit:disabled {
	opacity: .5;
	cursor: not-allowed;
}

.ew-contact-back {
	flex: 0 0 auto;
	padding: 22px 28px;
	border: 1px solid var(--ew-color-ink);
	background: transparent;
	color: var(--ew-color-ink);
	font-family: var(--ew-font-sans);
	font-size: 16px;
	letter-spacing: .1em;
	cursor: pointer;
}

.ew-contact-back:hover {
	background: rgba(20, 22, 31, .05);
}

.ew-contact-actions .wpcf7-spinner {
	position: absolute;
	right: 16px;
	top: 50%;
	margin: -12px 0 0;
}

/* 送信結果の帯（送信失敗・迷惑判定・不備のとき）。CF7 標準の青枠より詳細度を上げて上書き */
.wpcf7 form.ew-contact-cf7 .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 14px 18px;
	border: 1px solid var(--ew-color-vermilion);
	color: var(--ew-color-vermilion);
	font-size: 16px;
	line-height: 1.8;
}

/* 確認画面 */
.ew-contact-confirm__lead {
	margin-bottom: 18px;
	font-size: 16px;
	line-height: 2;
	color: var(--ew-color-body);
}

.ew-contact-confirm__list {
	display: grid;
	grid-template-columns: 200px 1fr;
	column-gap: 28px;
	border-top: 1px solid var(--ew-color-rule);
}

.ew-contact-confirm__list dt,
.ew-contact-confirm__list dd {
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid var(--ew-color-rule);
	font-size: 16px;
	line-height: 1.9;
}

.ew-contact-confirm__list dt {
	letter-spacing: .08em;
	color: var(--ew-color-label);
}

.ew-contact-confirm__list dd {
	color: var(--ew-color-ink);
	white-space: pre-wrap; /* お問い合わせ内容の改行をそのまま見せる */
	overflow-wrap: anywhere;
}

.ew-contact-confirm__list dd.is-empty {
	color: var(--ew-color-label);
}

/* 送信完了 */
.ew-contact-complete {
	padding-top: 6px;
}

.ew-contact-complete__title {
	margin-bottom: 18px;
	font-family: var(--ew-font-serif);
	font-size: 24px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.7;
	color: var(--ew-color-ink);
}

.ew-contact-complete__text {
	margin-bottom: 28px;
	font-size: 16px;
	line-height: 2.2;
	color: var(--ew-color-body);
}

.ew-page a.ew-contact-complete__link {
	color: var(--ew-color-vermilion);
	border-bottom: 1px solid currentColor;
	padding-bottom: 4px;
	letter-spacing: .08em;
}

.ew-contact-unavailable {
	padding: 26px 0;
	border-top: 1px solid var(--ew-color-rule);
	font-size: 16px;
	line-height: 2.2;
}

/* 段階ごとの出し分け */
.ew-contact-cf7 .ew-contact-to-confirm,
.ew-contact-cf7 .ew-contact-back,
.ew-contact-cf7 .ew-contact-confirm,
.ew-contact-cf7 .ew-contact-complete {
	display: none;
}

.ew-contact-cf7[data-ew-step="1"] .ew-contact-to-confirm {
	display: block;
}

.ew-contact-cf7[data-ew-step="1"] .ew-contact-send,
.ew-contact-cf7[data-ew-step="1"] .wpcf7-spinner {
	display: none;
}

.ew-contact-cf7[data-ew-step="2"] .ew-contact-fields {
	display: none;
}

.ew-contact-cf7[data-ew-step="2"] .ew-contact-confirm,
.ew-contact-cf7[data-ew-step="2"] .ew-contact-back {
	display: block;
}

.ew-contact-cf7[data-ew-step="3"] .ew-contact-fields,
.ew-contact-cf7[data-ew-step="3"] .ew-contact-actions,
.wpcf7 form.ew-contact-cf7[data-ew-step="3"] .wpcf7-response-output {
	display: none;
}

.ew-contact-cf7[data-ew-step="3"] .ew-contact-complete {
	display: block;
}

@media (max-width: 768px) {
	.ew-contact-confirm__list {
		display: block;
	}

	.ew-contact-confirm__list dt {
		padding: 14px 0 2px;
		border-bottom: 0;
	}

	.ew-contact-confirm__list dd {
		padding: 0 0 14px;
	}

	/* 確認画面のボタンは縦に（送信するを上） */
	.ew-contact-actions {
		flex-direction: column-reverse;
		gap: 10px;
	}

	.ew-contact-back {
		padding: 16px;
	}

	.ew-contact-complete__title {
		font-size: 21px;
	}
}


/* --------------------------------------------------------------------------
   10. アニメーション（演出）（2026-10-13）
   方針は「控えめで上品」。動かすのは透明度と 20px 前後の移動だけで、ぼかし・回転・弾む動きは使わない。
   - 登場演出：1画面目（TOPヒーロー・下層の見出し帯・自治体ヒーロー・実績詳細の冒頭）。CSS だけで動き、最後は元の見た目に戻る（fill-mode: backwards）
   - スクロール出現：.ew-rv / .ew-rv-inner を js/eyewall.js が付け、画面に入ったら .is-in。対象の一覧は JS 側の TARGETS
   - 写真：リンク付きカードのホバー拡大（マウス操作の端末だけ）、大きな写真のスクロール連動（対応ブラウザだけ）
   どれも <html>.ew-motion（inc/setup.php が <head> で付ける。動きを減らす設定では付かない）か
   prefers-reduced-motion: no-preference の下でだけ効く。印刷時も動かさない（@media screen）
   -------------------------------------------------------------------------- */
:root {
	--ew-ease-out: cubic-bezier(.22, 1, .36, 1);
	--ew-ease-wipe: cubic-bezier(.65, .05, .36, 1);
}

/* キャッチの行（front-page.php で行ごとに span で包んだもの）。<br> の代わりに block で改行する。
   幅（縦書きでは高さ）を文字分に詰めるのは、上から書くように出す演出の速さを文字の長さに合わせるため */
.ew-hero__catch-line,
.ew-hero-sp__heading-line {
	display: block;
	inline-size: fit-content;
}

@keyframes ew-in-fade {
	from { opacity: 0; }
}

@keyframes ew-in-up {
	from { opacity: 0; translate: 0 16px; }
}

/* 縦書きは上から、横書きは左から、読む向きに書き進めるように現れる */
@keyframes ew-in-wipe-down {
	from { clip-path: inset(0 0 100% 0); }
	to   { clip-path: inset(0 0 0 0); }
}

@keyframes ew-in-wipe-right {
	from { clip-path: inset(0 100% 0 0); }
	to   { clip-path: inset(0 0 0 0); }
}

/* 動画・写真がわずかに引いて落ち着く */
@keyframes ew-in-settle {
	from { scale: 1.06; }
}

@media screen and (prefers-reduced-motion: no-preference) {

	/* --- 登場演出：TOPヒーロー（PC） --- */
	.ew-motion .ew-hero__media {
		animation: ew-in-fade 1.2s ease-out backwards;
	}

	.ew-motion .ew-hero__video {
		animation: ew-in-settle 2.8s var(--ew-ease-out) backwards;
	}

	.ew-motion .ew-hero__catch-line {
		animation: ew-in-wipe-down 1.1s var(--ew-ease-wipe) .3s backwards;
	}

	.ew-motion .ew-hero__catch-line + .ew-hero__catch-line {
		animation-delay: .65s;
	}

	.ew-motion .ew-hero__lead {
		animation: ew-in-wipe-down 1.4s var(--ew-ease-wipe) 1s backwards;
	}

	.ew-motion .ew-hero__since {
		animation: ew-in-fade 1s ease-out 1.3s backwards;
	}

	.ew-motion .ew-hero__caption,
	.ew-motion .ew-hero__play {
		animation: ew-in-fade 1s ease-out 1.3s backwards;
	}

	/* --- 登場演出：TOPヒーロー（SP） --- */
	.ew-motion .ew-hero-sp__img,
	.ew-motion .ew-hero-sp__video {
		animation: ew-in-fade 1s ease-out backwards;
	}

	.ew-motion .ew-hero-sp__since {
		animation: ew-in-up .9s var(--ew-ease-out) .2s backwards;
	}

	.ew-motion .ew-hero-sp__heading-line {
		animation: ew-in-wipe-right 1s var(--ew-ease-wipe) .35s backwards;
	}

	.ew-motion .ew-hero-sp__heading-line + .ew-hero-sp__heading-line {
		animation-delay: .6s;
	}

	.ew-motion .ew-hero-sp__lead {
		animation: ew-in-up .9s var(--ew-ease-out) .95s backwards;
	}

	.ew-motion .ew-hero-sp__play {
		animation: ew-in-up .9s var(--ew-ease-out) 1.1s backwards;
	}

	/* --- 登場演出：下層ページの見出し帯（template-parts/page-head.php） --- */
	.ew-motion .ew-page-head__main > * {
		animation: ew-in-up .9s var(--ew-ease-out) .1s backwards;
	}

	.ew-motion .ew-page-head__main > :nth-child(2) {
		animation-delay: .2s;
	}

	.ew-motion .ew-page-head__main > :nth-child(3) {
		animation-delay: .32s;
	}

	.ew-motion .ew-page-head__main > :nth-child(4) {
		animation-delay: .44s;
	}

	.ew-motion .ew-page-head__vertical {
		animation: ew-in-wipe-down 1.4s var(--ew-ease-wipe) .45s backwards;
	}

	/* --- 登場演出：自治体ページのヒーロー --- */
	.ew-motion .ew-gov-hero__media img {
		animation: ew-in-fade 1.2s ease-out backwards;
	}

	.ew-motion .ew-gov-hero__eyebrow {
		animation: ew-in-up .9s var(--ew-ease-out) .25s backwards;
	}

	.ew-motion .ew-gov-hero__title {
		animation: ew-in-up .9s var(--ew-ease-out) .4s backwards;
	}

	.ew-motion .ew-gov-hero__panel-text {
		animation: ew-in-up .9s var(--ew-ease-out) .55s backwards;
	}

	.ew-motion .ew-gov-hero__cta {
		animation: ew-in-up .9s var(--ew-ease-out) .7s backwards;
	}

	/* --- 登場演出：実績詳細の冒頭（パンくず・カテゴリ・タイトル → メイン画像） --- */
	.ew-motion .ew-work-detail__head > * {
		animation: ew-in-up .9s var(--ew-ease-out) .1s backwards;
	}

	.ew-motion .ew-work-detail__head > :nth-child(2) {
		animation-delay: .2s;
	}

	.ew-motion .ew-work-detail__head > :nth-child(3) {
		animation-delay: .3s;
	}

	.ew-motion .ew-work-detail__hero {
		animation: ew-in-fade 1.2s ease-out .35s backwards;
	}

	/* --- スクロール出現（js/eyewall.js が付け外しする） ---
	   隠す指定には transition を付けない＝JS がクラスを付けた瞬間に消え、ふわっと消える動きは出ない。
	   .is-in で隠す指定が外れると同時に transition が付き、元の見た目（元の透明度）まで戻る。
	   .ew-rv-inner：1pxグリッドのセル等。枠と地色はそのまま、中身だけを動かす（セルごと透明にすると下のグリッド色が見えてしまう） */
	.ew-motion .ew-rv:not(.is-in),
	.ew-motion .ew-rv-inner:not(.is-in) > * {
		opacity: 0;
		translate: 0 20px;
	}

	.ew-motion .ew-rv--fade:not(.is-in) {
		translate: none;
	}

	.ew-motion .ew-rv.is-in,
	.ew-motion .ew-rv-inner.is-in > * {
		transition: opacity .9s var(--ew-ease-out), translate 1.1s var(--ew-ease-out);
		transition-delay: var(--ew-rv-delay, 0s);
	}

	.ew-motion .ew-rv--fade.is-in {
		transition-duration: 1.4s;
	}

	/* セルの中身（番号 → 見出し → 説明）にもわずかな時間差 */
	.ew-motion .ew-rv-inner.is-in > :nth-child(2) {
		transition-delay: calc(var(--ew-rv-delay, 0s) + .08s);
	}

	.ew-motion .ew-rv-inner.is-in > :nth-child(n+3) {
		transition-delay: calc(var(--ew-rv-delay, 0s) + .16s);
	}
}

/* --- 写真：リンク付きカードのホバーで写真をゆっくり拡大（実績カード・TOPの実績一覧） ---
   写真は div の背景画像なので、同じ背景を継いだ ::before を枠の中で拡大する（div ごと拡大すると枠からはみ出す）。
   カード全体を薄くする共通のホバー（.ew-page a:hover）は写真がくすむため、写真付きカードでは文字だけを薄くする */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.ew-work-card__img,
	.ew-works-list__thumb {
		position: relative;
		overflow: hidden;
	}

	.ew-work-card__img::before,
	.ew-works-list__thumb::before {
		content: "";
		position: absolute;
		inset: 0;
		background: inherit;
		transition: scale 1s var(--ew-ease-out);
	}

	.ew-work-card:hover .ew-work-card__img::before,
	.ew-work-card:focus-visible .ew-work-card__img::before,
	.ew-works-list__row:hover .ew-works-list__thumb::before,
	.ew-works-list__row:focus-visible .ew-works-list__thumb::before {
		scale: 1.06;
	}

	.ew-page a.ew-work-card:hover,
	.ew-page a.ew-works-list__row:hover {
		opacity: 1;
	}

	.ew-work-card > *,
	.ew-works-list__row > * {
		transition: opacity .2s ease;
	}

	.ew-work-card:hover > :not(.ew-work-card__img),
	.ew-works-list__row:hover > :not(.ew-works-list__thumb) {
		opacity: .6;
	}
}

/* --- 写真：スクロールに合わせて枠の中でわずかに動く（TOPの自治体入口・事業ページ・実績詳細のメイン画像） ---
   CSS のスクロール連動アニメーション（Chrome・Edge・Safari 26 以降）。未対応のブラウザでは止まったまま。
   overflow:hidden の枠はそれ自体がスクロール枠扱いになり、中の写真に view() を付けても動かないため、
   枠のほうに名前付きのタイムラインを置いて、中の写真がそれを参照する */
@keyframes ew-parallax {
	from { translate: 0 -5%; }
	to   { translate: 0 5%; }
}

@supports (animation-timeline: view()) {
	@media screen and (prefers-reduced-motion: no-preference) {
		.ew-gov-entry__media,
		.ew-service-block__img,
		.ew-work-detail__hero:not(.ew-work-detail__hero--contain) {
			view-timeline: --ew-parallax block;
		}

		.ew-service-block__img {
			position: relative;
			overflow: hidden;
		}

		.ew-service-block__img::before {
			content: "";
			position: absolute;
			inset: 0;
			background: inherit;
		}

		/* 上下 5% 動かしても枠に隙間が出ないよう、12% 拡大しておく */
		.ew-gov-entry__media img,
		.ew-service-block__img::before,
		.ew-work-detail__hero:not(.ew-work-detail__hero--contain) img {
			scale: 1.12;
			animation: ew-parallax linear both;
			animation-timeline: --ew-parallax; /* animation の一括指定より後に書く（一括指定が timeline を既定値に戻すため） */
		}
	}
}


/* --------------------------------------------------------------------------
   11. ローディング画面（2026-10-15）
   template-parts/loader.php。サイトの外から来た最初のページだけ出す（判定と消す処理は inc/setup.php の <head> のスクリプト）。
   <html>.ew-loader-on＝表示中、.ew-loader-out＝フェードアウト中（同時にページの登場演出が動き出す）。
   ロゴの渦だけを台風と同じ反時計回りにゆっくり回す（社名の Eyewall＝台風の目を囲む雲の壁）。中央のEと社名は動かさない
   -------------------------------------------------------------------------- */
.ew-loader {
	display: none;
}

@media screen {
	.ew-loader-on .ew-loader {
		position: fixed;
		inset: 0;
		z-index: 10000; /* 固定ヘッダー(900)・SPメニュー(1000)より上 */
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 26px;
		background: var(--ew-color-bg);
		transition: opacity 1s ease, visibility 1s;
		/* 保険：消す処理が何かの理由で動かなくても、7秒後には必ず消える */
		animation: ew-loader-failsafe .4s ease 7s forwards;
	}

	.ew-loader-out .ew-loader {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}

	.ew-loader__mark,
	.ew-loader__name {
		display: block;
		fill: #06264d; /* ロゴ原本の紺（サイトの藍 --ew-color-navy とは別の色） */
	}

	.ew-loader__mark {
		animation: ew-in-fade .6s ease-out backwards;
	}

	.ew-loader__ring {
		transform-box: view-box;
		transform-origin: 50% 50%; /* マークの中心（パス化のときに中心を原点に合わせてある） */
		animation: ew-loader-swirl 2.4s cubic-bezier(.65, 0, .35, 1) infinite;
	}

	.ew-loader__name {
		animation: ew-in-up .9s var(--ew-ease-out) .25s backwards;
	}

	/* 表示中はページ側の登場演出（CSS animation）を止めておき、消え始めたら最初から再生する */
	.ew-loader-on:not(.ew-loader-out) main * {
		animation-play-state: paused !important;
	}

	/* 表示中は裏でスクロールさせない（通り過ぎた要素が出現前のまま残るため）。
	   スクロールバーの幅は確保しておき、解除したときにページが横にずれないようにする */
	html.ew-loader-on:not(.ew-loader-out) {
		overflow: hidden;
		scrollbar-gutter: stable;
	}
}

@keyframes ew-loader-swirl {
	to { rotate: -360deg; }
}

@keyframes ew-loader-failsafe {
	to { opacity: 0; visibility: hidden; }
}
