@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Outfit:wght@400;600;700;900&family=Shippori+Mincho:wght@500;600;700&display=swap');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css'); /* webfont版FA（CSS疑似要素のアイコンに必須・kit不達環境のフォールバック兼用） */


/* =========================================================
  株式会社メンシス — デザインシステム v3（PC・デスクトップファースト）
  WOW案v3（preview/_wow-home3.html）承認版の本番移植。
  方針: 青ベース（#1a6fc0系）フラット原則・補色オレンジは点使い・
        グラデは可読性スクリムのみ・影はヘッダー薄影のみ。
========================================================= */
:root{
	--blue:#1a6fc0;          /* primary brand blue */
	--blue-dark:#0f54a0;     /* hover 濃 */
	--blue-bright:#2fa3e3;   /* accent（EN・見出しバー） */
	--navy:#0c3c82;          /* footer */
	--navy-deep:#0a2c5e;
	--orange:#f1740f;        /* 補色アクセント（点でのみ使用） */
	--orange-soft:#ff9c4f;   /* 濃い青の上で使う明るめオレンジ */
	--ink:#2b3a47;           /* 本文 */
	--ink-soft:#49566a;      /* 補助（FB2: 地の文が薄い→濃く） */
	--line:#dce6f0;          /* 罫線 */
	--bg-blue:#eef5fb;       /* 薄ブルー背景 */
	--bg-blue-2:#f4f8fc;     /* さらに淡い背景 */

	/* フォント（テーマ変数も上書き） */
	--font1:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Meiryo',sans-serif;
	--font2:'Outfit','Noto Sans JP',sans-serif; /* EN・数字 */
	--font-mincho:'Shippori Mincho','Hiragino Mincho ProN',serif; /* 署名等 */
	--line-height:1.8;
	--font-weight:400;
	--letter-spacing:0em;
	--font-size1:16px; /* FB2: 地の文をわずかに大きく */

	/* レイアウト */
	--wrap:1124px;
	--wrap-xl:1400px;
	--header-h:78px;
	--ease-out:cubic-bezier(.19,1,.22,1);
	--ease-power:cubic-bezier(.77,0,.18,1);
	--text1:#2b3a47;
	--main1:#1a6fc0;
	--dark:#0f54a0;
	--scbg1:#eef5fb;
	--scbg2:#f4f8fc;
	--scbg3:#ffffff;
}

/* =========================================================
  全要素リセット（テーマ既定 css-pc を置換するため再掲）
  box-sizing:border-box を必ず含める（width+padding はみ出し防止）
========================================================= */
*{
	box-sizing:border-box;
	margin:0;
	padding:0;
	font-size:var(--font-size1);
	font-weight:var(--font-weight);
	line-height:var(--line-height);
}
html{scroll-behavior:smooth;}
body{
	font-family:var(--font1);
	color:var(--ink);
	background:#fff;
	-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
li{list-style:none;}
::selection{background:var(--blue);color:#fff;}
h1,h2,h3{font-feature-settings:"palt";}
/* 装飾用インライン要素（span/b/strong/em/i）は、テーマ基底 *{font-size 等} の
   直撃で親のサイズ・太さ・行高を失うため、継承をグローバルに復元する（FB3・厳守）。
   ※ FA アイコンの font-family/weight はクラス側の指定が勝つので影響なし */
span,b,strong,em,i{
	font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;font-family:inherit;
}
b,strong{font-weight:700;} /* 太字のデフォルトは維持 */
svg{display:block;}
.ico-blue{color:var(--blue);}

/* セクション基本余白（テーマ既定 section{padding:60px} を上書き） */
section{padding:0;position:relative;}
.wrap{width:var(--wrap);max-width:100%;margin:0 auto;padding:0 28px;}
.wrap-xl{width:var(--wrap-xl);max-width:100%;margin:0 auto;padding:0 28px;}

/* 画像プレースホルダー（未支給写真用） */
.ph{
	background-color:#d9e3ec;
	background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 8px,rgba(255,255,255,0) 8px 16px);
	display:flex;align-items:center;justify-content:center;text-align:center;
	color:#7488a0;font-family:ui-monospace,'SFMono-Regular',Menlo,monospace;font-size:11px;letter-spacing:.02em;line-height:1.5;
	padding:8px;
}

/* =========================================================
  スクロール登場アニメーション（script.js が .reveal 付与）
========================================================= */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);}
/* バリエーション（FB2: フェードインだけにしない。script.js が要素種別ごとに付与） */
.reveal.reveal--left{transform:translateX(-52px);}
.reveal.reveal--right{transform:translateX(52px);}
.reveal.reveal--zoom{transform:scale(.94);}
.reveal.reveal--flip{transform:translateY(30px) rotate(2deg);transform-origin:0 100%;}
.reveal.is-visible{opacity:1;transform:none;}

/* スクロールプログレスバー（header.html 内） */
.progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:9000;pointer-events:none;}
.progress span{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--orange);}

/* =========================================================
  オープニング（home の先頭セクション / script.js が制御）
  JS不達でも6秒後にCSSフェイルセーフで消える
========================================================= */
.op{position:fixed;inset:0;z-index:8000;display:flex;align-items:center;justify-content:center;animation:opFailsafe .6s ease 6s forwards;}
.op.op--off{display:none;}
@keyframes opFailsafe{to{opacity:0;visibility:hidden;}}
.op__panel{position:absolute;inset:0;}
.op__panel--1{background:#fff;transition:transform .85s var(--ease-power);z-index:2;}
.op__panel--2{background:var(--blue);transition:transform .85s var(--ease-power) .14s;z-index:1;}
.op__core{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;gap:38px;width:min(560px,82vw);}
.op__logo{width:100%;height:auto;animation:opLogoIn 1s var(--ease-out) .1s both;}
@keyframes opLogoIn{from{opacity:0;transform:translateY(18px) scale(.96);}to{opacity:1;transform:none;}}
.op__bar{position:relative;width:min(360px,60vw);height:2px;background:var(--line);overflow:hidden;}
.op__bar i{position:absolute;inset:0;background:var(--blue);transform:scaleX(0);transform-origin:0 50%;}
.op__pct{
	position:absolute;right:36px;bottom:26px;z-index:3;
	font-family:var(--font2);font-weight:600;font-size:56px;line-height:1;color:var(--blue);
	display:flex;align-items:baseline;gap:4px;
}
.op__pct span{font-family:var(--font2);font-size:56px;font-weight:600;line-height:1;}
.op__pct small{font-size:14px;letter-spacing:.2em;color:var(--ink-soft);}
.op.is-done .op__panel--1{transform:translateY(-101%);}
.op.is-done .op__panel--2{transform:translateY(-101%);}
.op.is-done .op__core,.op.is-done .op__pct{opacity:0;transition:opacity .3s;}

/* =========================================================
  ボタン（フラット・テキスト中央・矢印は絶対配置で右）
========================================================= */
.center-btn{display:flex;justify-content:center;}
/* ボタンは全サイト統一（FB2）。ホバーはスイープ塗り＋浮き＋矢印スライドで派手めに */
.btn-fill,.btn-outline,.btn-light{
	position:relative;display:inline-block;min-width:300px;padding:16px 56px;
	border-radius:4px;text-align:center;font-weight:700;font-size:15px;letter-spacing:.04em;
	font-feature-settings:"palt";overflow:hidden;
	transition:color .3s,border-color .3s,transform .3s var(--ease-out);
}
.btn-fill::before,.btn-outline::before,.btn-light::before{
	content:"";position:absolute;inset:0;z-index:0;
	transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--ease-power);
}
.btn-fill:hover::before,.btn-outline:hover::before,.btn-light:hover::before{transform:scaleX(1);transform-origin:0 50%;}
.btn-fill:hover,.btn-outline:hover,.btn-light:hover{transform:translateY(-3px);}
.btn-fill span,.btn-outline span,.btn-light span{position:relative;z-index:1;}
.btn-fill{background:var(--blue);color:#fff;}
.btn-fill::before{background:var(--orange);}
.btn-outline{background:#fff;border:1.5px solid var(--blue);color:var(--blue);padding:14.5px 56px;}
.btn-outline::before{background:var(--blue);}
.btn-outline:hover{color:#fff;}
.btn-outline:hover .arr svg{stroke:#fff;}
.btn-light{background:transparent;border:1.5px solid rgba(255,255,255,.9);color:#fff;padding:14.5px 56px;}
.btn-light::before{background:#fff;}
.btn-light:hover{color:var(--blue);border-color:#fff;}
.btn-light:hover .arr svg{stroke:var(--blue);}
.btn-fill .arr,.btn-outline .arr,.btn-light .arr{
	position:absolute;right:20px;top:50%;transform:translateY(-50%);
	display:flex;transition:transform .3s var(--ease-out);z-index:1;
}
.btn-fill:hover .arr,.btn-outline:hover .arr,.btn-light:hover .arr{transform:translateY(-50%) translateX(5px);}

/* =========================================================
  汎用セクション見出し（中央・青 + アクセントバー）
========================================================= */
.sec-head{position:relative;text-align:center;margin-bottom:48px;z-index:1;}
.sec-head h2{font-size:30px;font-weight:900;color:var(--blue);letter-spacing:.06em;}
.sec-head .en{display:block;font-family:var(--font2);font-size:13px;font-weight:700;color:var(--blue-bright);letter-spacing:.2em;margin-top:8px;}
.sec-head .bar{width:46px;height:3px;background:var(--blue-bright);margin:14px auto 0;border-radius:2px;}
.sec-head--left{text-align:left;}
.sec-head--left .bar{margin-left:0;margin-right:auto;}

/* 背景デカ文字（アウトライン英字・各セクションに） */
.wm{
	position:absolute;z-index:0;pointer-events:none;user-select:none;
	font-family:var(--font2);font-weight:900;line-height:1;letter-spacing:.02em;
	color:transparent;-webkit-text-stroke:1.2px rgba(26,111,192,.12);
	font-size:10.5vw;
}

/* =========================================================
  ヘッダー（白・常時追従・CTA右端密着＝全サイト作法）
========================================================= */
.site-h{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.06);}
.site-h__bar{display:flex;align-items:center;height:var(--header-h);padding:0 0 0 32px;width:100%;max-width:none;margin:0;}
.site-h__brand{display:flex;align-items:center;margin-right:auto;}
/* [aic_logo] は <img> 自体にクラスが付く（テキスト代替時は <a> 等にも備えて両対応） */
.site-h__logo{font-family:var(--font1);font-weight:900;font-size:21px;letter-spacing:.04em;color:#243240;}
img.site-h__logo,.site-h__logo img{height:54px;width:auto;}
.site-h__nav{display:flex;align-items:center;gap:30px;margin-right:0;} /* CTA を右端密着させるため余白なし */
.site-h__nav li{display:flex;}
.site-h__nav a{
	position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 0;
	font-weight:700;font-size:14.5px;color:var(--ink);letter-spacing:.04em;font-feature-settings:"palt";
	transition:color .2s;
}
.site-h__nav a .en{font-family:var(--font2);font-weight:600;font-size:10px;letter-spacing:.22em;color:var(--blue-bright);text-transform:uppercase;}
.site-h__nav a::after{
	content:"";position:absolute;left:0;bottom:-4px;width:100%;height:2px;background:var(--blue);
	transform:scaleX(0);transform-origin:100% 50%;transition:transform .3s var(--ease-out);
}
.site-h__nav a:hover{color:var(--blue);}
.site-h__nav a:hover::after{transform:scaleX(1);transform-origin:0 50%;}
/* CTA: 右端密着・ヘッダー全高・封筒アイコン（FA）・オレンジ */
.site-h__nav .header-cta{align-self:stretch;}
.site-h__nav .header-cta a{
	flex-direction:row;align-items:center;gap:9px;height:var(--header-h);padding:0 36px;
	background:var(--orange);color:#fff;font-size:16.5px;border-radius:0;
	transition:background .2s;
}
/* FA 疑似要素は幅を明示しないと謎の余白が出る（制作ナレッジ） */
.site-h__nav .header-cta a::before{
	content:"\f0e0";font-family:"Font Awesome 6 Free";font-weight:400;font-size:17px;line-height:1;
	display:inline-block;width:18px;text-align:center;flex:0 0 18px;
}
.site-h__nav .header-cta a::after{display:none;}
.site-h__nav .header-cta a:hover{background:#d8650a;color:#fff;}
.site-h__nav .header-cta a .en{display:none;}

/* ハンバーガー（PC では非表示） */
.site-h__burger{display:none;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;background:none;border:0;cursor:pointer;margin-right:8px;}
.site-h__burger span{display:block;width:26px;height:2px;background:var(--ink);transition:.3s;margin:0 auto;}
.site-h__burger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.site-h__burger.is-open span:nth-child(2){opacity:0;}
.site-h__burger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

/* ドロワー用オーバーレイ：常に DOM にあるが、閉時は pointer-events:none で
   クリックを素通しする（display:block のまま透明にすると全画面クリック不可になる事故・FB3） */
.site-h__overlay{position:fixed;inset:0;background:rgba(12,60,130,.45);z-index:90;opacity:0;pointer-events:none;transition:opacity .3s;}
.site-h__overlay.is-open{opacity:1;pointer-events:auto;}
.site-h__drawer{
	position:fixed;top:0;right:-300px;width:280px;height:100vh;height:100dvh;background:var(--navy);z-index:95;
	box-sizing:border-box;padding:78px 26px 32px;display:flex;flex-direction:column;gap:6px;transition:right .3s ease;
	overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.site-h__drawer.is-open{right:0;}
.site-h__drawer-close{position:absolute;top:18px;right:20px;background:none;border:0;color:#fff;font-size:30px;line-height:1;cursor:pointer;}
.site-h__drawer-menu li{border-bottom:1px solid rgba(255,255,255,.14);}
.site-h__drawer-menu a{display:block;color:#fff;font-weight:700;font-size:16px;padding:14px 4px;}
.site-h__drawer-menu a .en{display:block;font-family:var(--font2);font-weight:600;font-size:10px;letter-spacing:.22em;color:var(--blue-bright);text-transform:uppercase;}
.site-h__drawer-tel{margin-top:24px;display:flex;flex-direction:column;gap:4px;color:#fff;}
.site-h__drawer-tel-num{font-family:var(--font2);font-size:24px;font-weight:700;letter-spacing:.03em;}
.site-h__drawer-tel-hours{font-size:12px;color:#bcd0e8;}

/* ヘッダー分のオフセット（固定ヘッダーの下に本文） */
body{padding-top:var(--header-h);}

/* =========================================================
  ヒーロー（home: 写真全面 + 左青グラデ + FV内マーキー）
========================================================= */
.hero{position:relative;height:calc(100svh - var(--header-h));min-height:560px;max-height:900px;overflow:hidden;}
.hero__bg,.hero__bg img{position:absolute;inset:0;width:100%;height:100%;}
.hero__bg img{object-fit:cover;animation:kenburns 20s ease-in-out infinite alternate;}
@keyframes kenburns{from{transform:scale(1);}to{transform:scale(1.07);}}
/* 可読性担保: 左につれて青グラデーション（機能スクリム） */
.hero__tint{
	position:absolute;inset:0;
	background:linear-gradient(90deg,rgba(15,84,160,.9) 0%,rgba(18,95,175,.66) 32%,rgba(26,111,192,.28) 56%,rgba(26,111,192,0) 76%);
}
/* 背景デカ文字 */
.hero__giant{
	position:absolute;right:-1vw;bottom:7.5vw;z-index:2;pointer-events:none;user-select:none;
	font-family:var(--font2);font-weight:900;font-size:15vw;line-height:.84;letter-spacing:.01em;
	color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.3);
}
/* MV内のオブジェクトは wrap に収めず画面基準で配置（左から2.5vw）・
   文字サイズは vw 指定でデバイスによる印象変化を防ぐ（FB2・全サイト作法） */
.hero__inner{
	position:relative;z-index:5;height:100%;max-width:none;margin:0;padding:0 6vw 8.5vw 2.5vw;
	display:flex;flex-direction:column;justify-content:center;
}
.hero__label{
	display:inline-flex;align-items:center;gap:14px;margin-bottom:2vw;
	font-family:var(--font2);font-size:.95vw;font-weight:600;letter-spacing:.34em;color:#fff;
}
.hero__label::before{content:"";width:.6vw;height:.6vw;background:var(--orange-soft);}
.hero__title{font-size:5.3vw;font-weight:900;line-height:1.3;letter-spacing:.015em;color:#fff;}
/* 分割 .char やラッパー span はテーマ基底 *{font-size} の直撃を受けるため
   タイトル内の全 span に inherit を明示（制作ナレッジ参照・中間ラッパーも忘れず） */
.hero__title span{
	font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;
}
.hero__title .char{display:inline-block;opacity:0;transform:translateY(.85em);}
body.is-open .hero__title .char{animation:charIn .8s var(--ease-out) both;}
@keyframes charIn{to{opacity:1;transform:none;}}
.hero__title .accent .char{color:var(--orange-soft);}
.hero__title .accent-line{position:relative;display:inline-block;}
.hero__title .accent-line::after{
	content:"";position:absolute;left:1%;bottom:.02em;width:98%;height:4px;background:var(--orange-soft);
	transform:scaleX(0);transform-origin:0 50%;
}
body.is-open .hero__title .accent-line::after{animation:lineIn .7s var(--ease-power) 1.6s both;}
@keyframes lineIn{to{transform:scaleX(1);}}
.hero__lead{
	margin-top:2vw;font-size:1.25vw;font-weight:500;line-height:2.15;color:#fff;
	opacity:0;transform:translateY(20px);
}
body.is-open .hero__lead{animation:fadeUp .9s var(--ease-out) 1.3s both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}

/* FV内マーキー（ホバー停止なし） */
.hero__marquee{
	position:absolute;left:0;right:0;bottom:0;z-index:6;
	background:rgba(10,44,94,.45);border-top:1px solid rgba(255,255,255,.22);
	padding:20px 0 16px;overflow:hidden;
}
.marquee__track{display:flex;width:max-content;animation:marquee 32s linear infinite;}
.marquee__unit{display:flex;align-items:center;gap:46px;padding-right:46px;white-space:nowrap;}
.marquee__unit span{
	font-family:var(--font2);font-weight:900;font-size:40px;line-height:1;letter-spacing:.04em;
	color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.55);
}
.marquee__unit span.fill{color:#fff;-webkit-text-stroke:0;}
.marquee__unit i{width:8px;height:8px;border-radius:50%;background:var(--orange-soft);flex:0 0 auto;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* =========================================================
  ABOUT（home: ステートメント + 写真コラージュ + 数字）
========================================================= */
.about{position:relative;background:#fff;padding:110px 0 100px;overflow:hidden;}
.about .wm{top:36px;left:-10px;}
.about__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:64px;align-items:center;}
.about__copy h2{font-size:clamp(26px,2.7vw,36px);font-weight:900;line-height:1.65;color:var(--ink);letter-spacing:.02em;}
.about__copy h2 .blue{color:var(--blue);}
.about__copy p{margin-top:24px;font-size:15px;line-height:2.3;color:var(--ink-soft);max-width:34em;}
.about__photo{position:relative;}
.about__photo .main img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;}
.about__photo .sub{position:absolute;left:-56px;bottom:-40px;width:44%;border:5px solid #fff;border-radius:6px;overflow:hidden;}
.about__photo .sub img{width:100%;aspect-ratio:1/1;object-fit:cover;}
.about__photo .deco{position:absolute;right:-16px;top:-16px;width:64px;height:64px;background:var(--orange);z-index:-1;border-radius:6px;}

/* 数字（罫線区切り・カウントアップ） */
.stats{
	position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
	border-top:1px solid var(--line);border-bottom:1px solid var(--line);
	margin-top:90px;
}
.stat{padding:36px 28px 32px;border-left:1px solid var(--line);}
.stat:first-child{border-left:0;}
.stat .k{display:flex;align-items:center;gap:9px;font-family:var(--font2);font-weight:600;font-size:11.5px;letter-spacing:.24em;color:var(--ink-soft);}
.stat .k::before{content:"";width:6px;height:6px;background:var(--orange);}
.stat .v{
	margin-top:12px;display:flex;align-items:baseline;gap:6px;
	font-family:var(--font2);font-weight:700;font-size:58px;line-height:1;color:var(--blue);
}
.stat .v span{font-family:var(--font2);font-weight:700;font-size:58px;line-height:1;}
.stat .v small{font-size:15px;font-weight:700;color:var(--ink);font-family:var(--font1);}
.stat .l{margin-top:6px;font-size:12.5px;font-weight:500;color:var(--ink-soft);letter-spacing:.04em;}

/* =========================================================
  SERVICES（home: ホバー拡張アコーディオン・幅1400・青スクリム）
========================================================= */
.services{position:relative;background:var(--bg-blue-2);padding:110px 0;overflow:hidden;}
.services .wm{top:30px;right:-12px;}
.services .sec-lead{position:relative;z-index:1;max-width:680px;margin:-24px auto 56px;text-align:center;font-size:14px;line-height:2.1;color:var(--ink-soft);}
.svc-acc{position:relative;z-index:1;display:flex;gap:10px;height:520px;}
.svc{position:relative;flex:1;min-width:0;border-radius:6px;overflow:hidden;cursor:pointer;transition:flex .75s var(--ease-power);}
.svc:hover{flex:3.2;}
.svc__bg,.svc__bg img{position:absolute;inset:0;width:100%;height:100%;}
.svc__bg img{object-fit:cover;transition:transform 1.2s var(--ease-out);}
.svc:hover .svc__bg img{transform:scale(1.06);}
/* 画像上のスクリム（FB2: グラデ廃止→全体に薄くフラットな青。
   ホバーで解除し、下側の文字部分の下にだけ濃い青の帯を出す） */
.svc__shade{
	position:absolute;inset:0;
	background:rgba(12,60,130,.52);
	transition:background .5s;
}
.svc:hover .svc__shade{background:rgba(12,60,130,0);}
.svc__num{
	position:absolute;top:20px;left:22px;z-index:2;
	font-family:var(--font2);font-weight:600;font-size:17px;letter-spacing:.14em;color:#fff;
}
.svc__num::after{content:"";display:block;width:24px;height:2px;background:var(--orange-soft);margin-top:7px;transition:width .5s var(--ease-out);}
.svc:hover .svc__num::after{width:48px;}
.svc__body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:24px 26px 26px;transition:background .5s;}
.svc:hover .svc__body{background:rgba(12,60,130,.82);}
.svc__title{
	font-size:20px;font-weight:900;color:#fff;letter-spacing:.06em;line-height:1.5;
	writing-mode:vertical-rl;height:200px;transition:all .55s var(--ease-power);
}
.svc:hover .svc__title{writing-mode:horizontal-tb;height:auto;}
.svc__en{display:block;margin-top:10px;font-family:var(--font2);font-size:10.5px;font-weight:600;letter-spacing:.28em;color:rgba(255,255,255,.75);text-transform:uppercase;}
.svc__desc{
	max-height:0;opacity:0;overflow:hidden;margin-top:0;
	font-size:13.5px;line-height:2;color:rgba(255,255,255,.92);
	transition:max-height .6s var(--ease-power),opacity .5s .12s,margin .5s;
}
.svc:hover .svc__desc{max-height:130px;opacity:1;margin-top:14px;}
.services .center-btn{position:relative;z-index:1;margin-top:54px;}

/* =========================================================
  REASON（罫線区切りグリッド・アイコン大・背景なし）
========================================================= */
.reasons{position:relative;background:#fff;padding:110px 0 120px;overflow:hidden;}
.reasons .wm{bottom:-20px;right:-10px;font-size:11vw;}
.reasons__grid{
	position:relative;z-index:1;
	display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
	border-top:1px solid var(--line);border-left:1px solid var(--line);
}
/* ホバーは青く反転＋アイコンが跳ねる「派手め」挙動（FB2） */
.ritem{
	position:relative;padding:46px 36px 44px;
	border-right:1px solid var(--line);border-bottom:1px solid var(--line);
	overflow:hidden;
}
.ritem::before{
	content:"";position:absolute;inset:0;background:var(--blue);
	transform:translateY(101%);transition:transform .45s var(--ease-power);
}
.ritem:hover::before{transform:translateY(0);}
.ritem>*{position:relative;z-index:1;}
.ritem__bigno{
	position:absolute;top:14px;right:18px;
	font-family:var(--font2);font-weight:900;font-size:84px;line-height:1;
	color:transparent;-webkit-text-stroke:1px rgba(26,111,192,.16);
	transition:-webkit-text-stroke .35s;
}
.ritem:hover .ritem__bigno{-webkit-text-stroke:1px rgba(255,255,255,.45);}
.ritem__ic{height:74px;display:flex;align-items:flex-end;color:var(--blue);transition:color .35s,transform .45s var(--ease-out);}
.ritem__ic i{font-size:56px;line-height:1;}
.ritem:hover .ritem__ic{color:#fff;transform:translateY(-8px) scale(1.12) rotate(-5deg);}
.ritem__en{margin-top:18px;font-family:var(--font2);font-weight:600;font-size:11px;letter-spacing:.26em;color:var(--blue-bright);text-transform:uppercase;transition:color .35s;}
.ritem:hover .ritem__en{color:var(--orange-soft);}
.ritem h3{margin-top:8px;font-size:19px;font-weight:900;letter-spacing:.04em;color:var(--ink);transition:color .35s;}
.ritem:hover h3{color:#fff;}
.ritem h3::after{content:"";display:block;width:28px;height:3px;background:var(--orange);margin-top:12px;border-radius:2px;transition:width .4s var(--ease-out);}
.ritem:hover h3::after{width:64px;}
.ritem p{margin-top:14px;font-size:13.5px;line-height:2.05;color:var(--ink-soft);transition:color .35s;}
.ritem:hover p{color:rgba(255,255,255,.88);}
/* 6マス目: ステートメント */
.ritem--st{display:flex;flex-direction:column;justify-content:center;background:var(--blue);}
.ritem--st::before{display:none;}
.ritem--st .s1{font-size:12.5px;letter-spacing:.14em;color:rgba(255,255,255,.8);}
.ritem--st .s2{margin-top:12px;font-size:27px;font-weight:900;color:#fff;letter-spacing:.06em;line-height:1.6;}
.ritem--st .s2 b{color:var(--orange-soft);font-weight:900;}
.ritem--st .s3{margin-top:12px;font-size:13px;line-height:2.05;color:rgba(255,255,255,.85);}

/* =========================================================
  採用バナー（FB2: 写真は画面右端までフルブリード・
  テキスト部は青グラデ＋アウトラインのデカ文字・斜め境界）
========================================================= */
.recruit{position:relative;overflow:hidden;background:linear-gradient(100deg,#1768b8 0%,#2f87cd 60%,#3f9bd8 100%);}
.recruit__inner{position:relative;max-width:none;margin:0;display:flex;align-items:stretch;min-height:380px;}
.recruit__txt{
	position:relative;z-index:3;color:#fff;flex:0 0 50%;max-width:none;
	padding:72px 60px 72px max(28px,calc((100vw - var(--wrap)) / 2 + 28px));
}
/* テキスト部のアウトラインのデカ文字 */
.recruit__giant{
	position:absolute;left:max(8px,calc((100vw - var(--wrap)) / 2 - 10px));bottom:6px;z-index:2;pointer-events:none;
	font-family:var(--font2);font-weight:900;font-size:6.4vw;line-height:1;letter-spacing:.02em;
	color:transparent;-webkit-text-stroke:1.2px rgba(255,255,255,.32);white-space:nowrap;
}
.recruit__tag{
	display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;
	border:1px solid rgba(255,255,255,.6);padding:7px 16px;border-radius:3px;
	color:#fff;font-weight:700;font-size:12px;letter-spacing:.18em;
}
.recruit__tag i{width:7px;height:7px;background:var(--orange-soft);animation:blink 1.8s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.2;}}
.recruit__txt h2{font-size:clamp(26px,2.8vw,34px);font-weight:900;line-height:1.5;letter-spacing:.02em;color:#fff;}
.recruit__txt p{margin:18px 0 30px;font-size:14px;line-height:2;color:#e7f2fb;}
.recruit__photo{flex:1;position:relative;min-width:0;}
.recruit__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%;}
.recruit__photo .ph{position:absolute;inset:0;}
/* 斜め境界（テキスト⇄写真・グラデで馴染ませる） */
.recruit__photo::before{
	content:"";position:absolute;left:-70px;top:-10px;bottom:-10px;width:140px;
	background:linear-gradient(100deg,#2f87cd 30%,rgba(63,155,216,0));transform:skewX(-12deg);z-index:2;
}

/* =========================================================
  施工実績（home 抜粋セクション）
========================================================= */
.works-sec{position:relative;background:var(--bg-blue);padding:110px 0;overflow:hidden;}
.works-sec .wm{top:34px;left:-8px;}
.works-sec .center-btn{margin-top:44px;position:relative;z-index:1;}
.works-sec .aic-posts{position:relative;z-index:1;}
.works-note{position:relative;z-index:1;margin-top:14px;font-size:11.5px;color:var(--ink-soft);text-align:right;letter-spacing:.04em;}

/* =========================================================
  お問い合わせCTA（町と空の写真背景・共通パーツ）
========================================================= */
.contact-cta{
	position:relative;padding:120px 0 130px;text-align:center;overflow:hidden;
	background:url('/wp-content/uploads/2026/06/page-hero.webp') center/cover no-repeat;
}
.contact-cta::before{content:"";position:absolute;inset:0;background:rgba(12,60,130,.58);}
.contact-cta .wrap{position:relative;z-index:2;}
.contact-cta__en{display:flex;align-items:center;justify-content:center;gap:12px;font-family:var(--font2);font-weight:600;font-size:13px;letter-spacing:.4em;color:#fff;}
.contact-cta__en::before{content:"";width:8px;height:8px;background:var(--orange-soft);}
.contact-cta h2{margin-top:22px;font-size:clamp(26px,2.8vw,38px);font-weight:900;color:#fff;line-height:1.6;letter-spacing:.03em;}
.contact-cta__lead{margin-top:14px;font-size:14.5px;line-height:2.1;color:rgba(255,255,255,.92);}
.contact-cta__row{display:flex;align-items:center;justify-content:center;gap:52px;margin-top:44px;flex-wrap:wrap;}
.tel{display:flex;flex-direction:column;align-items:flex-start;gap:6px;color:#fff;}
.tel__num{
	display:flex;align-items:center;gap:14px;
	font-family:var(--font2);font-weight:700;font-size:46px;line-height:1;letter-spacing:.03em;color:#fff;
}
.tel__num svg{color:var(--orange-soft);}
.tel__hours{font-size:12.5px;color:rgba(255,255,255,.85);padding-left:48px;letter-spacing:.06em;}

/* =========================================================
  フッター（ネイビー・高密度4カラム）
========================================================= */
.site-f{background:var(--navy);color:#cdddf0;}
.site-f__top{
	max-width:var(--wrap);margin:0 auto;padding:52px 28px 44px;
	display:grid;grid-template-columns:1.25fr 1fr .9fr 1.15fr;gap:44px;
}
.site-f__col-title{font-size:12.5px;font-weight:700;color:#fff;letter-spacing:.16em;margin-bottom:16px;display:flex;align-items:center;gap:9px;}
.site-f__col-title::before{content:"";width:6px;height:6px;background:var(--orange-soft);}
/* 白ロゴ（[aic_footer_logo] は img 自体にクラスが付く） */
img.site-f__logo-img,.site-f__logo-img img{height:48px;width:auto;}
.site-f__brand-name{color:#fff;font-weight:900;font-size:21px;letter-spacing:.05em;font-feature-settings:"palt";display:inline-block;}
.site-f__brand-en{font-family:var(--font2);font-weight:600;font-size:11px;letter-spacing:.26em;color:#9bb6d6;margin-top:4px;}
.site-f__brand-desc{margin-top:16px;font-size:12.5px;line-height:2.1;color:#bcd0e8;}
.site-f__info li{display:flex;gap:12px;font-size:13px;line-height:1.9;color:#cdddf0;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.1);}
.site-f__info li:last-child{border-bottom:0;}
.site-f__info i{color:var(--blue-bright);margin-top:6px;font-size:13px;flex:0 0 16px;text-align:center;}
.site-f__info .tel-num{font-family:var(--font2);font-weight:700;font-size:21px;letter-spacing:.04em;color:#fff;line-height:1.4;display:block;}
.site-f__info .tel-hours{display:block;font-size:11.5px;color:#9bb6d6;}
.site-f__menu{display:grid;grid-template-columns:1fr;gap:2px;}
.site-f__menu li{display:block;}
.site-f__menu a{display:flex;align-items:center;gap:9px;font-size:13px;color:#bcd0e8;padding:5px 0;transition:color .15s;}
.site-f__menu a::before{content:"";width:10px;height:1px;background:var(--blue-bright);flex:0 0 auto;}
.site-f__menu a:hover{color:#fff;}
.site-f__menu a .en{display:none;}
.site-f__bottom{border-top:1px solid rgba(255,255,255,.14);}
.site-f__bottom-inner{display:flex;align-items:center;gap:20px;height:54px;font-size:11.5px;color:#9bb6d6;}
.site-f__legal:hover{color:#fff;}
.site-f__copy{margin-left:auto;}

/* footer 内の実績新着（aic_posts variant=footer・FB3: 日付なし・左右パディングなし） */
.aic-posts--footer .aic-posts__items{grid-template-columns:1fr;gap:0;}
.aic-posts--footer .aic-posts__item{background:transparent;border:0;padding:0;border-radius:0;} /* 既定の白背景/余白を無効化 */
.aic-posts--footer .aic-posts__body{padding:0;}
.aic-posts--footer .aic-posts__link{display:block;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.1);}
.aic-posts--footer .aic-posts__thumb{display:none;}
.aic-posts--footer .aic-posts__excerpt{display:none;}
.aic-posts--footer .aic-posts__date{display:none;}
.aic-posts--footer .aic-posts__title{font-size:12.5px;color:#cdddf0;line-height:1.8;font-weight:400;margin:0;}

/* =========================================================
  ページヒーロー（下層共通: 町と空の写真 center center・
  オーバーレイなし=文字が背景の白い空に載るため文字は青・コンパクトに）
========================================================= */
.page-hero{
	position:relative;overflow:hidden;
	background:url('/wp-content/uploads/2026/06/page-hero.webp') center center/cover no-repeat;
}
.page-hero__inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;padding:88px 28px 56px;} /* FB3: 上に余白 */
.page-hero__box{text-align:center;display:flex;flex-direction:column;align-items:center;}
.page-hero__title-jp{font-size:36px;font-weight:900;color:var(--blue);letter-spacing:.08em;order:1;}
.page-hero__title-en{
	order:2;margin-top:4px;margin-bottom:0;text-align:center;
	font-family:var(--font2);font-size:14px;font-weight:600;letter-spacing:.32em;color:var(--blue-bright);text-transform:uppercase;
}

/* =========================================================
  下層ページ共通レイアウト
========================================================= */
.page-section{padding:90px 0;position:relative;overflow:hidden;}
.page-section.bg-blue{background:var(--bg-blue);}
.lead-narrow{max-width:800px;margin:0 auto 56px;text-align:center;color:var(--ink-soft);line-height:2.2;}
.lead-narrow:last-child{margin-bottom:0;}

/* 事業内容 詳細（FB2/FB3: 画面半分を写真・写真は16:9・行間に隙間・
   文字側は 1400px グリッドに揃うよう可変パディングで中央寄せ） */
.service-detail{display:flex;align-items:stretch;max-width:none;margin:0 0 88px;}
.service-detail:last-child{margin-bottom:0;}
.service-detail:nth-child(even){flex-direction:row-reverse;}
.service-detail__media{flex:0 0 50%;min-width:0;position:relative;aspect-ratio:16/9;}
.service-detail__media img{width:100%;height:100%;object-fit:cover;border-radius:0;}
.service-detail__media .ph{width:100%;height:100%;border-radius:0;}
.service-detail__num{
	position:absolute;top:18px;left:22px;z-index:2;
	font-family:var(--font2);font-weight:900;font-size:48px;line-height:1;
	color:transparent;-webkit-text-stroke:1.4px #fff;
}
.service-detail__body{
	flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;
	padding:60px max(28px,calc((100vw - var(--wrap-xl)) / 2)) 60px 64px;
}
.service-detail:nth-child(even) .service-detail__body{
	padding:60px 64px 60px max(28px,calc((100vw - var(--wrap-xl)) / 2));
}
.service-detail__en{font-family:var(--font2);font-weight:600;font-size:12.5px;letter-spacing:.26em;color:var(--blue-bright);text-transform:uppercase;}
.service-detail__body h3{font-size:34px;font-weight:900;color:var(--blue);margin:8px 0 10px;letter-spacing:.04em;} /* FB3: 写真に負けないサイズ */
.service-detail__body .sub{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:18px;}
.service-detail__body .sub::after{content:"";display:block;width:38px;height:3px;background:var(--orange);margin-top:12px;border-radius:2px;}
.service-detail__body p{font-size:14.5px;color:var(--ink);line-height:2;margin-bottom:18px;}
.service-detail__list{display:flex;flex-wrap:wrap;gap:8px;}
.service-detail__list li{font-size:13px;font-weight:700;color:var(--blue);background:var(--bg-blue);border:1px solid var(--line);border-radius:3px;padding:6px 14px;}

/* スペック表（採用・会社概要） */
.spec-table{width:100%;border-collapse:collapse;max-width:880px;margin:0 auto;font-size:14px;background:#fff;border:1px solid var(--line);}
.spec-table th,.spec-table td{text-align:left;vertical-align:top;padding:16px 18px;border-bottom:1px solid var(--line);}
.spec-table tr:last-child th,.spec-table tr:last-child td{border-bottom:0;}
.spec-table th{width:170px;font-weight:700;color:var(--blue);background:var(--bg-blue-2);white-space:nowrap;border-right:1px solid var(--line);}
.spec-table td{color:var(--ink);line-height:1.9;}

/* 代表挨拶（写真なしレイアウト・FB2）。署名は右寄せ＋明朝（全サイト作法） */
.greeting{max-width:800px;margin:0 auto;}
.greeting__body p{font-size:15px;line-height:2.2;margin-bottom:20px;color:var(--ink);}
.greeting__sign{
	margin-top:28px;text-align:right;color:var(--ink);
	font-family:var(--font-mincho);font-weight:600;font-size:14px;letter-spacing:.08em;
}
.greeting__sign strong{font-family:var(--font-mincho);font-size:24px;font-weight:600;margin-left:12px;letter-spacing:.12em;}

/* Googleマップ埋め込み */
.map-embed{max-width:1000px;margin:0 auto;border-radius:6px;overflow:hidden;border:1px solid var(--line);}
.map-embed iframe{display:block;width:100%;height:400px;border:0;}

/* 汎用: 文字のオレンジ下線マーカー */
.mk{position:relative;display:inline-block;}
.mk::after{content:"";position:absolute;left:1%;bottom:.02em;width:98%;height:4px;background:var(--orange);z-index:-1;}

/* 事業内容詳細のフルブリードセクション（wrap なし） */
.svc-details{padding:0 0 100px;}

/* 採用 募集メッセージ（テキスト×写真） */
.recruit-msg{display:flex;gap:56px;align-items:center;max-width:1060px;margin:0 auto;}
.recruit-msg__body{flex:1.15;min-width:0;}
.recruit-msg .rm-en{
	display:flex;align-items:center;gap:12px;margin-bottom:14px;
	font-family:var(--font2);font-weight:600;font-size:12.5px;letter-spacing:.3em;color:var(--orange);
}
.recruit-msg .rm-en::before{content:"";width:8px;height:8px;background:var(--orange);}
.recruit-msg h2{font-size:30px;font-weight:900;color:var(--ink);line-height:1.65;margin-bottom:22px;}
.recruit-msg h2 .blue{color:var(--blue);}
.recruit-msg p{font-size:15px;color:var(--ink);line-height:2.15;}
.recruit-msg__media{flex:1;min-width:0;position:relative;}
.recruit-msg__media img{width:100%;height:340px;object-fit:cover;border-radius:6px;}
.recruit-msg__media::after{content:"";position:absolute;right:-14px;bottom:-14px;width:56px;height:56px;background:var(--orange);border-radius:6px;z-index:-1;}

/* お電話ブロック（お問い合わせページ上部・デカめ） */
.contact-tel-top{
	max-width:760px;margin:0 auto 48px;padding:36px 28px;text-align:center;
	background:var(--bg-blue);border-radius:8px;
}
.contact-tel-top .cap{font-size:14px;font-weight:700;color:var(--ink);}
.contact-tel-top a{display:inline-flex;align-items:center;gap:16px;margin-top:10px;color:var(--blue);}
.contact-tel-top a i{font-size:34px;color:var(--orange);}
.contact-tel-top .num{font-family:var(--font2);font-weight:700;font-size:56px;line-height:1;letter-spacing:.03em;}
.contact-tel-top .hours{display:block;margin-top:10px;font-size:13px;color:var(--ink-soft);}

/* お問い合わせフォーム枠（リッチ版・FB2） */
.contact-box{max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:8px;padding:52px 64px 56px;}
.contact-note{max-width:760px;margin:0 auto 36px;text-align:center;color:var(--ink-soft);line-height:2.1;}

/* =========================================================
  テーマテンプレート: [aic_posts]（works グリッド = 投稿モック風）
========================================================= */
.aic-posts__items{display:grid;gap:22px;}
.aic-posts--grid .aic-posts__items{grid-template-columns:repeat(3,1fr);} /* FB2: 3列（トップ3+3 / 一覧も3） */
.aic-posts--simple .aic-posts__items{grid-template-columns:1fr;gap:0;}
.aic-posts__item{background:#fff;}
.aic-posts__link{display:block;color:inherit;}
.aic-posts--grid .aic-posts__item{
	border:1px solid var(--line);border-radius:0;overflow:hidden; /* FB2: アイキャッチの角丸解除 */
	transition:border-color .3s,transform .3s var(--ease-out);
}
.aic-posts--grid .aic-posts__item:hover{border-color:var(--blue);transform:translateY(-4px);}
.aic-posts--grid .aic-posts__thumb{aspect-ratio:4/3;overflow:hidden;background:#d9e3ec;}
.aic-posts--grid .aic-posts__img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out);}
.aic-posts--grid .aic-posts__item:hover .aic-posts__img{transform:scale(1.06);}
.aic-posts--grid .aic-posts__body{padding:16px 16px 20px;}
.aic-posts__date{font-family:var(--font2);font-size:12.5px;color:var(--blue);font-weight:600;letter-spacing:.08em;}
.aic-posts__cat{display:inline-block;font-size:11px;font-weight:700;color:var(--blue);background:var(--bg-blue);border-radius:3px;padding:2px 9px;margin-left:8px;}
.aic-posts--grid .aic-posts__title{font-size:15px;font-weight:700;color:var(--ink);margin-top:8px;line-height:1.7;}
.aic-posts--grid .aic-posts__excerpt{font-size:13px;color:var(--ink-soft);margin-top:8px;line-height:1.8;}
/* 本番はアイキャッチがあれば抜粋を出さない（本番実装ナレッジ） */
.aic-posts__item:has(.aic-posts__thumb) .aic-posts__excerpt{display:none;}
.archive-page__item:has(.archive-page__thumb) .archive-page__excerpt{display:none;}

/* news シンプル（リスト） */
.aic-posts--simple .aic-posts__link{display:flex;gap:20px;align-items:baseline;padding:20px 4px;border-bottom:1px solid var(--line);}
.aic-posts--simple .aic-posts__thumb{display:none;}
.aic-posts--simple .aic-posts__date{flex:0 0 auto;}
.aic-posts--simple .aic-posts__title{font-size:15px;font-weight:700;color:var(--ink);}

.aic-posts__pagination{display:flex;justify-content:center;gap:8px;margin-top:40px;}
.aic-posts__pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 8px;border:1px solid var(--line);border-radius:4px;color:var(--blue);font-weight:700;font-family:var(--font2);}
.aic-posts__pagination .page-numbers.current{background:var(--blue);color:#fff;border-color:var(--blue);}

/* =========================================================
  テーマテンプレート: アーカイブ（works / news 一覧）
========================================================= */
.archive-page{max-width:var(--wrap);margin:0 auto;padding:72px 28px;}
.archive-page__header{text-align:center;margin-bottom:48px;}
.archive-page__title{font-size:28px;font-weight:900;color:var(--blue);}
.archive-page__description{margin-top:12px;color:var(--ink-soft);}
.archive-page__list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.archive-page__item{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;transition:border-color .3s,transform .3s var(--ease-out);}
.archive-page__item:hover{border-color:var(--blue);transform:translateY(-4px);}
.archive-page__thumb{display:block;aspect-ratio:4/3;overflow:hidden;background:#d9e3ec;}
.archive-page__thumb-img{width:100%;height:100%;object-fit:cover;}
.archive-page__body{padding:16px 16px 20px;}
.archive-page__date{font-family:var(--font2);font-size:12.5px;font-weight:600;color:var(--blue);letter-spacing:.08em;}
.archive-page__cat{display:inline-block;font-size:11px;font-weight:700;color:var(--blue);background:var(--bg-blue);border-radius:3px;padding:2px 8px;margin-left:6px;}
.archive-page__item-title{font-size:16px;font-weight:700;color:var(--ink);margin-top:8px;line-height:1.6;}
.archive-page__item-title a{color:inherit;}
.archive-page__excerpt{font-size:13px;color:var(--ink-soft);margin-top:8px;line-height:1.8;}
.archive-page__pagination{display:flex;justify-content:center;gap:8px;margin-top:48px;}
.archive-page__pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 8px;border:1px solid var(--line);border-radius:4px;color:var(--blue);font-weight:700;font-family:var(--font2);}
.archive-page__pagination .page-numbers.current{background:var(--blue);color:#fff;border-color:var(--blue);}
.archive-page__empty{text-align:center;color:var(--ink-soft);padding:60px 0;}

/* =========================================================
  テーマテンプレート: 投稿詳細
========================================================= */
.single-post{max-width:820px;margin:0 auto;padding:72px 28px;}
.single-post__meta{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.single-post__date{font-family:var(--font2);font-size:13px;font-weight:600;color:var(--blue);letter-spacing:.08em;}
.single-post__cat{font-size:11px;font-weight:700;color:var(--blue);background:var(--bg-blue);border-radius:3px;padding:2px 8px;}
.single-post__title{font-size:28px;font-weight:900;color:var(--ink);line-height:1.5;margin-bottom:24px;}
.single-post__thumb{margin-bottom:32px;border-radius:6px;overflow:hidden;}
.single-post__thumb-img{width:100%;height:auto;}
.single-post__content{font-size:15px;line-height:2;color:var(--ink);}
.single-post__content h2{font-size:22px;font-weight:900;color:var(--blue);margin:36px 0 16px;padding-left:14px;border-left:4px solid var(--orange);}
.single-post__content h3{font-size:18px;font-weight:700;color:var(--ink);margin:28px 0 12px;}
.single-post__content p{margin-bottom:18px;}
.single-post__content img{border-radius:6px;margin:16px 0;}
.single-post__nav{max-width:820px;margin:48px auto 0;padding:0 28px;}
.single-post__nav-links{display:flex;justify-content:space-between;gap:20px;}
.single-post__nav-link{font-size:13px;color:var(--blue);font-weight:700;}
.single-post__nav-link--next{margin-left:auto;text-align:right;}

/* =========================================================
  テーマテンプレート: 検索結果 / 404
========================================================= */
.search-results{max-width:820px;margin:0 auto;padding:72px 28px;}
.search-results__query{font-size:20px;font-weight:900;color:var(--ink);margin-bottom:32px;}
.search-results__count{color:var(--blue);}
.search-results__empty{text-align:center;color:var(--ink-soft);padding:40px 0;}
.search-results__btn{display:inline-flex;align-items:center;justify-content:center;margin-top:24px;padding:14px 30px;background:var(--blue);color:#fff;border-radius:4px;font-weight:700;}

.error-404{text-align:center;padding:100px 28px;}
.error-404__code{font-family:var(--font2);font-size:96px;font-weight:900;color:transparent;-webkit-text-stroke:2px var(--blue);line-height:1;}
.error-404__heading{font-size:22px;font-weight:900;color:var(--ink);margin:16px 0 12px;}
.error-404__text{color:var(--ink-soft);margin-bottom:28px;}
.error-404__btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 30px;background:var(--blue);color:#fff;border-radius:4px;font-weight:700;}

/* =========================================================
  テーマテンプレート: Contact Form 7（リッチ・FB2）
========================================================= */
.wpcf7{max-width:760px;margin:0 auto;}
.wpcf7-form p{margin-bottom:26px;}
.wpcf7-form label{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);font-size:14.5px;margin-bottom:10px;}
/* 必須/任意チップ */
.wpcf7-required{
	display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;letter-spacing:.08em;
	color:#fff;background:var(--orange);border-radius:3px;padding:2px 8px;line-height:1.5;
}
.wpcf7-optional{
	display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;letter-spacing:.08em;
	color:var(--ink-soft);background:var(--bg-blue);border-radius:3px;padding:2px 8px;line-height:1.5;
}
.wpcf7-form-control{
	width:100%;padding:15px 16px;border:1.5px solid #cfdbe7;border-radius:6px;
	font-family:var(--font1);font-size:15px;color:var(--ink);background:var(--bg-blue-2);
	transition:background .2s,border-color .2s,box-shadow .2s;
}
.wpcf7-form-control:hover{border-color:#aac4dd;}
.wpcf7-form-control:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(26,111,192,.14);}
select.wpcf7-form-control{
	appearance:none;-webkit-appearance:none;cursor:pointer;
	background-image:linear-gradient(45deg,transparent 50%,var(--blue) 50%),linear-gradient(135deg,var(--blue) 50%,transparent 50%);
	background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;
	background-size:6px 6px,6px 6px;background-repeat:no-repeat;
}
.wpcf7-textarea{min-height:180px;resize:vertical;}
.wpcf7-not-valid-tip{color:#d6453c;font-size:12.5px;margin-top:6px;display:block;}
/* 送信ボタン（サイト共通ボタンと同テンション・スイープは擬似要素が使えないためグラデ位置移動で代替） */
.wpcf7-submit{
	display:inline-flex;min-width:320px;justify-content:center;margin:8px auto 0;padding:18px 30px;
	border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer;color:#fff;
	background:linear-gradient(100deg,var(--blue) 0%,var(--blue) 50%,var(--orange) 50%,var(--orange) 100%);
	background-size:220% 100%;background-position:0 0;
	transition:background-position .45s var(--ease-power),transform .3s var(--ease-out);
}
.wpcf7-submit:hover{background-position:100% 0;transform:translateY(-3px);}
.wpcf7-response-output{margin-top:16px;padding:14px;border-radius:4px;font-size:14px;}
