/* =====================================================
   WORSO Theme — Foundation Stylesheet
   2026-05-09 main.css から分割: 変数 / リセット / ヘッダー / フッター / ボタン / グローバル
   ベースカラー: WORSO カラーガイド 全体版 v1（2026-10）
   ===================================================== */

:root {
	/* カラーガイド。緑を足すときはここから派生させ、新規 hex を直書きしない。 */
	--worso-brand:              #006C63;
	--worso-green-strong:       #3EB388;
	--worso-green:              #69BC88;
	--worso-green-soft:         #BEDFC4;
	--worso-mist:               #DAEDE1;
	--worso-brand-mid:          var(--worso-green-strong);
	--worso-brand-bright:       var(--worso-green);
	--worso-brand-rgb:          0, 108, 99;
	--worso-brand-bright-rgb:   105, 188, 136;

	/* 透明度付き（rgba 直書き禁止。必ずこの定数を使う） */
	--worso-brand-a06: rgba(var(--worso-brand-rgb), 0.06);
	--worso-brand-a08: rgba(var(--worso-brand-rgb), 0.08);
	--worso-brand-a10: rgba(var(--worso-brand-rgb), 0.10);
	--worso-brand-a12: rgba(var(--worso-brand-rgb), 0.12);
	--worso-brand-a16: rgba(var(--worso-brand-rgb), 0.16);
	--worso-brand-a18: rgba(var(--worso-brand-rgb), 0.18);
	--worso-brand-a20: rgba(var(--worso-brand-rgb), 0.20);
	--worso-brand-a22: rgba(var(--worso-brand-rgb), 0.22);
	--worso-brand-a25: rgba(var(--worso-brand-rgb), 0.25);
	--worso-brand-a30: rgba(var(--worso-brand-rgb), 0.30);
	--worso-brand-a35: rgba(var(--worso-brand-rgb), 0.35);
	--worso-brand-a40: rgba(var(--worso-brand-rgb), 0.40);
	--worso-brand-a42: rgba(var(--worso-brand-rgb), 0.42);
	--worso-brand-a50: rgba(var(--worso-brand-rgb), 0.50);
	--worso-brand-a55: rgba(var(--worso-brand-rgb), 0.55);
	--worso-brand-bright-a35: rgba(var(--worso-brand-bright-rgb), 0.35);

	--worso-green-50:     #f5f9f7;
	--worso-green-75:     #edf4f1;
	--worso-green-80:     #f0f6f3;
	--worso-green-100:    #e0ede7;
	--worso-green-150:    #cce0d7;
	--worso-green-200:    #adcebf;
	--worso-green-300:    #8cbaa5;
	--worso-green-400:    var(--worso-brand-bright);
	--worso-green-500:    var(--worso-brand);
	--worso-green-600:    #00572e;
	--worso-green-650:    #004c28;
	--worso-green-700:    #004223;
	--worso-green-800:    #002e18;
	--worso-green-900:    #001a0e;
	--worso-green-deep:   #1a3d2c;

	--worso-lime:        var(--worso-green-400);
	--worso-lime-dk:     var(--worso-green-500);
	--worso-lime-bg:     var(--worso-green-100);
	--worso-lime-bdr:    var(--worso-green-300);
	--worso-g5:          var(--worso-green-650);
	--worso-g6:          var(--worso-green-800);

	--worso-ink:       #231F20;
	--worso-ink-dk:    #231F20;
	--worso-ink-lt:    #9CA3AF;
	--worso-ink-muted: #6B7280;
	--worso-bg-soft:   #F8FAFC;
	--worso-bg-muted:  var(--worso-bg-soft);
	--worso-slate:     var(--worso-ink-muted);
	--worso-mute:      #3c4250;
	--worso-border:    #dde0e6;
	--worso-line:      #cdd3dc;
	--worso-line-dk:   #b8c0cc;

	/* =====================================================
	 * Semantic text roles（全ページ共通。色はここだけを参照）
	 *   text         … 本文
	 *   text-strong  … 見出し・強調
	 *   text-muted   … リード・補足
	 *   text-faint   … キャプション・メタ
	 *   text-brand   … ブランド緑テキスト
	 * ページ個別で #hex や別の ink を直書きしない。
	 * ===================================================== */
	--worso-text:        var(--worso-ink);
	--worso-text-strong: var(--worso-ink-dk);
	--worso-text-muted:  var(--worso-ink-muted);
	--worso-text-faint:  var(--worso-ink-lt);
	--worso-text-brand:  var(--worso-brand);

	/* ダーク面（フッター等）の文字ロール — 明るい面と対になる */
	--worso-text-on-dark:        var(--worso-white);
	--worso-text-on-dark-muted:  var(--worso-white-75);
	--worso-text-on-dark-faint:  var(--worso-white-60);
	--worso-text-on-dark-dim:    var(--worso-white-50);

	--worso-home-text:   var(--worso-text);
	--worso-home-ink:    var(--worso-text-strong);
	--worso-home-sub:    var(--worso-text-muted);
	--worso-info-ink:    var(--worso-text);
	--worso-info-ink-navy: var(--worso-text-strong);

	--worso-red:       #DC2626;
	--worso-red-soft:  #E26B5D;

	/* セマンティック フォーム エラー（CF7 / 必須マーカー） */
	--worso-error-bg:    #FFF0F0;
	--worso-error-bg-2:  #FFF8FA;
	--worso-error-bdr:   #EE5599;
	--worso-error-text:  #CC2244;
	--worso-error-deep:  #992222;

	/* H1: ヒーロー背景グラデーション（page-*.php / archive-*.php 共通） */
	--worso-hero-overlay: linear-gradient(135deg, rgba(16,19,30,0.82) 0%, rgba(16,19,30,0.68) 50%, rgba(var(--worso-brand-rgb), 0.78) 100%);

	/* H2: カード共通ホバーシャドウ（services / case-studies / news / media-features） */
	--worso-card-shadow-hover: 0 16px 32px var(--worso-brand-a16);

	/* H3: タッチターゲット最小サイズ（WCAG 2.5.5 Level AAA / iOS HIG） */
	--worso-tap-min: 48px;

	--worso-amber-bg:     #FFFBE8;
	--worso-amber-bdr:    #F5D96B;

	/* 資料DL カテゴリ識別色（バッジ専用。ブランド緑とは別系統） */
	--worso-dl-cat-service-bg:    #ecf7e2;
	--worso-dl-cat-service-fg:    #2d8c2e;
	--worso-dl-cat-checklist-bg:  #e6f4dc;
	--worso-dl-cat-checklist-fg:  #1d8b1f;
	--worso-dl-cat-whitepaper-bg: #e8eefa;
	--worso-dl-cat-whitepaper-fg: #2a5fc0;
	--worso-dl-cat-profile-bg:    #f5edde;
	--worso-dl-cat-profile-fg:    #8a5a1a;
	--worso-dl-cat-template-bg:   #f1ebf8;
	--worso-dl-cat-template-fg:   #6b3fb6;
	--worso-dl-cat-guide-bg:      #ffeedf;
	--worso-dl-cat-guide-fg:      #c25d00;
	--worso-dl-card-border:       #d8e8c5;

	/* セカンダリ アクセント（ペルソナカード等で使用） */
	--worso-blue:      #1A6EB5;
	--worso-blue-bg:   #E8F4FF;
	--worso-blue-bdr:  #B8D8F0;

	--worso-lime-deep-1: var(--worso-green-900);

	/* Solid brand UI — primary ボタン / チェック / 番号バッジ / TOP で共有 */
	--worso-ui-fill:       var(--worso-lime-dk);
	--worso-ui-fill-hover: var(--worso-lime-deep-1);
	--worso-ui-on-fill:    var(--worso-white);

	/* Dark gradient endpoints（next-step / quote / philosophy で再利用） */
	--worso-ink-dk-teal: #1f2a2b;

	--worso-bg:        #F8FAFC;
	--worso-white:     #FFFFFF;
	--worso-page-canvas: var(--worso-white);

	--worso-white-75:  rgba(255, 255, 255, 0.75);
	--worso-white-60:  rgba(255, 255, 255, 0.60);
	--worso-white-50:  rgba(255, 255, 255, 0.50);
	--worso-white-10:  rgba(255, 255, 255, 0.10);
	--worso-shadow-sm: 0 1px 2px rgba(16, 19, 30, 0.04);

	--worso-header-h:    56px;  /* 固定ヘッダー実高。下層の上余白・ヒーローと揃える */
	--worso-fcta-w:      72px;  /* 右端の固定ボタン幅 */
	--worso-fcta-clear:  5.5rem; /* ボタンに本文が重ならない右余白 */
	--worso-container:    1280px;
	--worso-gutter:       24px;
	--worso-section-y:    96px;   /* 標準セクション縦余白 */
	--worso-section-y-sm: 72px;   /* 控えめセクション（軽量・帯状セクション用） */
	--worso-radius-sm:    8px;
	--worso-radius:      16px;
	--worso-radius-lg:   20px;
	--worso-radius-pill: 9999px;

	/* === Spacing scale ===
	 * 散在する padding / margin / gap の規則的な値を 7 段階に集約。
	 * 8の倍数を基本に + 4px / 12px / 20px の奇数値を採用。
	 * 直書き値の段階的置換に使用。
	 */
	--worso-sp-1:  4px;   /* hairline gap, icon padding */
	--worso-sp-2:  8px;   /* tight gap, badge padding */
	--worso-sp-3:  12px;  /* small gap, form row */
	--worso-sp-4:  16px;  /* base gap, card inner */
	--worso-sp-5:  20px;  /* medium gap */
	--worso-sp-6:  24px;  /* large gap, container gutter */
	--worso-sp-7:  32px;  /* card padding, section inner */
	--worso-sp-8:  40px;  /* large card padding */
	--worso-sp-9:  48px;  /* between blocks */
	--worso-sp-10: 64px;  /* large block separator */

	/* === Type scale（数値段階 — ヘッダー/フッター/UI 用） ===
	 * ページ本文には使わない。本文は下の Content type scale を使う。
	 */
	--worso-fs-2xs:   11px;  /* tiny meta / footer fine print */
	--worso-fs-xs:    12px;  /* chrome meta, badge */
	--worso-fs-sm:    13px;  /* chrome small */
	--worso-fs-base:  14px;  /* chrome body */
	--worso-fs-md:    15px;  /* chrome large */
	--worso-fs-lg:    16px;  /* button */
	--worso-fs-xl:    18px;  /* chrome sub heading */
	--worso-fs-2xl:   20px;  /* chrome card title */
	--worso-fs-3xl:   24px;  /* chrome h3 */
	--worso-fs-4xl:   28px;  /* chrome h2 */
	--worso-fs-5xl:   32px;
	--worso-fs-6xl:   40px;
	--worso-fs-display: 56px;
	--worso-fs-display-lg: 72px;

	/* === Content type scale（全ページ共通・overview / home 基準） ===
	 * ページ個別で font-size を上書きしない。コンポーネントはここだけを参照する。
	 * caption / body / subhead / title / hero
	 */
	--worso-fs-caption: 0.875rem;   /* 14px キャプション・メタ */
	--worso-fs-body:    1.0625rem;  /* 17px 本文・リード */
	--worso-fs-subhead: 1.125rem;   /* 18px 小見出し・カードタイトル */
	--worso-fs-title:   clamp(1.75rem, 2.9vw, 2.125rem); /* セクション見出し */
	--worso-fs-hero:    clamp(1.55rem, 2.35vw, 2.05rem);
	--worso-fs-hero-sub: clamp(1rem, 1.4vw, 1.15rem);
	--worso-fs-stat:    clamp(3.5rem, 7.5vw, 5.6rem); /* 大数字 */

	/* === Line height === */
	--worso-lh-tight: 1.3;
	--worso-lh-caption: 1.5;
	--worso-lh-snug:  1.5;
	--worso-lh-base:  1.7;
	--worso-lh-title: 1.45; /* セクション見出し */
	--worso-lh-body:  1.85; /* 本文 */

	/* === Font families（本文・英字・ディスプレイ） === */
	--worso-font-sans:    'Noto Sans JP', Inter, 'Hiragino Sans', -apple-system, system-ui, sans-serif;
	--worso-font-en:      Inter, 'Noto Sans JP', system-ui, sans-serif;
	--worso-font-display: 'Noto Sans JP', Inter, 'Hiragino Sans', system-ui, sans-serif;
	--worso-font-serif:   'Noto Serif JP', 'Hiragino Mincho ProN', 'Times New Roman', Georgia, serif;
	--worso-font-display-en: "Cormorant Garamond", "Big Caslon", Georgia, serif;

	/* home/info 互換エイリアス（既存参照を壊さない。新規は --worso-fs-* を使う） */
	--worso-home-fs-xs:       var(--worso-fs-caption);
	--worso-home-fs-body:     var(--worso-fs-body);
	--worso-home-fs-md:       var(--worso-fs-subhead);
	--worso-home-fs-subhead:  var(--worso-fs-subhead);
	--worso-home-fs-title:    var(--worso-fs-title);
	--worso-home-fs-hero:     var(--worso-fs-hero);
	--worso-home-fs-hero-sub: var(--worso-fs-hero-sub);
	--worso-home-fs-display:  var(--worso-fs-stat);
	--worso-home-lh-title:    var(--worso-lh-title);
	--worso-home-lh-subhead:  var(--worso-lh-title);
	--worso-home-lh-body:     var(--worso-lh-body);
	--worso-home-en-behind-h: clamp(72px, 8vw, 110px);
}

/* セクション右余白の縦英字。全ページ共通。先頭が切れないよう見出しと同じ位置から始める。 */
.worso-home-side-word {
	display: none;
}

@media (min-width: 1024px) {
	.worso-home-side-word {
		position: absolute;
		z-index: 0;
		top: 5rem;
		right: calc(var(--worso-fcta-w) + 1rem);
		display: block;
		opacity: 0.9;
		pointer-events: none;
	}

	img.worso-home-side-word {
		top: 5rem;
		right: auto;
		left: calc(100% - var(--worso-fcta-w) - 1rem);
		height: var(--worso-home-en-behind-h);
		width: auto;
		max-width: none;
		object-fit: contain;
		transform: rotate(90deg);
		transform-origin: top left;
	}

	/* Title Case の画像は大文字高が低いので、全大文字と同じ見た目の高さに補正する。 */
	.worso-info-company img.worso-home-side-word,
	.worso-info-access img.worso-home-side-word,
	.worso-page--about img.worso-home-side-word {
		height: calc(var(--worso-home-en-behind-h) * 550 / 417);
	}

	span.worso-home-side-word {
		font-family: var(--worso-font-display-en, "Cormorant Garamond", Georgia, serif);
		font-weight: 500;
		font-size: calc(var(--worso-home-en-behind-h) * 550 / 417);
		line-height: 1;
		letter-spacing: 0.06em;
		white-space: nowrap;
		color: rgb(206, 231, 216);
		writing-mode: vertical-rl;
		text-orientation: mixed;
		user-select: none;
	}
}

@media (max-width: 640px) {
	:root {
		--worso-home-en-behind-h: clamp(52px, 16vw, 72px);
	}
}

/* =====================================================
   Japanese-friendly text wrapping (全ページ共通)
   - keep-all: 単語/フレーズの不自然な分割を抑止
   - overflow-wrap: anywhere で長すぎる語のはみ出しを防止
   - line-break: strict で日本語の禁則処理を厳格化
   ===================================================== */
:where(body, .worso-section, .worso-page__content) {
	word-break: normal;
	overflow-wrap: anywhere;
	line-break: strict;
}
:where(h1, h2, h3, h4, h5, h6,
	.worso-section__title, .worso-section__eyebrow,
	.worso-page__hero-title, .worso-page__sec-title,
	.worso-cases__card-title, .worso-faq__q-text,
	.worso-media__card-title, .worso-page__leader-name,
	.worso-btn) {
	word-break: keep-all;
	overflow-wrap: anywhere;
	line-break: strict;
}

/* Reset light */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ===== Global focus ring (a11y) ===== */
:where(a, button, input, select, textarea, [role="button"], [role="menuitem"], [tabindex]):focus {
	outline: none;
}
:where(a, button, input, select, textarea, [role="button"], [role="menuitem"], [tabindex]):focus-visible {
	outline: 2px solid var(--worso-lime-dk);
	outline-offset: 2px;
	border-radius: 4px;
}
.worso-btn:focus-visible {
	outline-offset: 3px;
}
/* Focus ring on dark backgrounds (hero, drawer etc.) */
.worso-page__hero :focus-visible,
.worso-hero :focus-visible,
.worso-footer :focus-visible {
	outline-color: var(--worso-lime);
	outline-offset: 3px;
}
body {
	margin: 0;
	font-family: var(--worso-font-sans);
	font-size: var(--worso-fs-body);
	font-weight: 400;
	line-height: var(--worso-lh-body);
	color: var(--worso-text);
	background: var(--worso-page-canvas);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--worso-text-strong); text-decoration: none; }
a:hover { opacity: .85; }

/* 見出しの共通ベース（ページ個別で色・サイズを上書きしない） */
:where(h1, h2, h3, h4, h5, h6) {
	color: var(--worso-text-strong);
	font-weight: 700;
	line-height: var(--worso-lh-title);
	letter-spacing: -0.01em;
}
:where(h1) { font-size: var(--worso-fs-hero); font-weight: 800; }
:where(h2) {
	font-size: var(--worso-fs-title);
	font-weight: 800;
	color: var(--worso-brand);
}
:where(h3) {
	font-size: var(--worso-fs-subhead);
	color: var(--worso-green-strong);
}
:where(h4) { font-size: var(--worso-fs-subhead); font-weight: 600; }
:where(h5),
:where(h6) { font-size: var(--worso-fs-body); font-weight: 600; }
:where(p, li) {
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}
:where(small, .worso-meta, .worso-caption) {
	font-size: var(--worso-fs-caption);
	color: var(--worso-text-faint);
	line-height: var(--worso-lh-snug);
}

/* Container */
.worso-container {
	max-width: var(--worso-container);
	margin: 0 auto;
	padding: 0 var(--worso-gutter);
}
/* Wider gutter on desktop for modern airy feel (Stripe/Linear-style) */
@media (min-width: 1024px) {
	.worso-container { padding-left: 32px; padding-right: 32px; }
}
@media (max-width: 640px) {
	.worso-container { padding-left: 20px; padding-right: 20px; }
}

/* Section base */
.worso-section {
	padding: var(--worso-section-y) 0;
}
.worso-section__title {
	font-size: var(--worso-fs-title);
	font-weight: 800;
	line-height: var(--worso-lh-title);
	margin: 0 0 32px;
	text-align: center;
	color: var(--worso-text-strong);
	letter-spacing: -0.01em;
}

/* Section eyebrow — dash + label (参考サイト準拠) */
.worso-section__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--worso-sp-3);
	font-size: var(--worso-fs-sm);
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--worso-text-brand);
	margin-bottom: 16px;
}
.worso-section__eyebrow::before {
	content: "";
	display: inline-block;
	width: 28px;
	height: 2px;
	background: var(--worso-lime);
}

/* ===== x-cloak (hide Alpine elements until ready) ===== */
[x-cloak] { display: none !important; }

/* ===== Skip link (accessibility) ===== */
.worso-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--worso-ink-dk);
	color: var(--worso-white);
	padding: var(--worso-sp-3) var(--worso-sp-4);
	z-index: 200;
	border-radius: 0 0 8px 0;
}
.worso-skip-link:focus { left: 0; }

/* ===== Header =====
 * ロゴ左 / ナビ中央 / 言語右。白ベースにブランド緑の気配だけ足す。
 */
.worso-header-wrap {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	overflow: visible;
	isolation: isolate;
}
/* WP 管理バー表示時は下にずらす */
.admin-bar .worso-header-wrap { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .worso-header-wrap { top: 46px; }
}
.worso-header {
	position: relative;
	height: var(--worso-header-h);
	box-sizing: border-box;
	background-color: rgba(255, 255, 255, 0.97);
	backdrop-filter: saturate(1.2) blur(10px);
	-webkit-backdrop-filter: saturate(1.2) blur(10px);
	border-bottom: 0;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.8) inset,
		0 8px 28px rgba(16, 19, 30, 0.045);
	overflow: visible;
}
/* 下端のブランドアクセントライン */
.worso-header::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(var(--worso-brand-rgb), 0.18) 18%,
		rgba(var(--worso-brand-rgb), 0.55) 50%,
		rgba(var(--worso-brand-rgb), 0.18) 82%,
		transparent 100%
	);
	pointer-events: none;
	z-index: 6;
}
.worso-header__inner {
	position: relative;
	height: 100%;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	overflow: visible;
}
.worso-header__logo {
	position: absolute;
	top: 50%;
	left: 16px;
	transform: translateY(-50%);
	z-index: 2;
	display: block;
	line-height: 0;
	flex-shrink: 0;
}
.worso-header__logo .custom-logo-link {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	line-height: 1;
	text-decoration: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.worso-header__tagline {
	display: block;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.04em;
	color: var(--worso-text-brand);
	white-space: nowrap;
}
.worso-header__logo .custom-logo-link:hover {
	opacity: 0.88;
	transform: translateY(-1px);
}
.worso-header__logo .custom-logo {
	display: block;
	height: auto;
	max-height: 32px;
	width: auto;
	max-width: 200px;
	object-fit: contain;
	object-position: left center;
	overflow: visible;
}
.worso-header__logo > a {
	display: inline-flex;
	align-items: center;
	flex-direction: column;
	text-decoration: none;
	line-height: 1.05;
	color: var(--worso-text-strong);
}
.worso-header__logo-mark { font-size: var(--worso-fs-xl); font-weight: 800; letter-spacing: .02em; }
.worso-header__logo-sub { font-size: var(--worso-fs-2xs); color: var(--worso-text-faint); letter-spacing: .02em; margin-top: 1px; }

/* ナビは画面中央の帯に配置
 * transform を使うと containing block になりサブがクリップされるため margin で中央寄せ。
 */
.worso-header__nav {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	z-index: 5;
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: clamp(720px, 72vw, 1067px);
	max-width: calc(100% - 360px);
	min-width: 0;
	margin-left: auto;
	margin-right: auto;
	overflow: visible;
}
.worso-header__nav .worso-menu,
.worso-header__nav .worso-menu li,
.worso-header__nav .worso-menu a {
	pointer-events: auto;
}
.worso-header__actions {
	position: absolute;
	top: 50%;
	right: 16px;
	transform: translateY(-50%);
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: nowrap;
	flex-shrink: 0;
}
.worso-header__actions > * { flex-shrink: 0; }

/* ===== Primary Menu ===== */
.worso-menu {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	padding: 0;
	align-items: stretch;
	justify-content: center;
	height: 100%;
}
.worso-menu > li {
	position: relative;
	margin: 0 0 0 1.75em;
	padding: 0;
	display: flex;
	align-items: center;
	height: 100%;
}
.worso-menu > li:first-child { margin-left: 0; }
.worso-menu > li > a {
	display: flex;
	align-items: center;
	align-self: center;
	position: relative;
	height: auto;
	padding: 0.45rem 0 0.6rem;
	font-size: var(--worso-fs-md);
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.4;
	color: var(--worso-text-strong);
	text-decoration: none;
	border-radius: 0;
	white-space: nowrap;
	background: transparent;
	transition: color .2s ease;
}
/* ホバー／カレント共通の下線（scaleX でスライドイン） */
.worso-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.1rem;
	height: 2px;
	border-radius: 2px;
	background: var(--worso-brand);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.worso-menu > li > a:hover {
	color: var(--worso-brand);
	background: transparent;
	opacity: 1;
}
.worso-menu > li > a:hover::after {
	transform: scaleX(1);
}
.worso-menu > li.current-menu-item > a,
.worso-menu > li.current-menu-parent > a,
.worso-menu > li.current-menu-ancestor > a {
	color: var(--worso-brand);
	font-weight: 700;
	background: transparent;
	opacity: 1;
}
.worso-menu > li.current-menu-item > a::after,
.worso-menu > li.current-menu-parent > a::after,
.worso-menu > li.current-menu-ancestor > a::after {
	transform: scaleX(1);
}
/* ドロップダウンあり: 右端に ▼（::after 下線と分離） */
.worso-menu > li.menu-item-has-children > a {
	padding-right: 16px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2310131e' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1px center;
	background-size: 8px 5px;
	transition: color .2s ease, background-image .2s ease;
}
.worso-menu > li.menu-item-has-children > a::after {
	right: 16px; /* シェブロン下には下線を伸ばさない */
}
.worso-menu > li.menu-item-has-children > a:hover,
.worso-menu > li.menu-item-has-children.current-menu-item > a,
.worso-menu > li.menu-item-has-children.current-menu-parent > a,
.worso-menu > li.menu-item-has-children.current-menu-ancestor > a {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23006636' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
}

.worso-menu .sub-menu {
	position: absolute;
	top: calc(100% - 2px);
	left: 50%;
	min-width: 13.5em;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: rgba(255, 255, 255, 0.98);
	border: 1px solid rgba(16, 19, 30, 0.07);
	border-radius: 12px;
	box-shadow:
		0 4px 6px rgba(16, 19, 30, 0.03),
		0 16px 40px rgba(16, 19, 30, 0.1);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(-50%, 6px);
	transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
	z-index: 1200;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	overflow: visible;
}
/* 事業内容。クリックした行の直下に、次の段だけを足す。
 * 位置は「事業内容」の左端。 */
.worso-menu > li > .sub-menu:has(.sub-menu) {
	position: absolute;
	top: calc(100% - 2px);
	left: 0;
	width: max-content;
	min-width: 15rem;
	max-width: none;
	min-height: 0;
	padding: 0;
	display: block;
	border-radius: 0 0 var(--worso-radius-sm) var(--worso-radius-sm);
	background: var(--worso-white);
	transform: none;
	overflow: visible;
}
.worso-menu > li > .sub-menu:has(.sub-menu)::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -14px;
	height: 14px;
}
.worso-menu > li:hover > .sub-menu:has(.sub-menu),
.worso-menu > li:focus-within > .sub-menu:has(.sub-menu) {
	transform: none;
}
.worso-menu > li > .sub-menu:has(.sub-menu) > li {
	position: static;
	width: auto;
}
.worso-menu > li > .sub-menu:has(.sub-menu) > li > a,
.worso-menu > li > .sub-menu:has(.sub-menu) .sub-menu > li > a {
	display: flex;
	align-items: center;
	min-height: 48px;
	margin: 0;
	padding: 10px 16px;
	border-radius: 0;
	font-size: var(--worso-fs-sm);
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.02em;
	white-space: normal;
	color: var(--worso-text-strong);
	background: transparent;
}
.worso-menu > li > .sub-menu:has(.sub-menu) > li:hover > a,
.worso-menu > li > .sub-menu:has(.sub-menu) > li.is-open > a {
	background-color: var(--worso-brand);
	color: var(--worso-white);
	opacity: 1;
}
.worso-menu > li > .sub-menu:has(.sub-menu) a::before,
.worso-menu > li > .sub-menu:has(.sub-menu) a::after {
	display: none;
}
/* 次の段は、クリックで開いた行のすぐ下に出す。横には出さない。 */
.worso-menu > li > .sub-menu:has(.sub-menu) .sub-menu {
	display: none;
	position: static;
	top: auto;
	left: auto;
	width: auto;
	height: auto;
	min-height: 0;
	min-width: 0;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	transform: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}
.worso-menu > li > .sub-menu:has(.sub-menu) > li.is-open > .sub-menu,
.worso-menu > li > .sub-menu:has(.sub-menu) .sub-menu > li.is-open > .sub-menu {
	display: block;
}
.worso-menu > li > .sub-menu:has(.sub-menu) .sub-menu > li > a {
	min-height: 40px;
	padding-left: 28px;
	font-weight: 500;
	background-color: transparent;
	color: var(--worso-text-strong);
}
.worso-menu > li > .sub-menu:has(.sub-menu) .sub-menu > li:hover > a,
.worso-menu > li > .sub-menu:has(.sub-menu) .sub-menu > li.is-open > a {
	background-color: #60b880; /* info_title_triangle.webp の下側の緑 */
	color: var(--worso-text-strong);
	padding-left: 28px;
	opacity: 1;
}
.worso-menu > li > .sub-menu:has(.sub-menu) .sub-menu .sub-menu > li > a {
	padding-left: 44px;
	font-weight: 400;
}
.worso-menu > li > .sub-menu:has(.sub-menu) .sub-menu .sub-menu > li:hover > a {
	background-color: var(--worso-brand-a08);
	color: var(--worso-text-brand);
}

/* 親リンクからサブへの移動用ヒット領域 */
.worso-menu > li.menu-item-has-children::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 10px;
	pointer-events: auto;
}
.worso-menu > li:hover > .sub-menu,
.worso-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0);
}
.worso-menu .sub-menu li { margin: 0; padding: 0; }
.worso-menu .sub-menu li a {
	display: block;
	position: relative;
	padding: 11px 14px 11px 16px;
	font-size: var(--worso-fs-base);
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--worso-text-strong);
	text-decoration: none;
	border-radius: 8px;
	line-height: 1.5;
	white-space: nowrap;
	background: transparent;
	border-bottom: none;
	transition: background .15s ease, color .15s ease, padding-left .15s ease;
}
.worso-menu .sub-menu li a::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 50%;
	width: 3px;
	height: 0;
	border-radius: 2px;
	background: var(--worso-brand);
	transform: translateY(-50%);
	transition: height .18s ease;
}
.worso-menu .sub-menu li a:hover {
	background: var(--worso-brand-a08);
	color: var(--worso-brand);
	padding-left: 18px;
	opacity: 1;
}
.worso-menu .sub-menu li a:hover::before {
	height: 1.1em;
}
.worso-menu .sub-menu li.current-menu-item > a {
	color: var(--worso-brand);
	font-weight: 700;
	background: var(--worso-brand-a10);
}
.worso-menu .sub-menu li.current-menu-item > a::before {
	height: 1.1em;
}

/* 企業情報など、子を持たない短いリスト。行の高さ・文字・ホバーは事業内容の左列と同じ。幅は文字分。 */
.worso-menu > li > .sub-menu:not(:has(.sub-menu)) {
	left: 0;
	width: max-content;
	min-width: 0;
	padding: 0;
	border-radius: 0 0 var(--worso-radius-sm) var(--worso-radius-sm);
	background: var(--worso-white);
	transform: none;
}
.worso-menu > li:hover > .sub-menu:not(:has(.sub-menu)),
.worso-menu > li:focus-within > .sub-menu:not(:has(.sub-menu)) {
	transform: none;
}
.worso-menu > li > .sub-menu:not(:has(.sub-menu)) > li + li {
	border-top: 1px solid var(--worso-line);
}
.worso-menu > li > .sub-menu:not(:has(.sub-menu)) > li > a {
	display: flex;
	align-items: center;
	min-height: 52px;
	margin: 0;
	padding: 10px 16px;
	border-radius: 0;
	font-size: var(--worso-fs-sm);
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.02em;
	color: var(--worso-text-strong);
}
.worso-menu > li > .sub-menu:not(:has(.sub-menu)) > li > a::before {
	display: none;
}
.worso-menu > li > .sub-menu:not(:has(.sub-menu)) > li > a:hover,
.worso-menu > li > .sub-menu:not(:has(.sub-menu)) > li > a:focus-visible,
.worso-menu > li > .sub-menu:not(:has(.sub-menu)) > li.current-menu-item > a {
	background: var(--worso-brand);
	color: var(--worso-white);
	padding: 10px 16px;
	opacity: 1;
}

/* ===== Language switcher ===== */
.worso-lang { position: relative; flex-shrink: 0; margin-left: 0; }
.worso-lang__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 8px 14px 8px 12px;
	min-height: 0;
	min-width: 0;
	font-size: var(--worso-fs-base);
	font-weight: 600;
	letter-spacing: 0.12em;
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid rgba(var(--worso-brand-rgb), 0.2);
	border-radius: 999px;
	color: var(--worso-brand);
	cursor: pointer;
	line-height: 1;
	white-space: nowrap;
	flex-shrink: 0;
	box-shadow: 0 1px 2px rgba(16, 19, 30, 0.04);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.worso-lang__toggle:hover,
.worso-lang__toggle[aria-expanded="true"] {
	background: var(--worso-brand-a08);
	border-color: rgba(var(--worso-brand-rgb), 0.4);
	color: var(--worso-brand);
	box-shadow: 0 4px 12px rgba(var(--worso-brand-rgb), 0.12);
	transform: translateY(-1px);
}
.worso-lang__globe {
	flex-shrink: 0;
	opacity: 0.78;
}
.worso-lang__current { display: inline-flex; align-items: center; color: inherit; }
.worso-lang__chev {
	flex-shrink: 0;
	opacity: 0.5;
	color: inherit;
	width: 10px;
	height: 10px;
	transition: transform .2s ease;
}
.worso-lang__toggle[aria-expanded="true"] .worso-lang__chev { transform: rotate(180deg); }
.worso-lang__flag-wrap { display: none; }
.worso-lang__menu {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	min-width: 12em;
	background: rgba(255, 255, 255, 0.98);
	border: 1px solid rgba(16, 19, 30, 0.07);
	border-radius: 14px;
	box-shadow:
		0 4px 6px rgba(16, 19, 30, 0.03),
		0 16px 36px rgba(16, 19, 30, 0.1);
	list-style: none;
	margin: 0;
	padding: 8px;
	z-index: 120;
	overflow: hidden;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
.worso-lang__menu li + li { border-top: none; }
.worso-lang__menu a {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	padding: 10px 12px;
	min-height: 0;
	font-size: var(--worso-fs-base);
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--worso-text-strong);
	text-decoration: none;
	border-radius: 9px;
	white-space: nowrap;
	background: transparent;
	border-bottom: none;
	transition: background .15s ease, color .15s ease;
}
.worso-lang__menu a:hover {
	background: var(--worso-brand-a08);
	color: var(--worso-brand);
	opacity: 1;
}
.worso-lang__menu a.is-current {
	color: var(--worso-brand);
	font-weight: 700;
	background: var(--worso-brand-a10);
}
.worso-lang__menu-code {
	flex: 0 0 1.8em;
	font-size: var(--worso-fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	opacity: 0.55;
}
.worso-lang__menu a.is-current .worso-lang__menu-code,
.worso-lang__menu a:hover .worso-lang__menu-code {
	opacity: 0.95;
}
.worso-lang__menu-label { flex: 1; }

/* ===== Mobile hamburger =====
 * 白ヘッダー上なので枠・塗りは付けない。線だけにする。 */
.worso-header__toggle {
	display: none;
	width: var(--worso-tap-min);
	height: var(--worso-tap-min);
	min-width: var(--worso-tap-min);
	min-height: var(--worso-tap-min);
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	padding: 0;
	box-shadow: none;
	transition: opacity .18s ease;
}
.worso-header__toggle:hover {
	opacity: 0.72;
}
.worso-header__toggle[aria-expanded="true"] {
	opacity: 1;
}
.worso-header__toggle-bar,
.worso-header__toggle-bar::before,
.worso-header__toggle-bar::after {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--worso-ink-dk);
	border-radius: 2px;
	transition: transform .2s ease, top .2s ease, background .2s ease;
	position: relative;
}
.worso-header__toggle-bar::before,
.worso-header__toggle-bar::after {
	content: "";
	position: absolute;
	left: 0;
}
.worso-header__toggle-bar::before { top: -6px; }
.worso-header__toggle-bar::after  { top: 6px; }
.worso-header__toggle-bar.is-open { background: transparent; }
.worso-header__toggle-bar.is-open::before { top: 0; transform: rotate(45deg); background: var(--worso-brand); }
.worso-header__toggle-bar.is-open::after  { top: 0; transform: rotate(-45deg); background: var(--worso-brand); }

/* ===== Mobile drawer =====
 * z-index: 99 (= header z:100 - 1) で sticky header の直下に重なる。
 * inset は --worso-header-h（ヘッダー実高）と同期しておくこと。
 * 注意: 親に backdrop-filter / transform 等を持つ要素があると containing block が
 * 変わり viewport-fixed が崩れるため、本ドロワーは <header> の外側に配置している
 * （header.php の .worso-header-wrap 直下）。
 */
.worso-drawer {
	position: fixed;
	inset: var(--worso-header-h) 0 0 0;
	background: var(--worso-white);
	z-index: 1100;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	border-top: 1px solid rgba(16, 19, 30, 0.06);
}
@media (max-width: 640px) {
	:root { --worso-header-h: 52px; }
}
.worso-drawer__lang {
	display: flex;
	flex-wrap: wrap;
	gap: var(--worso-sp-2);
	margin: 0 0 16px;
	padding: var(--worso-sp-3) 0;
	border-bottom: 1px solid rgba(16, 19, 30, 0.06);
}
.worso-drawer__lang-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--worso-sp-2);
	min-width: 76px;
	padding: 9px 16px;
	border: 1px solid rgba(var(--worso-brand-rgb), 0.18);
	border-radius: 999px;
	color: var(--worso-text-strong);
	font-size: var(--worso-fs-md);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.worso-drawer__lang-item:hover {
	background: var(--worso-brand-a06);
	border-color: rgba(var(--worso-brand-rgb), 0.35);
	color: var(--worso-brand);
}
.worso-drawer__lang-item.is-current {
	background: var(--worso-brand-a10);
	border-color: rgba(var(--worso-brand-rgb), 0.45);
	color: var(--worso-brand);
	font-weight: 700;
}
.worso-drawer__inner {
	padding: 24px var(--worso-gutter);
	max-width: var(--worso-container);
	margin: 0 auto;
}
.worso-drawer__menu {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
}
.worso-drawer__menu a {
	display: flex;
	align-items: center;
	padding: 14px 12px;
	min-height: 48px;
	box-sizing: border-box;
	font-size: var(--worso-fs-md);
	font-weight: 600;
	letter-spacing: 0.03em;
	color: var(--worso-text-strong);
	text-decoration: none;
	border-bottom: 1px solid rgba(16, 19, 30, 0.06);
	border-radius: 0;
	transition: color .15s ease, background .15s ease, padding-left .15s ease;
	pointer-events: auto;
	position: relative;
	z-index: 1;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0.08);
}
.worso-drawer__menu a:hover {
	color: var(--worso-brand);
	background: var(--worso-brand-a06);
	padding-left: 16px;
}
.worso-drawer__menu > .menu-item-has-children > a {
	font-weight: 700;
}
.worso-drawer__menu > .current-menu-item > a,
.worso-drawer__menu > .current-menu-parent > a,
.worso-drawer__menu > .current-menu-ancestor > a {
	color: var(--worso-brand);
	font-weight: 700;
	box-shadow: inset 3px 0 0 var(--worso-brand);
	background: var(--worso-brand-a06);
}
.worso-drawer__menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 4px 0 4px 12px;
	background: var(--worso-green-50);
	pointer-events: auto;
	border-radius: 0 0 8px 8px;
}
.worso-drawer__menu .sub-menu a {
	font-size: var(--worso-fs-base);
	font-weight: 500;
	color: var(--worso-text-faint);
	padding: 12px 12px;
	min-height: 44px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	pointer-events: auto;
	position: relative;
	z-index: 1;
	border-bottom-color: rgba(16, 19, 30, 0.04);
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0.08);
}
.worso-drawer__menu .sub-menu .current-menu-item > a {
	color: var(--worso-brand);
	font-weight: 700;
}
.worso-drawer__menu .sub-menu .sub-menu {
	padding: 0 0 2px 10px;
	background: transparent;
	border-radius: 0;
}
.worso-drawer__menu .sub-menu .sub-menu > .menu-item-has-children > a {
	min-height: 36px;
	padding-top: 10px;
	padding-bottom: 2px;
	font-size: var(--worso-fs-sm);
	font-weight: 700;
	color: var(--worso-text-muted);
}
.worso-drawer__menu .sub-menu .sub-menu .sub-menu {
	padding-left: 10px;
}
.worso-drawer__menu .sub-menu .sub-menu .sub-menu a {
	min-height: 40px;
	font-size: var(--worso-fs-sm);
	font-weight: 500;
	color: var(--worso-text);
}

/* ===== Buttons (pill shape per reference design) ===== */
.worso-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--worso-sp-2);
	padding: 14px 28px;
	border-radius: var(--worso-radius-pill);
	font-weight: 700;
	font-size: var(--worso-fs-base);
	transition: all .2s ease;
	white-space: nowrap;
	border: 1.5px solid transparent;
	line-height: 1;
}

.worso-btn--primary {
	background: var(--worso-ui-fill);
	color: var(--worso-ui-on-fill);
}
.worso-btn--primary:hover {
	background: var(--worso-ui-fill-hover);
	color: var(--worso-ui-on-fill);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px var(--worso-brand-a35);
	opacity: 1;
}

.worso-btn--secondary {
	background: var(--worso-white);
	color: var(--worso-text-strong);
	border-color: var(--worso-border);
}
.worso-btn--secondary:hover {
	border-color: var(--worso-lime-dk);
	color: var(--worso-lime-dk);
	transform: translateY(-1px);
	opacity: 1;
}

/* Ghost retained as alias for back-compat; on white it's identical to secondary */
.worso-btn--ghost {
	background: transparent;
	color: var(--worso-text-strong);
	border-color: var(--worso-border);
}
.worso-btn--ghost:hover {
	border-color: var(--worso-lime-dk);
	color: var(--worso-lime-dk);
	transform: translateY(-1px);
	opacity: 1;
}

/* ===== Footer（シンプル） ===== */
.worso-footer {
	background: var(--worso-brand);
	color: var(--worso-text-on-dark);
	font-family: var(--worso-font-sans);
	font-size: var(--worso-fs-caption);
	line-height: var(--worso-lh-base);
	padding: var(--worso-sp-10) 0 var(--worso-sp-5);
	margin-top: 0;
}
.worso-footer a {
	color: var(--worso-text-on-dark-muted);
	text-decoration: none;
}
.worso-footer a:hover {
	color: var(--worso-text-on-dark);
	opacity: 1;
}
.worso-footer__inner { position: relative; }

.worso-footer__top {
	display: grid;
	grid-template-columns: 1.2fr 2.8fr;
	gap: var(--worso-sp-9);
	padding-bottom: var(--worso-sp-7);
	border-bottom: 1px solid var(--worso-white-10);
}
.worso-footer__brand {
	display: flex;
	flex-direction: column;
	gap: var(--worso-sp-4);
}
.worso-footer__logo {
	display: inline-flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--worso-text-on-dark);
	line-height: 1.2;
}
.worso-footer__logo:hover {
	color: var(--worso-text-on-dark);
	opacity: 1;
}
.worso-footer__logo strong {
	font-size: var(--worso-fs-xl);
	font-weight: 800;
	color: var(--worso-text-on-dark);
}
.worso-footer__tagline {
	font-size: var(--worso-fs-xs);
	color: var(--worso-text-on-dark-faint);
	margin-top: 2px;
}
.worso-footer__lead {
	font-size: var(--worso-fs-caption);
	line-height: var(--worso-lh-body);
	color: var(--worso-text-on-dark-muted);
	margin: 0;
	max-width: 32ch;
}
.worso-footer__sns {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: var(--worso-sp-4);
}
.worso-footer__sns a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: var(--worso-text-on-dark-muted);
	border: none;
	background: transparent;
	border-radius: 0;
}
.worso-footer__sns a:hover {
	color: var(--worso-text-on-dark);
	opacity: 1;
	background: transparent;
	transform: none;
}

.worso-footer__cols {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--worso-sp-6);
}
.worso-footer__heading {
	margin: 0 0 var(--worso-sp-3);
	font-size: var(--worso-fs-caption);
	font-weight: 700;
	line-height: var(--worso-lh-snug);
	letter-spacing: normal;
	text-transform: none;
	color: var(--worso-text-on-dark);
}
.worso-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.worso-footer__menu li { margin: 0 0 6px; }
.worso-footer__menu a {
	font-size: var(--worso-fs-caption);
	line-height: var(--worso-lh-snug);
	color: var(--worso-text-on-dark-muted);
}
.worso-footer__menu a:hover {
	color: var(--worso-text-on-dark);
	opacity: 1;
}

.worso-footer__address {
	font-style: normal;
	font-size: var(--worso-fs-caption);
	line-height: var(--worso-lh-body);
	color: var(--worso-text-on-dark-muted);
	margin: 0;
}
.worso-footer__address a,
.worso-footer__email {
	color: var(--worso-text-on-dark-muted);
	font-weight: 400;
}
.worso-footer__address a:hover,
.worso-footer__email:hover {
	color: var(--worso-text-on-dark);
	text-decoration: underline;
	opacity: 1;
}
.worso-footer__cta { width: 100%; justify-content: center; }

.worso-footer__bottom {
	padding-top: var(--worso-sp-5);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--worso-sp-3);
}
.worso-footer__copy {
	margin: 0;
	font-size: var(--worso-fs-xs);
	color: var(--worso-text-on-dark-dim);
}
.worso-footer__legal {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--worso-sp-4);
}
.worso-footer__legal a {
	font-size: var(--worso-fs-xs);
	color: var(--worso-text-on-dark-faint);
}
.worso-footer__legal a:hover {
	color: var(--worso-text-on-dark);
	opacity: 1;
}

/* ===== Mobile (global) ===== */
@media (max-width: 1024px) {
	.worso-header__nav { display: none; }
	.worso-header__toggle { display: inline-flex; }
	.worso-lang { display: none; }
	/* キャッチフレーズがメニューボタンに重ならないよう、ボタンの手前で止める。 */
	.worso-header__logo {
		right: 68px;
		max-width: calc(100% - 16px - 68px);
	}
	.worso-header__logo .custom-logo-link {
		max-width: 100%;
		flex-wrap: wrap;
		row-gap: 0;
	}
	.worso-header__logo .custom-logo { flex-shrink: 0; }
	.worso-header__actions {
		top: 50%;
		transform: translateY(-50%);
		right: 12px;
	}
	.worso-footer__top { grid-template-columns: 1fr; gap: var(--worso-sp-8); }
	.worso-footer__cols { grid-template-columns: repeat(2, 1fr); gap: var(--worso-sp-7); }
}
@media (min-width: 1025px) and (max-width: 1360px) {
	/* 英語のキャッチフレーズが中央ナビに重なる幅では、ナビを優先して文を隠す。 */
	.worso-header__tagline { display: none; }
}
@media (max-width: 380px) {
	/* 1行に収まらず下に折り返す幅。ヘッダーを高くして2行目を切らない。 */
	:root { --worso-header-h: 68px; }
}
@media (max-width: 640px) {
	.worso-header__logo {
		top: 50%;
		left: 16px;
		transform: translateY(-50%);
	}
	.worso-header__logo .custom-logo { max-height: 26px; max-width: 168px; }
	.worso-header__logo .custom-logo-link { gap: 6px; }
	.worso-header__tagline { font-size: 10px; letter-spacing: 0; }
	.worso-footer {
		padding: var(--worso-sp-10) 0 var(--worso-sp-5);
	}
	.worso-footer__cols { grid-template-columns: 1fr; gap: var(--worso-sp-7); }
	.worso-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* Utility */
.sr-only,
.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); border: 0;
}

/* ==========================================================================
   UI 改善パッチ (2026-05-09) — H2-H7 統合
   ========================================================================== */

/* H2: カード共通ホバー（services / case-studies / news / media-features を統一） */
.worso-services__card,
.worso-cs__card,
.worso-cs__archive-card,
.worso-news-column__card,
.worso-news__card,
.worso-downloads__card,
.worso-media__card:not(.worso-media__card--empty) {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.worso-services__card:hover,
.worso-cs__card:hover,
.worso-cs__archive-card:hover,
.worso-news-column__card:hover,
.worso-news__card:hover,
.worso-downloads__card:hover,
.worso-media__card:not(.worso-media__card--empty):hover {
	transform: translateY(-4px);
	box-shadow: var(--worso-card-shadow-hover);
}

/* H3: タッチターゲット最小 48px（モバイルのみ強制、デスクトップは既存サイズ維持） */
@media (max-width: 640px) {
	.worso-btn,
	.worso-fcta__btn,
	.worso-faq__item summary,
	.worso-archive__pagination a,
	.worso-archive__pagination .page-numbers {
		min-height: var(--worso-tap-min);
	}
	.worso-btn { padding: 14px 28px; }
	.worso-hero__cta,
	.worso-resources__cta { padding: 16px 32px; font-weight: 700; }
}

/* H6: Contact Form 7 バリデーションスタイル */
.wpcf7-form .wpcf7-not-valid {
	border-color: var(--worso-error-bdr) !important;
	background-color: var(--worso-error-bg-2);
	box-shadow: 0 0 0 3px rgba(238, 85, 153, 0.12);
}
.wpcf7-form .wpcf7-not-valid-tip {
	display: inline-block;
	margin-top: 6px;
	color: var(--worso-error-text);
	font-size: var(--worso-fs-sm);
	font-weight: 600;
}
.wpcf7-form .wpcf7-not-valid-tip::before {
	content: "⚠ ";
	margin-right: 4px;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border: 2px solid var(--worso-error-bdr);
	background: var(--worso-error-bg);
	color: var(--worso-error-deep);
	padding: 14px 18px;
	border-radius: 8px;
	font-weight: 600;
}
.wpcf7 form.sent .wpcf7-response-output {
	border: 2px solid var(--worso-lime-dk);
	background: var(--worso-green-100);
	color: var(--worso-green-800);
	padding: 14px 18px;
	border-radius: 8px;
	font-weight: 600;
}
.wpcf7-form input:focus-visible,
.wpcf7-form textarea:focus-visible,
.wpcf7-form select:focus-visible {
	outline: 2px solid var(--worso-lime-dk);
	outline-offset: 1px;
	border-color: var(--worso-lime-dk);
}
/* 必須マーク (CF7 ショートコード [your-name*] の wrap に付く想定の補助) */
.wpcf7-form .wpcf7-form-control-wrap[data-name*="*"]::after,
.wpcf7-form-required-mark {
	content: "必須";
	display: inline-block;
	margin-left: 6px;
	padding: 2px 6px;
	font-size: var(--worso-fs-2xs);
	font-weight: 700;
	color: var(--worso-error-text);
	background: var(--worso-error-bg);
	border-radius: 3px;
}

/* H7: FAQ アコーディオン操作性 */
.worso-faq__item summary,
details.worso-faq__item > summary {
	min-height: var(--worso-tap-min);
	padding: 14px 48px 14px 16px;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	-webkit-appearance: none;
	list-style: none;
	position: relative;
	transition: background-color 0.15s ease;
}
.worso-faq__item summary::-webkit-details-marker { display: none; }
.worso-faq__item summary:hover {
	background-color: var(--worso-green-50);
}
.worso-faq__item summary:focus-visible {
	outline: 3px solid var(--worso-lime-dk);
	outline-offset: -2px;
	border-radius: 4px;
}
.worso-faq__item summary::after {
	content: "";
	position: absolute;
	right: 18px;
	top: 50%;
	width: 12px;
	height: 12px;
	border-right: 2px solid var(--worso-lime-dk);
	border-bottom: 2px solid var(--worso-lime-dk);
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.2s ease;
}
.worso-faq__item[open] > summary::after {
	transform: translateY(-30%) rotate(-135deg);
}

/* H4: ドロワー × ボタン + ヘッダー */
.worso-drawer__header {
	display: flex;
	justify-content: flex-end;
	padding: 12px var(--worso-gutter) 0;
	max-width: var(--worso-container);
	margin: 0 auto;
}
.worso-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--worso-tap-min);
	height: var(--worso-tap-min);
	padding: 0;
	border: 1px solid var(--worso-border);
	border-radius: 999px;
	background: transparent;
	color: var(--worso-text-strong);
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.worso-drawer__close:hover {
	background: var(--worso-green-50);
	border-color: var(--worso-lime-dk);
	color: var(--worso-lime-dk);
}
.worso-drawer__close:focus-visible {
	outline: 3px solid var(--worso-lime-dk);
	outline-offset: 2px;
}

/* H5: ドロワー展開中の本文スクロール抑止（focus trap 補助） */
body.worso-no-scroll {
	overflow: hidden;
}

