/*
Theme Name: AGAIN・CORE
Theme URI:
Author: 株式会社I am.
Description: AGAIN・CORE 株式会社 コーポレートサイト
Version: 1.0.0
Text Domain: again-core
*/

/* =========================================================
   0. 変数・リセット
   デザイン基準幅 1440px。--u は 1px を表すスケール単位。
   PC（1441px以上）では 1440px 固定でセンタリング。
   1440px以下では viewport に合わせて全体を等比縮小する。
   ========================================================= */
:root{
	--base: 1440;               /* デザイン基準幅 */
	--u: calc(100vw / var(--base)); /* 1px 相当（可変） */

	/* カラー */
	--c-navy:      #013A4F;
	--c-blue:      #0085B6;
	--c-blue-btn:  #0095B6;
	--c-ink:       #141417;
	--c-gray:      #6B6B73;
	--c-cream:     #FAFAF7;
	--c-cream2:    #FAFAF7;
	--c-green-bg:  #ECF2E2;
	--c-card-bg:   #F8FFF4;
	--c-footer:    #244F66;
	--c-footer-c:  #244266; /* フッターCONTACT文字色 */
	--c-copy-bar:  #1A3644;
	--c-white:     #FFF;

	/* グラデーション（共通） */
	--grad-h: linear-gradient(90deg, #013A4F 0%, #0085B6 52.4%, #013A4F 100%);
	--grad-btn: linear-gradient(90deg, #013A4F 0%, #0085B6 50.48%, #013A4F 100%);
	--grad-bar: linear-gradient(270deg, #013A4F 0%, #0085B6 50%, #013A4F 100%);

	/* フォント */
	--f-serif: "Noto Serif JP", serif;
	--f-en:    "Marcellus", serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
	margin:0;
	font-family:var(--f-serif);
	color:var(--c-ink);
	background:#fff; /* サイト全体の既定背景。下層ページの淡色は .page-body 側で個別指定 */
	line-height:1.6;
	overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }

/* PC最大幅で中央寄せ（1440px超では余白を出さず等倍固定） */
@media (min-width:1441px){
	:root{ --u: 1px; }
	body{ max-width:1440px; margin-inline:auto; }
}

/* グラデ文字ユーティリティ */
.sec-en{
	font-family:var(--f-en);
	font-weight:400;
	background:var(--grad-h);
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
	margin:0;
}
.sec-ja{
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:700;
	margin:0;
}

/* =========================================================
   1. ヘッダー
   既存テーマ構造 (#header / .header_pc / .header_nav / .header_cta / #drawer) 準拠
   ========================================================= */
#header{
	position:relative;
	z-index:20;
	height:calc(115 * var(--u));
	background:var(--c-cream);
}

/* --- PC ヘッダー --- */
.header_pc{
	position:relative;
	height:100%;
	width:calc(1440 * var(--u));
	margin-inline:auto;
}
.header_logo{
	position:absolute;
	top:calc(14 * var(--u));
	left:calc(60 * var(--u));
	width:calc(190 * var(--u));
	height:calc(88 * var(--u));
}
.header_logo a,
.header_logo img{ display:block; width:100%; height:100%; object-fit:contain; }

.header_item{
	position:absolute;
	top:0; right:calc(64 * var(--u));
	height:100%;
	display:flex;
	align-items:center;
	gap:calc(40 * var(--u));
}
.header_nav ul{
	display:flex;
	align-items:center;
	gap:calc(40 * var(--u));
}
.header_nav a{
	color:var(--c-gray);
	font-family:var(--f-serif);
	font-size:calc(13 * var(--u));
	font-weight:400;
	white-space:nowrap;
	transition:color .2s;
}
.header_nav a:hover{ color:var(--c-blue); }

/* CONTACT ボタン（ヘッダー） */
.header_cta a{
	display:grid;
	place-items:center;
	width:calc(190 * var(--u));
	height:calc(44 * var(--u));
	border-radius:calc(22 * var(--u));
	background:var(--grad-btn);
	color:var(--c-white);
	font-family:var(--f-en);
	font-size:calc(13 * var(--u));
	letter-spacing:calc(2.6 * var(--u));
	transition:opacity .2s;
}
.header_cta a:hover{ opacity:.88; }

/* --- ドロワー（SPメニュー / チェックボックス式）。PCでは非表示 --- */
#drawer{ display:none; }
#drawer #navTgl{ display:none; }

/* =========================================================
   2. FV（ファーストビュー）
   仕様: FV画像 1288x850、border-radius 60px 0 0 0、ヘッダー下0px・右寄せ
   ========================================================= */
.fv{
	position:relative;
	height:calc(850 * var(--u));
	background:var(--c-cream);
}
.fv__media{
	position:absolute;
	top:0; right:0;
	width:calc(1288 * var(--u));
	height:calc(850 * var(--u));
	border-radius:calc(60 * var(--u)) 0 0 0;
	overflow:hidden;
}
.fv__img{
	position:absolute;
	inset:0;
	width:100%; height:100%;
	object-fit:cover;
}

.fv__copy{
	position:absolute;
	top:calc(265 * var(--u));
	left:calc(34 * var(--u)); /* FV画像左端からの位置を全体左端と近似（右寄せ画像のため実質同等） */
	z-index:5;
	width:calc(760 * var(--u));
}
.fv__title{
	margin:0;
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(48 * var(--u));
	line-height:calc(72 * var(--u));
}
.fv__title-line{ display:block; }
.fv__title-line--grad{
	background:linear-gradient(90deg,#013A4F 0%,#0085B6 44.71%,#081317 100%);
	-webkit-background-clip:text; background-clip:text;
	-webkit-text-fill-color:transparent;
}
.fv__lead{
	margin:calc(22 * var(--u)) 0 0;
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(20 * var(--u));
	line-height:calc(30 * var(--u));
	background:linear-gradient(90deg,#013A4F 0%,#0085B6 52.4%,#013A4F 97.6%);
	-webkit-background-clip:text; background-clip:text;
	-webkit-text-fill-color:transparent;
}

/* =========================================================
   3. ABOUT US
   仕様: 背景 1440x560、ENは上97px/左613px、キャッチ上46px、本文幅723px
   ========================================================= */
.about{
	height:calc(560 * var(--u));
	background:var(--about-bg) center/cover no-repeat;
}
.about__inner{
	position:relative;
	width:calc(1440 * var(--u));
	height:100%;
	margin-inline:auto;
	padding-left:calc(613 * var(--u));
	padding-top:calc(97 * var(--u));
}
.about__en{
	font-size:calc(60 * var(--u));
	letter-spacing:calc(3.6 * var(--u));
	line-height:1;
}
.about__catch{
	margin:calc(46 * var(--u)) 0 0;
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(27 * var(--u));
	line-height:calc(40 * var(--u));
}
.about__body{
	width:calc(723 * var(--u));
	margin:calc(30 * var(--u)) 0 0;
	color:var(--c-gray);
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(16 * var(--u));
	line-height:calc(32 * var(--u));
}

/* =========================================================
   4. BUSINESS
   仕様: 一番後ろ背景 1440x1282 #ECF2E2 multiply、
         カード背景 1240x1162 radius40 #F8FFF4、下60px・左右中央
   ========================================================= */
.business{
	position:relative;
	width:calc(1440 * var(--u));
	margin-inline:auto;
	padding:calc(60 * var(--u)) 0;
	background:var(--c-green-bg);
}
.business__panel{
	position:relative;
	width:calc(1240 * var(--u));
	margin-inline:auto;
	padding:calc(34 * var(--u)) 0 calc(60 * var(--u));
	border-radius:calc(40 * var(--u));
	background:var(--c-card-bg);
	box-shadow:0 0 calc(25 * var(--u)) 0 rgba(0,0,0,0.25);
}
/* 見出しはパネル左49px（仕様どおり） */
.business__head{
	margin-bottom:calc(38 * var(--u));
	padding-left:calc(49 * var(--u));
}
/* カード行は 373×3 + 24×2 = 1167px。パネル1240内で中央寄せ */
.business__en{
	font-size:calc(60 * var(--u));
	letter-spacing:calc(3.6 * var(--u));
	line-height:1;
}
.business__head .sec-ja{ font-size:calc(20 * var(--u)); text-align:left; }

/* 上段3・下段2（下段は中央寄せ）。flex-wrap で3列→折返し2枚が自然に中央に来る */
.business__grid{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	column-gap:calc(24 * var(--u)); /* 左右12pxずつ */
	row-gap:calc(30 * var(--u));
}

.biz-card{
	position:relative;
	width:calc(373 * var(--u));
	background:var(--c-white);
	padding-bottom:calc(28 * var(--u));
	box-shadow:0 0 calc(20 * var(--u)) 0 rgba(0,0,0,0.12);
}
.biz-card__bar{
	display:block;
	width:calc(373 * var(--u));
	height:calc(5 * var(--u));
	background:var(--grad-bar);
}
.biz-card__bar--top{ position:absolute; top:0; left:0; z-index:2; }
.biz-card__bar--bottom{ position:absolute; bottom:0; left:0; z-index:2; }
.biz-card__thumb{
	width:calc(373 * var(--u));
	height:calc(248 * var(--u));
	overflow:hidden;
}
.biz-card__thumb img{ width:100%; height:100%; object-fit:cover; }
.biz-card__no{
	margin:calc(15 * var(--u)) 0 0;
	text-align:center;
	font-family:var(--f-en);
	font-size:calc(34 * var(--u));
	font-weight:400;
	line-height:1;
	background:var(--grad-bar);
	-webkit-background-clip:text; background-clip:text;
	-webkit-text-fill-color:transparent;
}
.biz-card__title{
	margin:calc(15 * var(--u)) 0 0;
	color:var(--c-ink);
	text-align:center;
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(20 * var(--u));
	line-height:calc(28 * var(--u));
}
.biz-card__text{
	width:calc(309 * var(--u));
	margin:calc(8 * var(--u)) auto 0;
	color:var(--c-gray);
	font-family:var(--f-serif);
	font-weight:400;
	font-size:calc(14 * var(--u));
	line-height:calc(24 * var(--u));
	text-align:left;
}

/* =========================================================
   5. COMPANY
   仕様: 背景 company-back、EN 60px、バー 882x1px 左右中央、
         項目名 左130px、行間バー
   ========================================================= */
.company{
	background:var(--company-bg) center/cover no-repeat;
	padding:calc(80 * var(--u)) 0 calc(80 * var(--u));
}
.company__inner{
	width:calc(882 * var(--u));
	margin-inline:auto;
	text-align:center;
}
.company__en{
	font-size:calc(60 * var(--u));
	letter-spacing:calc(3.6 * var(--u));
	line-height:1;
}
.company .sec-ja{ font-size:calc(20 * var(--u)); margin-top:calc(4 * var(--u)); }

.company__table{
	margin:calc(35 * var(--u)) 0 0;
	text-align:left;
}
.company__row{
	display:grid;
	grid-template-columns:calc(130 * var(--u)) 1fr;
	align-items:start;
	padding:calc(19 * var(--u)) 0 calc(18 * var(--u));
	border-bottom:1px solid rgba(20,20,23,.25);
}
.company__row:first-child{ border-top:1px solid rgba(20,20,23,.25); }
.company__row dt{
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(15 * var(--u));
	line-height:1.5;
}
.company__row dd{
	margin:0;
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:400;
	font-size:calc(15 * var(--u));
	line-height:calc(28 * var(--u));
}

/* =========================================================
   6. CONTACT バナー
   仕様: 1440x260 #0095B6、EN 60px 上34px、リード真下0、ボタン 240x56 radius51
   ========================================================= */
.contact-banner{
	width:calc(1440 * var(--u));
	height:calc(260 * var(--u));
	margin-inline:auto;
	background:var(--c-blue-btn);
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:calc(18 * var(--u));
	padding-top:calc(8 * var(--u));
}
.contact-banner__en{
	margin:0;
	color:var(--c-white);
	text-align:center;
	font-family:var(--f-en);
	font-weight:400;
	font-size:calc(60 * var(--u));
	letter-spacing:calc(3.6 * var(--u));
	line-height:1;
}
.contact-banner__lead{
	margin:0;
	color:var(--c-white);
	text-align:center;
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(20 * var(--u));
	line-height:1.2;
}
.contact-banner__btn{
	display:grid; place-items:center;
	width:calc(240 * var(--u));
	height:calc(56 * var(--u));
	border-radius:calc(51 * var(--u));
	background:var(--c-white);
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(16 * var(--u));
	transition:opacity .2s;
}
.contact-banner__btn:hover{ opacity:.85; }

/* =========================================================
   7. フッター
   既存構造 (.pagetop_block / .footer / .footer_inner / .copy) 準拠
   仕様: 背景 #244F66、ロゴ上25px、住所ロゴ下9px、
         CONTACT白ボタン 上21px/右98px、コピーライトバー 34px #1A3644
   ========================================================= */

/* --- フッター本体 --- */
.footer{ background:var(--c-footer); }
.footer_inner{
	width:calc(1440 * var(--u));
	margin-inline:auto;
	padding:calc(25 * var(--u)) calc(98 * var(--u)) calc(30 * var(--u));
}
.footer_row{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
}
.footer_logo{
	width:calc(190 * var(--u));
	height:calc(88 * var(--u));
	margin-left:calc(88 * var(--u)); /* ロゴ左186 - padding98 ≒ 88 */
}
.footer_logo img{ width:100%; height:100%; object-fit:contain; }
.footer_address{
	margin:calc(9 * var(--u)) 0 0;
	color:var(--c-white);
	font-family:var(--f-serif);
	font-weight:400;
	font-size:calc(14 * var(--u));
	text-align:center;
	line-height:1.4;
}
.footer_navarea{
	display:grid;
	justify-items:end;
	padding-top:calc(21 * var(--u));
	align-content:start;
}
/* メニュー4項目 ＋ CONTACT列を横1行に（上端揃え） */
.footer_navrow{
	display:flex;
	align-items:flex-start;
	gap:calc(40 * var(--u));
}
/* CONTACTボタン＋プライバシーを縦に。プライバシーはボタン幅の中央に */
.footer_ctacol{
	display:flex;
	flex-direction:column;
	align-items:center;
	row-gap:calc(14 * var(--u));
}
.footer_cta a{
	display:grid; place-items:center;
	width:calc(190 * var(--u));
	height:calc(44 * var(--u));
	border-radius:calc(22 * var(--u));
	background:var(--c-white);
	color:var(--c-footer-c);
	font-family:var(--f-en);
	font-size:calc(13 * var(--u));
	letter-spacing:calc(2.6 * var(--u));
	transition:opacity .2s;
}
.footer_cta a:hover{ opacity:.85; }
.footer_nav ul{
	display:flex;
	align-items:center;
	height:calc(44 * var(--u)); /* CONTACTボタンと縦位置を揃える */
	gap:calc(40 * var(--u));
}
.footer_nav a{
	color:var(--c-white);
	font-family:var(--f-serif);
	font-weight:400;
	font-size:calc(13 * var(--u));
	white-space:nowrap;
}
.footer_privacy{
	color:var(--c-white);
	text-align:center;
	font-family:var(--f-serif);
	font-weight:400;
	font-size:calc(13 * var(--u));
}
.footer_nav a:hover,
.footer_privacy:hover{ text-decoration:underline; }

/* --- コピーライトバー --- */
.copy{
	margin:0;
	height:calc(34 * var(--u));
	background:var(--c-copy-bar);
	display:grid; place-items:center;
}
.copy small{
	color:var(--c-white);
	font-family:var(--f-en);
	font-size:calc(14 * var(--u));
	letter-spacing:.02em;
}

/* =========================================================
   8. 下層ページ共通（ページヒーロー）
   CONTACT / PRIVACY 上部のグラデーションタイトルブロック
   ========================================================= */
.page-hero{
	position:relative;
	width:calc(1440 * var(--u));
	height:calc(380 * var(--u));
	margin-inline:auto;
	background:transparent;
}
/* 背景グラデーション（コード生成）: 1288×380, radius 60 0 0 0, opacity .5, 右寄せ */
.page-hero::before{
	content:"";
	position:absolute;
	top:0; right:0;
	width:calc(1288 * var(--u));
	height:calc(380 * var(--u));
	border-radius:calc(60 * var(--u)) 0 0 0;
	opacity:.5;
	background:linear-gradient(289deg, #43817F 23.74%, #B5CC7F 80.67%);
}
.page-hero__inner{
	position:absolute;
	left:calc(134 * var(--u));
	top:calc(135 * var(--u));
	z-index:1;
}
.page-hero__en{
	margin:0;
	font-family:var(--f-en);
	font-weight:400;
	font-size:calc(30 * var(--u));
	line-height:normal;
	letter-spacing:calc(1.8 * var(--u));
	background:linear-gradient(90deg,#013A4F 0%,#0085B6 52.4%,#013A4F 100%);
	-webkit-background-clip:text; background-clip:text;
	-webkit-text-fill-color:transparent;
}
/* 日本語タイトル: FV上から173px（EN上135px＋38px下）= inner基準で38px下 */
.page-hero__ja{
	margin:calc(8 * var(--u)) 0 0;
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(48 * var(--u));
	line-height:calc(48 * var(--u));
	background:linear-gradient(90deg,#013A4F 0%,#0085B6 44.71%,#081317 100%);
	-webkit-background-clip:text; background-clip:text;
	-webkit-text-fill-color:transparent;
}
.page-body{
	position:relative;
	padding-bottom:calc(80 * var(--u));
}
/* 本文背景: #E2F0F2 を multiply で敷く（コンテンツには影響させない） */
.page-body::before{
	content:"";
	position:absolute; inset:0;
	background:#E2F0F2;
	mix-blend-mode:multiply;
	z-index:0;
	pointer-events:none;
}
.page-body > *{ position:relative; z-index:1; }

/* =========================================================
   9. CONTACT ページ
   ========================================================= */
.contact-wrap{
	width:calc(1200 * var(--u));
	margin-inline:auto;
	padding-top:calc(70 * var(--u));
}
.contact-lead{
	text-align:center;
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:400;
	font-size:calc(16 * var(--u));
	line-height:1.9;
	white-space:nowrap;             /* 1行で表示 */
	margin:0 0 calc(50 * var(--u));
}
/* 電話帯: 800×120, radius16, #DEF8ED, shadow。中央寄せ */
.tel-box{
	width:calc(800 * var(--u));
	min-height:calc(120 * var(--u));
	margin:0 auto calc(50 * var(--u));
	background:#DEF8ED;
	border-radius:calc(16 * var(--u));
	box-shadow:0 0 calc(25 * var(--u)) 0 rgba(0,0,0,0.10);
	padding:calc(20 * var(--u));
	text-align:center;
	display:flex;
	flex-direction:column;
	justify-content:center;
}
.tel-box__label{
	margin:0;
	color:var(--c-gray);
	font-family:var(--f-serif);
	font-weight:400;
	font-size:calc(18 * var(--u));
}
.tel-box__num{
	margin:calc(6 * var(--u)) 0;
	font-family:var(--f-en);
	font-size:calc(40 * var(--u));
	color:var(--c-navy);
	letter-spacing:calc(2 * var(--u));
}
.tel-box__num a{ color:inherit; }
.tel-box__hours{
	margin:0;
	color:var(--c-gray);
	font-family:var(--f-serif);
	font-size:calc(15 * var(--u));
}

/* Contact Form 7 スタイル */
/* フォーム本体は読みやすい幅で中央寄せ（wrapは1200pxだがフォームは絞る） */
.contact-form{
	width:calc(800 * var(--u));
	margin-inline:auto;
}
.contact-form .wpcf7-form p{ margin:0 0 calc(24 * var(--u)); }
.contact-form label{
	display:block;
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(16 * var(--u));
	margin-bottom:calc(10 * var(--u));
}
.contact-form .req{ color:var(--c-ink); font-weight:700; margin-left:.5em; }
.contact-form .opt{ color:var(--c-gray); font-weight:400; margin-left:.5em; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea{
	width:100%;
	border:none;
	border-radius:calc(10 * var(--u));
	background:var(--c-white);
	padding:calc(16 * var(--u)) calc(18 * var(--u));
	font-family:var(--f-serif);
	font-size:calc(15 * var(--u));
	color:var(--c-ink);
	box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.contact-form textarea{ min-height:calc(160 * var(--u)); resize:vertical; }
.contact-form select{ appearance:none; background-image:none; }
.contact-form .privacy-note{
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(14 * var(--u));
	line-height:1.8;
}
.contact-form .privacy-note a{ text-decoration:underline; }

.contact-form .submit-wrap{ text-align:center; margin-top:calc(40 * var(--u)); }
.contact-form input[type="submit"]{
	display:block;
	margin-inline:auto;    /* 左右センター確実化 */
	width:calc(260 * var(--u));
	height:calc(66 * var(--u));
	border:none;
	border-radius:calc(33 * var(--u));
	background:var(--grad-btn);
	color:var(--c-white);
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(17 * var(--u));
	cursor:pointer;
	transition:opacity .2s;
}
.contact-form input[type="submit"]:hover{ opacity:.9; }
.wpcf7-not-valid-tip{ color:#c0392b; font-size:calc(13 * var(--u)); }
.wpcf7-response-output{
	margin:calc(20 * var(--u)) 0 0 !important;
	border-radius:calc(8 * var(--u));
	font-size:calc(14 * var(--u));
}

/* =========================================================
   10. PRIVACY ページ
   ========================================================= */
.privacy-wrap{
	width:calc(1120 * var(--u));
	margin-inline:auto;
	padding-top:calc(60 * var(--u));
}
.privacy-intro{
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-size:calc(15 * var(--u));
	line-height:1.9;
	margin:0 0 calc(50 * var(--u));
}
.privacy-item{
	padding:calc(30 * var(--u)) 0;
	border-bottom:1px solid rgba(20,20,23,.12);
}
.privacy-item h2{
	margin:0 0 calc(16 * var(--u));
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(20 * var(--u));
}
.privacy-item p{
	margin:0 0 calc(8 * var(--u));
	color:var(--c-ink);
	font-family:var(--f-serif);
	font-weight:400;
	font-size:calc(15 * var(--u));
	line-height:1.9;
}
.privacy-contact{
	width:calc(1120 * var(--u));
	min-height:calc(100 * var(--u));
	margin:calc(40 * var(--u)) auto 0;
	padding:calc(24 * var(--u)) calc(32 * var(--u));
	background:#EAF2F3;
	border-radius:calc(8 * var(--u));
}
.privacy-contact h3{
	margin:0 0 calc(12 * var(--u));
	font-family:var(--f-serif);
	font-weight:700;
	font-size:calc(16 * var(--u));
}
.privacy-contact p{
	margin:0 0 calc(6 * var(--u));
	font-family:var(--f-serif);
	font-size:calc(14 * var(--u));
	line-height:1.8;
}
.privacy-contact a{ text-decoration:underline; }

/* =========================================================
   11. レスポンシブ  ── タブレット
   1024px以下: スケール基準を狭め、余白を柔軟化
   ========================================================= */
@media (max-width:1024px){
	:root{ --u: calc(100vw / 1024); }
	.about__inner{ padding-left:calc(560 * var(--u)); }
	.business{ width:100%; }
	.business__panel{ width:92%; }
	.contact-wrap,.privacy-wrap{ width:88%; }
}

/* =========================================================
   12. レスポンシブ  ── スマートフォン（〜768px）
   ここから px 固定＋縦積みレイアウトへ切替
   ========================================================= */
@media (max-width:768px){
	:root{ --u: 1px; } /* スケール解除、以下は実寸で組む */

	body{ max-width:100%; }

	/* --- ヘッダー（SP）--- */
	#header{ height:64px; }
	.header_pc{ width:100%; height:100%; }
	.header_logo{ top:12px; left:16px; width:120px; height:40px; }
	.header_item{ display:none; } /* PC用ナビ/CTAはSPで非表示。ドロワーに切替 */

	/* --- ドロワー（チェックボックス式）--- */
	#drawer{ display:block; }

	/* ハンバーガーアイコン（open ラベル）
	   ※ header 内に絶対配置。WordPress管理バー(fixed)と重ならないよう
	     fixed をやめ、ヘッダー基準にする */
	#drawer .open{
		position:absolute; top:0; right:0; z-index:100;
		width:64px; height:64px;
		display:flex; align-items:center; justify-content:center;
		cursor:pointer;
	}
	#drawer .open span,
	#drawer .open span::before,
	#drawer .open span::after{
		content:''; display:block; position:absolute;
		width:26px; height:2px; background:var(--c-navy);
		transition:transform .3s, opacity .3s;
	}
	#drawer .open span::before{ transform:translateY(-8px); }
	#drawer .open span::after{  transform:translateY(8px); }

	/* オーバーレイ（close ラベル）。開いている間だけ表示 */
	#drawer .close{
		display:none;
		position:fixed; inset:0; z-index:90;
		background:rgba(0,0,0,.4);
	}

	/* スライドメニュー本体 */
	#drawer .sp_menu{
		position:fixed; top:0; right:0; z-index:95;
		width:78%; max-width:320px; height:100%;
		background:var(--c-cream);
		padding:88px 28px 40px;
		transform:translateX(100%);
		transition:transform .35s ease;
		box-shadow:-8px 0 24px rgba(0,0,0,.15);
		overflow-y:auto;
	}

	/* チェックON時の状態変化 */
	#navTgl:checked ~ .close{ display:block; }
	#navTgl:checked ~ .sp_menu{ transform:translateX(0); }
	#navTgl:checked ~ .open span{ background:transparent; }
	#navTgl:checked ~ .open span::before{ transform:translateY(0) rotate(45deg); }
	#navTgl:checked ~ .open span::after{  transform:translateY(0) rotate(-45deg); }

	/* SPメニュー内ナビ */
	.header_nav_block ul{ display:block; }
	.header_nav_block li{ border-bottom:1px solid rgba(20,20,23,.1); }
	.header_nav_block a{
		display:block; padding:16px 4px;
		font-family:var(--f-serif);
		font-size:15px; color:var(--c-ink);
	}
	.header_cta_sp{ margin-top:24px; }
	.header_cta_sp a{
		display:grid; place-items:center;
		width:100%; height:50px;
		border-radius:25px;
		background:var(--grad-btn);
		color:var(--c-white);
		font-family:var(--f-en);
		font-size:14px; letter-spacing:2px;
	}
	.header_tel{ margin-top:20px; text-align:center; }
	.header_tel a{
		font-family:var(--f-serif);
		font-size:15px; font-weight:700; color:var(--c-navy);
	}

	/* --- FV --- */
	.fv{ height:auto; background:var(--c-cream); }
	.fv__media{
		position:relative; width:100%; height:auto;
		border-radius:0 0 0 32px;
		aspect-ratio:1288/850;
	}
	.fv__img{ position:absolute; inset:0; }
	.fv__copy{
		position:static; width:auto;
		padding:28px 20px 40px;
		background:var(--c-cream);
	}
	.fv__title{ font-size:28px; line-height:1.5; }
	.fv__lead{ font-size:15px; line-height:1.7; margin-top:16px; }

	/* --- ABOUT --- */
	.about{
		height:auto;
		/* SP専用背景（写真＋淡色エフェクト込み）。上部に余白を取り文字は下側に重ねる */
		background:var(--about-bg-sp) top center / 100% auto no-repeat;
		background-color:#e6eef0; /* 画像下端より下を埋める淡色 */
		padding:300px 24px 56px;   /* 上部300px＝写真領域を空けてテキストを下へ */
	}
	.about__inner{ width:auto; padding:0; }
	.about__en{ font-size:38px; letter-spacing:2px; }
	.about__catch{ font-size:20px; line-height:1.5; margin-top:24px; }
	.about__body{ width:auto; font-size:14px; line-height:1.9; margin-top:20px; }

	/* --- BUSINESS --- */
	/* 緑背景(#ECF2E2)＋multiply をSPでも敷き、パネル上下の白余白を埋める。
	   multiply は背景レイヤー(::before)だけに掛け、白カードには影響させない */
	.business{
		position:relative;
		width:100%;
		padding:40px 0;            /* パネル上下の緑余白。marginでなくpaddingで確実に */
		background:transparent;
	}
	.business::before{
		content:"";
		position:absolute; inset:0;
		background:var(--c-green-bg);
		mix-blend-mode:multiply;
		z-index:0;
		pointer-events:none;
	}
	.business__panel{
		position:relative;
		z-index:1;
		width:calc(100% - 32px);
		margin:0 auto;
		padding:28px 16px 40px;
		border-radius:24px;
	}
	.business__en{ font-size:38px; letter-spacing:2px; }
	.business__head .sec-ja{ font-size:16px; }
	.business__grid{
		grid-template-columns:1fr;
		max-width:340px;
		margin-inline:auto;
		row-gap:24px;
	}
	.biz-card:nth-child(4),
	.biz-card:nth-child(5){
		grid-column:auto; justify-self:auto; margin:0;
	}
	.biz-card{ width:100%; }
	.biz-card__bar,.biz-card__thumb{ width:100%; }
	.biz-card__thumb{ height:auto; aspect-ratio:373/248; }
	.biz-card__no{ font-size:30px; }
	.biz-card__title{ font-size:18px; }
	.biz-card__text{ width:auto; padding:0 16px; }

	/* --- COMPANY --- */
	.company{ padding:56px 20px; background-size:cover; }
	.company__inner{ width:auto; }
	.company__en{ font-size:38px; letter-spacing:2px; }
	.company__row{
		grid-template-columns:1fr;
		gap:4px;
		padding:14px 0;
	}
	.company__row dt{ font-size:14px; }
	.company__row dd{ font-size:14px; line-height:1.7; }

	/* --- CONTACT バナー --- */
	.contact-banner{
		width:100%; height:auto;
		padding:44px 20px;
		gap:14px;
	}
	.contact-banner__en{ font-size:40px; letter-spacing:2px; }
	.contact-banner__lead{ font-size:16px; }
	.contact-banner__btn{ width:220px; height:52px; font-size:15px; }

	/* --- フッター（SP）：ロゴ・住所・メニューは非表示、コピーライトのみ --- */
	.footer_inner{ display:none; }        /* ロゴ／住所／メニュー6項目を非表示 */
	.copy{ height:auto; padding:16px 12px; }

	/* --- ページヒーロー（下層） --- */
	.page-hero{ width:100%; height:auto; min-height:340px; padding:0; }
	.page-hero::before{
		width:88%;
		height:100%;
		border-radius:40px 0 0 0;
	}
	.page-hero__inner{ position:absolute; left:24px; top:120px; }
	.page-hero__en{ font-size:22px; letter-spacing:1px; }
	.page-hero__ja{ font-size:32px; line-height:1.2; margin-top:8px; }

	.page-body{ padding-bottom:56px; }

	/* --- CONTACT ページ --- */
	.contact-wrap{ width:calc(100% - 40px); padding-top:40px; }
	.contact-lead{ font-size:14px; text-align:left; white-space:normal; } /* SPは折返し */
	.tel-box{ width:100%; min-height:0; padding:24px 16px; }
	.tel-box__num{ font-size:30px; }
	.contact-form{ width:100%; }
	/* iOSズーム防止：SPではフォーム内の入力系すべてを16pxに */
	.contact-form input,
	.contact-form select,
	.contact-form textarea{ font-size:16px; }
	.contact-form input[type="text"],
	.contact-form input[type="email"],
	.contact-form input[type="tel"],
	.contact-form select,
	.contact-form textarea{ padding:14px; }
	.contact-form input[type="submit"]{ width:100%; max-width:280px; height:58px; margin-inline:auto; }

	/* --- PRIVACY ページ（SP）--- */
	.privacy-contact{ width:100%; }

	/* --- PRIVACY ページ --- */
	.privacy-wrap{ width:calc(100% - 40px); padding-top:40px; }
	.privacy-item h2{ font-size:17px; }
	.privacy-item p{ font-size:14px; }
}

/* アクセシビリティ：モーション低減 */
@media (prefers-reduced-motion:reduce){
	*{ transition:none !important; animation:none !important; }
}

/* フォーカス可視化 */
a:focus-visible,button:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
	outline:2px solid var(--c-blue);
	outline-offset:2px;
}

/* reCAPTCHA バッジを非表示 */
.grecaptcha-badge { visibility: hidden; }

