:root{
	/* 色：既存パレットの変数化 */
	--c-primary:#006835;
	--c-primary-dark:#004D27;
	--c-text:#16291F;
	--c-accent:#8EC31F;
	--c-mint:#D6ECDD; /* 緑地の上の補足文、現状はこの色。今後は --c-white に置き換え予定（ページ側は未対応） */
	--c-footer-muted:#C3D5C9;
	--c-footer-faint:#A7BCAE;
	--c-bg-soft:#F5F9F6;
	--c-bg-pale:#EBF4EE;
	--c-border:#E1EAE4;
	--c-form-border:#C4D6CA;
	--c-muted-text:#3F5046;
	--c-error:#B3261E;
	--c-white:#FFFFFF;

	/* 文字サイズ：スマホ→PCでclamp()により滑らかに変化
	   基準ビューポート：375px(スマホ)〜1280px(PC)で線形補間 */
	--fs-body:clamp(16px, 15.59px + 0.11vw, 17px);
	--fs-lead:clamp(17px, 16.17px + 0.22vw, 19px);
	--fs-caption:clamp(14px, 13.59px + 0.11vw, 15px);
	--fs-h1-home:clamp(30px, 15.91px + 3.76vw, 64px);
	--fs-h1-sub:clamp(30px, 22.54px + 1.99vw, 48px);
	--fs-h1-case:clamp(26px, 21.05px + 1.32vw, 38px);
	--fs-h2:clamp(26px, 21.86px + 1.1vw, 36px);
	--fs-h2-cta:var(--fs-h2); /* 緑の帯の見出し。スマホ（520px以下）では1行に14文字入る大きさにする */
	--fs-h2-lead:clamp(26px, 19.5px + 1.75vw, 42px);
	--fs-h3:clamp(19px, 17.76px + 0.33vw, 22px);
	--fs-nav:16px;
	--fs-nav-mobile-open:17px;
	--fs-nav-en:15px; /* ヘッダーのメニューの英語（大きめ）と日本語（小さめ） */
	--fs-nav-ja:11px;
	--fs-nav-ja-mobile:13px;
	--fs-button:17px;
	--fs-footer-menu:15px;
	--fs-copyright:13px;

	/* 角丸：4種類に整理 */
	--cta-gutter:32px; /* 緑の帯の外側（section）の左右の余白 */
	--cta-pad-y:64px; /* 緑の帯の内側の上下の余白 */
	--cta-pad-x:48px; /* 緑の帯の内側の左右の余白 */

	--radius-sm:12px;
	--radius-card:20px;
	--radius-pill:999px;
	--radius-circle:50%;

	/* 影 */
	--shadow-card:0 8px 24px rgba(26,39,51,.10);
	--shadow-card-hover:0 14px 32px rgba(26,39,51,.14);
	--transition-fast:.2s;

	/* ロゴの高さ */
	--logo-h-desktop:56px;
	--logo-h-mobile:44px;

	/* ヘッダー（いつも画面の上に固定。スクロールすると縮む）。高さは、ヘッダーの中身（余白＋ロゴ）と合わせてある */
	--header-h:92px; /* 上までスクロールしているときの高さ。ヘッダーの下に隠れないよう、本文の上の余白にも使う */
	--header-pad-y:18px;
	--header-pad-y-scrolled:12px; /* ロゴ40px＋上下12px＝約64px */
	--logo-h-scrolled:40px;
	--anchor-offset:80px; /* ページ内リンクで飛んだとき、見出しがヘッダーの下に隠れないための余白 */
	--header-shadow:0 2px 12px rgba(22,41,31,.10);
	--header-transition:.25s ease;
}
/* ブレークポイント（CSS変数は@mediaの条件には使えないため、1023px / 960px / 520px を直接指定している）
   1023px：ヘッダーのメニューが開閉式になる幅（英語と日本語の2段にした6項目のメニューが、ロゴと詰まらずに1行に収まるのは1024px以上）
   960px：フッター・「ご支援の流れ」・ジャーナルの一覧の列数が、タブレット向けの並びになる幅
   520px：スマホ向けの並び */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--anchor-offset)}
body:not(.home){padding-top:var(--header-h)}
body{margin:0;font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;font-size:var(--fs-body);color:var(--c-text);background:var(--c-white);line-height:1.9;-webkit-font-smoothing:antialiased}
p{margin:0 0 1em}
h1{margin:0;font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-weight:900;line-height:1.4;font-size:var(--fs-h1-sub)}
.home h1{font-size:var(--fs-h1-home)}
h2{margin:0;font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-weight:900;line-height:1.5;font-size:var(--fs-h2)}
h3{margin:0;font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-weight:700;line-height:1.5;font-size:var(--fs-h3)}
a{color:var(--c-primary)}a:hover{color:var(--c-primary-dark)}
img{max-width:100%}
.ult-main{display:block}
.hero-figures{background:#2E4A3A url(../img/hero-figures.jpg) center 40%/cover no-repeat}
.hero-mountain{background:#2E4A3A url(../img/hero-mountain.jpg) center 45%/cover no-repeat}
.hero-city{background:#2E4A3A url(../img/top-hero.jpg) center 70%/cover no-repeat}

/* 共通部品：カード */
.ult-card{background:var(--c-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}
.ult-card--link{display:block;color:inherit;text-decoration:none;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}
.ult-card--link:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px);color:inherit}

/* 共通部品：事例タイトル。<wbr> の位置でだけ折り返す（万一1行に収まらないまとまりがあれば、はみ出さずに折り返す） */
.ult-phrase{word-break:keep-all;overflow-wrap:anywhere}

/* 共通部品：支援事例の帯（カードの上部）。左にCASE番号、右に分類のアイコン（人事制度・採用・業務改善。色ではなく形で見分ける）。写真は使わない */
.ult-case-band{display:flex;align-items:center;justify-content:space-between;gap:12px;height:72px;padding:0 20px;border-radius:var(--radius-sm);background:var(--c-bg-pale);color:var(--c-primary)}
.ult-case-band__no{display:flex;align-items:baseline;gap:8px;font-family:'Outfit',sans-serif;font-size:36px;font-weight:700;line-height:1}
.ult-case-band__label{font-size:13px;letter-spacing:.2em}
.ult-case-band__icons{display:flex;gap:10px}
.ult-case-band svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* 共通部品：支援事例の詳細ページのCASE番号 */
.ult-case-no{display:flex;align-items:baseline;gap:12px;font-family:'Outfit',sans-serif;font-size:clamp(48px, 41.38px + 1.76vw, 64px);font-weight:700;line-height:1;color:var(--c-primary)}
.ult-case-no__label{font-size:15px;letter-spacing:.2em}

/* 共通部品：ボタン */
.ult-btn{display:inline-block;padding:16px 36px;border:0;border-radius:var(--radius-pill);font-family:inherit;font-size:var(--fs-button);font-weight:700;text-align:center;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}
.ult-btn--primary{background:var(--c-primary);color:var(--c-white)}
.ult-btn--primary:hover{background:var(--c-primary-dark);color:var(--c-white)}
.ult-btn--white{background:var(--c-white);color:var(--c-primary)}
.ult-btn--white:hover{color:var(--c-primary-dark)}
.ult-btn-note{margin:0;font-size:var(--fs-caption)}

/* 共通部品：ページ末尾の緑の帯(CTA) */
.ult-cta-band{max-width:1240px;margin:0 auto;padding:var(--cta-pad-y) var(--cta-pad-x);border-radius:var(--radius-card);background:var(--c-primary);color:var(--c-white);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px}
.ult-cta-band__text{flex:1 1 520px;display:flex;flex-direction:column;gap:12px}
.ult-cta-band h2{margin:0;color:var(--c-white);font-size:var(--fs-h2-cta);font-weight:900}
.ult-cta-band p{margin:0;color:var(--c-white)}
.ult-cta-band .ult-btn-note{color:var(--c-white)}

/* 共通部品：支援の流れ(タイムライン)。他ページでも使用する */
.ult-flow{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:16px}
.ult-flow::before{content:"";position:absolute;top:58px;left:20px;right:20px;height:2px;background:var(--c-border);z-index:0}
.ult-flow__step{position:relative;z-index:1;flex:1 1 200px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 20px;background:var(--c-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:center}
.ult-flow__num{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-circle);background:var(--c-primary);color:var(--c-white);font-family:'Zen Kaku Gothic New',sans-serif;font-size:18px;font-weight:900}
.ult-flow__body{display:flex;flex-direction:column;align-items:center;gap:4px}
.ult-flow__title{font-size:var(--fs-h3);font-weight:700}
.ult-flow__tag{font-size:var(--fs-caption);font-weight:700;color:var(--c-primary)}
.ult-flow__desc{font-size:var(--fs-caption);color:var(--c-muted-text)}
.ult-flow__note{margin:0;padding:20px 24px;background:var(--c-white);border-radius:var(--radius-sm);font-size:var(--fs-caption);color:var(--c-muted-text);text-align:center}

/* HOME（pages/01_home.html専用） */
.home-label{margin:0;font-family:'Zen Kaku Gothic New',sans-serif;font-size:var(--fs-caption);font-weight:700;letter-spacing:0.24em;color:var(--c-primary)}
.home-hero{position:relative;max-width:1240px;box-sizing:border-box;margin:0 auto;padding:140px 32px 88px;display:flex;flex-direction:column;justify-content:flex-end;gap:22px;min-height:clamp(520px, 80svh, 720px)}
/* トップのファーストビュー：緑のグラデーション（左下は #006835、右上へごくわずかに明るく）。写真・線画は使わない */
.ult-hero{background:linear-gradient(to top right,#006835 0%,#08743E 100%)}

/* 共通部品：線画のパネル（サービスのページの先頭。写真の代わり）。濃い緑の上に、白と薄い緑の線画 */
.ult-art-panel{flex:1 1 420px;min-width:0;height:320px;border-radius:24px;background:var(--c-primary);display:flex;align-items:center;justify-content:center;overflow:hidden}
.ult-art-panel svg{display:block;width:100%;height:100%;fill:none;stroke-linecap:round;stroke-linejoin:round}

/* 共通部品：トップの「選ばれる理由」のカード（番号と線画のアイコンの帯。事例のCASE帯と同じ作り） */
.ult-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ult-point{display:flex;flex-direction:column;gap:20px;padding:24px 28px 32px}

/* header */
/* ヘッダーは fixed で画面の上に固定する（sticky だと、トップで写真に重ねる今の作りと、スクロールで高さが変わるときの本文のがたつきを避けられないため）。本文は body の上の余白で、ヘッダーの下から始まる */
.ult-header{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--c-white);box-shadow:0 1px 0 var(--c-border)}
.ult-header.is-scrolled{box-shadow:var(--header-shadow)}
.admin-bar .ult-header{top:32px}
@media (max-width:782px){.admin-bar .ult-header{top:46px}}
.ult-header__inner{max-width:1240px;margin:0 auto;padding:var(--header-pad-y) 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.ult-header.is-scrolled .ult-header__inner{padding-top:var(--header-pad-y-scrolled);padding-bottom:var(--header-pad-y-scrolled)}
.ult-header.is-scrolled .ult-header__logo img{height:var(--logo-h-scrolled)}
/* 切り替えはなめらかに。動きを減らす設定の人には付けない */
@media (prefers-reduced-motion:no-preference){
.ult-header,.ult-header__inner,.ult-header__logo img,.ult-nav a,.ult-menu-toggle,.ult-menu-toggle span{transition:background-color var(--header-transition),box-shadow var(--header-transition),padding var(--header-transition),width var(--header-transition),height var(--header-transition),color var(--header-transition),border-color var(--header-transition)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.ult-header__logo img{display:block;height:var(--logo-h-desktop);width:auto}
.ult-header__logo .is-white{display:none}
.ult-nav{display:flex;flex-wrap:wrap;align-items:center;gap:26px;font-size:var(--fs-nav);font-weight:500}
.ult-nav a{color:var(--c-text);text-decoration:none}
.ult-nav a:hover{color:var(--c-primary)}
/* メニューの項目：英語を大きめ・字間を少し広く、日本語を小さく添える2段（スマホの開閉メニューは下の @media で横並びにする） */
.ult-nav a.ult-nav__link{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.3}
.ult-nav__en{font-family:'Outfit',sans-serif;font-size:var(--fs-nav-en);font-weight:700;letter-spacing:.12em;line-height:1.2}
.ult-nav__ja{font-size:var(--fs-nav-ja);font-weight:500;letter-spacing:.04em}
/* ヘッダーのボタンの文字色を、上の .ult-nav a より優先させる（トップは下の .home の指定で上書き） */
.ult-nav .ult-btn,.ult-nav .ult-btn:hover{color:var(--c-white)}
.ult-nav .ult-btn{padding:12px 24px;font-size:var(--fs-nav)}
/* スクロールして縮んだときは、ボタンも少し低くして、ヘッダー全体を64px前後にする（PCのメニューが並ぶ幅だけ） */
@media (min-width:1024px){.ult-header.is-scrolled .ult-nav .ult-btn{padding:6px 22px;line-height:1.7}}
.ult-menu-toggle{display:none}
/* front page: header over hero */
.home .ult-header{background:transparent;box-shadow:none}
.home .ult-header__logo .is-color{display:none}
.home .ult-header__logo .is-white{display:block}
.home .ult-nav a{color:var(--c-white);font-weight:700;letter-spacing:.06em}
.home .ult-nav .ult-btn{background:var(--c-white);color:var(--c-primary)}
.home .ult-nav .ult-btn:hover{background:var(--c-white);color:var(--c-primary-dark)}
/* トップも、スクロールしたら、ほかのページと同じ白い背景・濃い文字にする */
.home .ult-header.is-scrolled{background:var(--c-white);box-shadow:var(--header-shadow)}
.home .ult-header.is-scrolled .ult-header__logo .is-color{display:block}
.home .ult-header.is-scrolled .ult-header__logo .is-white{display:none}
.home .ult-header.is-scrolled .ult-nav a:not(.ult-btn){color:var(--c-text)}
.home .ult-header.is-scrolled .ult-nav a:not(.ult-btn):hover{color:var(--c-primary)}
.home .ult-header.is-scrolled .ult-nav .ult-btn{background:var(--c-primary);color:var(--c-white)}
.home .ult-header.is-scrolled .ult-nav .ult-btn:hover{background:var(--c-primary-dark);color:var(--c-white)}

/* footer */
.ult-footer{padding:64px 32px 40px;background:var(--c-text);color:var(--c-white)}
.ult-footer__inner{max-width:1240px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:48px}
.ult-footer__brand{flex:1 1 260px;display:flex;flex-direction:column;gap:14px}
.ult-footer__logo img{display:block;height:var(--logo-h-desktop);width:auto}
.ult-footer__name{margin:0;font-weight:700}
.ult-footer__addr{margin:0;font-size:var(--fs-footer-menu);color:var(--c-footer-muted)}
.ult-footer__cols{flex:2 1 520px;display:flex;flex-wrap:wrap;gap:32px}
.ult-footer__col{flex:1 1 150px;display:flex;flex-direction:column;gap:14px}
.ult-footer__col-label{margin:0;font-family:'Outfit','Zen Kaku Gothic New',sans-serif;font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;color:var(--c-footer-faint);line-height:1.6}
.ult-footer__col nav{display:flex;flex-direction:column;gap:10px}
.ult-footer__col nav a{color:var(--c-white);text-decoration:none;font-size:var(--fs-footer-menu)}
.ult-footer__col nav a:hover{text-decoration:underline}
.ult-footer__copy{max-width:1240px;margin:32px auto 0;font-size:var(--fs-copyright);color:var(--c-footer-faint)}

/* contact form 7 */
/* reCAPTCHA のマークは表示しない（Googleの規約どおりの表記を、お問い合わせフォームの下に入れている：pages/16_contact.html） */
.grecaptcha-badge{visibility:hidden}
.ult-form .wpcf7-form{display:flex;flex-direction:column;gap:24px}
.ult-form p{margin:0}
/* 1行目に項目名と必須/任意ラベル、2行目に入力欄 */
.ult-form label{display:flex;flex-wrap:wrap;align-items:center;gap:8px 0;font-size:15px;font-weight:700}
.ult-form label > .wpcf7-form-control-wrap{flex:1 1 100%}
.ult-form .req,.ult-form .opt{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;vertical-align:middle}
.ult-form .req{background:var(--c-primary);color:var(--c-white)}
.ult-form .opt{background:var(--c-border);color:var(--c-muted-text)}
.ult-form input[type=text],.ult-form input[type=email],.ult-form input[type=tel],.ult-form textarea{width:100%;padding:14px 16px;border:1px solid var(--c-form-border);border-radius:var(--radius-sm);font-size:16px;font-family:inherit;color:var(--c-text);background:var(--c-white);font-weight:400}
.ult-form input:focus,.ult-form textarea:focus{outline:2px solid var(--c-primary);outline-offset:1px}
.ult-form .wpcf7-checkbox,.ult-form .wpcf7-radio{display:flex;flex-wrap:wrap;gap:10px;font-weight:400}
.ult-form .wpcf7-list-item{margin:0;flex:1 1 260px}
.ult-form .wpcf7-list-item label{flex-wrap:nowrap;gap:10px;padding:12px 14px;border:1px solid var(--c-form-border);border-radius:var(--radius-sm);font-weight:400}
.ult-form .wpcf7-acceptance .wpcf7-list-item label{border:0;padding:0}
.ult-form input[type=checkbox],.ult-form input[type=radio]{width:18px;height:18px;accent-color:var(--c-primary)}
.ult-form .wpcf7-submit{align-self:flex-start;padding:18px 56px;border:0;border-radius:var(--radius-pill);background:var(--c-primary);color:var(--c-white);font-family:inherit;font-size:17px;font-weight:700;cursor:pointer}
.ult-form .wpcf7-submit:hover{background:var(--c-primary-dark)}
.ult-form .wpcf7-not-valid-tip{font-size:13px;font-weight:500;color:var(--c-error)}

@media (max-width:1023px){
 :root{--header-h:72px;--header-pad-y:14px;--header-pad-y-scrolled:10px;--logo-h-scrolled:34px;--anchor-offset:72px}
 .ult-header__inner{padding:var(--header-pad-y) 20px}
 .ult-header__logo img{height:var(--logo-h-mobile)}
 .ult-menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--c-form-border);border-radius:var(--radius-sm);background:var(--c-white);cursor:pointer}
 .home .ult-menu-toggle{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.6)}
 .ult-menu-toggle span,.ult-menu-toggle span::before,.ult-menu-toggle span::after{display:block;width:20px;height:2px;background:var(--c-text);position:relative;content:""}
 .home .ult-menu-toggle span,.home .ult-menu-toggle span::before,.home .ult-menu-toggle span::after{background:var(--c-white)}
 .ult-header.is-scrolled .ult-menu-toggle{width:38px;height:38px}
 .home .ult-header.is-scrolled .ult-menu-toggle{background:var(--c-white);border-color:var(--c-form-border)}
 .home .ult-header.is-scrolled .ult-menu-toggle span,.home .ult-header.is-scrolled .ult-menu-toggle span::before,.home .ult-header.is-scrolled .ult-menu-toggle span::after{background:var(--c-text)}
 .ult-menu-toggle span::before{position:absolute;top:-6px}.ult-menu-toggle span::after{position:absolute;top:6px}
 .ult-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;padding:8px 20px 20px;background:var(--c-white);box-shadow:0 12px 24px rgba(0,0,0,.12);max-height:calc(100vh - var(--header-h));max-height:calc(100dvh - var(--header-h));overflow-y:auto;overscroll-behavior:contain}
 .ult-nav.is-open{display:flex}
 .ult-nav > *{flex-shrink:0}
 .ult-nav a,.home .ult-nav a{display:flex;align-items:center;min-height:48px;color:var(--c-text);padding:0 4px;border-bottom:1px solid var(--c-border);font-size:var(--fs-nav-mobile-open)}
 .ult-nav a.ult-nav__link{flex-direction:row;align-items:center;gap:14px}
 .ult-nav__en{font-size:var(--fs-nav-mobile-open)}
 .ult-nav__ja{font-size:var(--fs-nav-ja-mobile)}
 .ult-nav .ult-btn,.home .ult-nav .ult-btn{margin-top:12px;justify-content:center;text-align:center;background:var(--c-primary);color:var(--c-white);border:0;min-height:48px}
 .ult-nav .ult-btn:hover,.home .ult-nav .ult-btn:hover{background:var(--c-primary-dark);color:var(--c-white)}
}
@media (max-width:960px){
 .ult-footer__logo img{height:var(--logo-h-mobile)}
 .ult-footer__inner{flex-direction:column;gap:40px}
 .ult-footer__cols{flex-direction:column;gap:28px}
 .ult-footer__brand,.ult-footer__cols,.ult-footer__col{flex-basis:auto}
 .ult-flow{flex-direction:column;flex-wrap:nowrap}
 .ult-flow__step{flex:0 0 auto;flex-direction:row;align-items:flex-start;text-align:left;padding:20px 0;gap:16px;background:transparent;box-shadow:none}
 .ult-flow__body{align-items:flex-start;text-align:left}
 .ult-flow::before{top:0;bottom:20px;left:26px;right:auto;width:2px;height:auto}
 .ult-flow__num{flex:0 0 52px}
 .ult-points{grid-template-columns:1fr}
 .ult-art-panel{height:200px}
 .home-hero{padding-top:140px;padding-bottom:72px}
}
@media (max-width:520px){
 :root{--fs-h2-cta:22px;--cta-gutter:16px;--cta-pad-y:40px;--cta-pad-x:24px}
 .ult-cta-band{justify-content:center;text-align:center}
 .ult-cta-band__text{flex-basis:100%}
}

/* ジャーナル（記事の欄）：一覧・カテゴリの一覧・記事・トップの欄。テンプレートは home.php / category.php / single.php / template-parts/ */
.ult-crumb{font-size:13px;color:var(--c-muted-text)}
.ult-crumb a{color:var(--c-muted-text)}
.ult-journal-label{font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-size:15px;font-weight:700;letter-spacing:.2em;color:var(--c-primary)}

/* 一覧の冒頭 */
.ult-journal-hero{background:var(--c-bg-pale)}
.ult-journal-hero__inner{max-width:1240px;margin:0 auto;padding:32px 32px 72px;display:flex;flex-direction:column;gap:28px}
.ult-journal-hero__head{display:flex;flex-direction:column;gap:14px}
.ult-journal-hero__lead{margin:0;max-width:720px;font-size:var(--fs-lead);color:var(--c-muted-text)}

/* 一覧 */
.ult-journal-list{padding:72px 32px 32px}
.ult-journal-list__inner{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:36px}
.ult-journal-filter{display:flex;flex-wrap:wrap;gap:10px}
.ult-journal-filter a{padding:10px 22px;border:1px solid var(--c-form-border);border-radius:var(--radius-pill);background:var(--c-white);color:var(--c-text);font-size:15px;font-weight:700;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast)}
.ult-journal-filter a:hover{border-color:var(--c-primary);color:var(--c-primary)}
.ult-journal-filter a[aria-current=page],.ult-journal-filter a[aria-current=page]:hover{border-color:var(--c-primary);background:var(--c-primary);color:var(--c-white)}
.ult-journal-empty{margin:0;padding:48px 0;text-align:center;color:var(--c-muted-text)}
.ult-journal-pager ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}
.ult-journal-pager a.page-numbers,.ult-journal-pager span.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 14px;border:1px solid var(--c-form-border);border-radius:var(--radius-pill);color:var(--c-text);font-size:15px;font-weight:700;text-decoration:none}
.ult-journal-pager a.page-numbers:hover{border-color:var(--c-primary);color:var(--c-primary)}
.ult-journal-pager span.page-numbers.current{border-color:var(--c-primary);background:var(--c-primary);color:var(--c-white)}
.ult-journal-pager span.page-numbers.dots{border-color:transparent}

/* カード（PC 3列・タブレット 2列・スマホ 1列） */
.ult-journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ult-journal-card{display:flex;flex-direction:column;height:100%;overflow:hidden}
.ult-journal-media{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--c-bg-pale)}
.ult-journal-media__img{display:block;width:100%;height:100%;object-fit:cover}
.ult-journal-band{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--c-primary)}
.ult-journal-band__icon svg{display:block;width:48px;height:48px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ult-journal-band__label{font-family:'Outfit',sans-serif;font-size:13px;font-weight:700;letter-spacing:.2em}
.ult-journal-card__body{display:flex;flex-direction:column;gap:12px;padding:24px 28px 28px}
.ult-journal-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.ult-journal-date{font-family:'Outfit',sans-serif;font-size:var(--fs-caption);font-weight:500;color:var(--c-muted-text)}
.ult-journal-chip{padding:4px 12px;border-radius:var(--radius-pill);background:var(--c-bg-pale);color:var(--c-primary);font-size:13px;font-weight:700;line-height:1.6}
.ult-journal-card__title,.ult-journal-article__title{word-break:auto-phrase;line-break:strict}
.ult-journal-card__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:18px;font-weight:700;line-height:1.6}

/* 記事 */
.ult-journal-article{padding:32px 32px 72px}
.ult-journal-article__inner{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:28px}
.ult-journal-article__head{display:flex;flex-direction:column;gap:14px}
.ult-journal-article__title{margin:0;font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-size:var(--fs-h1-case);font-weight:900;line-height:1.5}
.ult-journal-article .ult-journal-media{border-radius:var(--radius-card)}
/* 記事ページの帯（アイキャッチなし）だけ細くし、アイコンと「JOURNAL」を横並び・左寄せにする。アイキャッチがある記事・カード（関連記事を含む）は変えない */
.ult-journal-article .ult-journal-band{aspect-ratio:auto;height:72px;flex-direction:row;justify-content:flex-start;gap:12px;padding:0 28px}
.ult-journal-article .ult-journal-band__icon svg{width:28px;height:28px}
.ult-journal-body{font-size:var(--fs-body);line-height:2}
.ult-journal-body > *{margin-top:0;margin-bottom:0}
.ult-journal-body > * + *{margin-top:1.6em}
.ult-journal-body h2{margin-top:2.6em;padding-left:14px;border-left:4px solid var(--c-primary);font-size:clamp(22px, 19.5px + .7vw, 27px)}
.ult-journal-body h3{margin-top:2.2em;font-size:clamp(18px, 16.8px + .35vw, 21px)}
.ult-journal-body ul,.ult-journal-body ol{padding-left:1.5em}
.ult-journal-body li + li{margin-top:.4em}
.ult-journal-body img{display:block;max-width:100%;height:auto;border-radius:var(--radius-sm)}
.ult-journal-body figure{margin-left:0;margin-right:0}
.ult-journal-body figcaption{margin-top:8px;font-size:var(--fs-caption);color:var(--c-muted-text)}
.ult-journal-body blockquote{margin-left:0;margin-right:0;padding:4px 0 4px 20px;border-left:4px solid var(--c-border);color:var(--c-muted-text)}
.ult-journal-body table{width:100%;border-collapse:collapse;font-size:var(--fs-caption)}
.ult-journal-body th,.ult-journal-body td{padding:10px 12px;border:1px solid var(--c-border);text-align:left}
.ult-journal-body a{text-underline-offset:3px}
.ult-journal-note{margin:0}
.ult-journal-consult{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:20px;padding:28px 32px;border-radius:var(--radius-card);background:var(--c-bg-pale)}
.ult-journal-related{padding:72px 32px;background:var(--c-bg-soft)}
.ult-journal-related__inner{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:32px}
.ult-journal-back{margin:0;padding:32px;text-align:center;font-weight:700}
.ult-journal-back a{text-decoration:none}

/* トップページの「ジャーナル」欄（[ult_journal_latest]） */
.ult-journal-home{padding:112px 32px;background:var(--c-bg-pale)}
.ult-journal-home__inner{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:48px}
.ult-journal-home__head{display:flex;flex-direction:column;gap:8px}
.ult-journal-home__more{margin:0;text-align:center}

@media (max-width:960px){
 .ult-journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
 .ult-journal-grid{grid-template-columns:minmax(0,1fr)}
 .ult-journal-hero__inner{padding-bottom:48px}
 .ult-journal-related,.ult-journal-home{padding-top:72px;padding-bottom:72px}
 .ult-journal-consult{padding:24px}
 .ult-journal-article .ult-journal-band{height:56px;gap:10px;padding:0 20px}
 .ult-journal-article .ult-journal-band__icon svg{width:24px;height:24px}
}

/* 共通部品：メンバー紹介（私たちについて「コンサルタント紹介」）。1人分が .ult-member。メンバーが増えたら、同じ形を縦に並べる。写真は使わず、左に名前の枠（淡い緑）、右に紹介文 */
.ult-member{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:56px;align-items:start}
.ult-member + .ult-member{margin-top:72px}
.ult-member__body{display:flex;flex-direction:column;gap:28px;word-break:auto-phrase;text-wrap:pretty}
.ult-member__id{display:flex;flex-direction:column;gap:10px;padding:32px;border-radius:var(--radius-card);background:var(--c-bg-pale)}
.ult-member__label{margin:0;font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-size:var(--fs-caption);font-weight:700;letter-spacing:.24em;color:var(--c-primary)}
.ult-member__name{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;font-size:var(--fs-h2);font-weight:900}
.ult-member__en{font-family:'Outfit',sans-serif;font-size:var(--fs-lead);font-weight:500;letter-spacing:.08em;color:var(--c-muted-text)}
.ult-member__role{margin:0;font-weight:700;color:var(--c-muted-text)}
.ult-member__lead{margin:0;font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;font-size:var(--fs-h3);font-weight:700;line-height:1.7}
.ult-member__bio{margin:0;color:var(--c-muted-text)}
.ult-member__block{display:flex;flex-direction:column;gap:10px}
.ult-member__skills{display:flex;flex-direction:column;gap:10px;margin:0;padding:20px 24px;list-style:none;border-radius:var(--radius-sm);background:var(--c-bg-soft)}
.ult-member__skills li{position:relative;padding-left:20px}
.ult-member__skills li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:8px;border-radius:var(--radius-circle);background:var(--c-primary)}
.ult-member__message{display:flex;flex-direction:column;gap:10px;padding-top:28px;border-top:1px solid var(--c-form-border)}
.ult-member__message p:not(.ult-member__label){margin:0;color:var(--c-muted-text)}
@media (max-width:960px){
 .ult-member{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media (max-width:520px){
 .ult-member__id{padding:20px}
}
