/*
Theme Name: K-Foods みちのくクラフトジャーキー
Theme URI: https://k-foods.example.com
Author: K-Foods
Description: みちのくクラフトジャーキー / K-Foods コーポレートサイト用オリジナルテーマ
Version: 1.0.0
Text Domain: kfoods
*/

/* ==========================================================
   0. 変数・リセット
   ========================================================== */
:root{
	--color-text:#565149;
	--color-yellow:#FEE16C;
	--color-yellow-accent:#EDC526;
	--color-green:#75A45B;
	--color-green-light:#98B882;
	--color-green-shadow:#7E8E74;
	--color-bg:#FDFDFD;
	--color-bg-cream:#F7F0D6;
	--color-shadow-brown:#ACA588;
	--font-serif-jp:"Noto Serif JP", serif;
	--font-en:"Noto Sans", sans-serif;
	--font-jp:"Noto Sans JP", sans-serif;
	--font-heading:"Zen Maru Gothic", sans-serif;
	--max-width:1000px;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
	margin:0;
	color:var(--color-text);
	font-family:var(--font-jp);
	font-size:16px;
	line-height:1.7;
	background:var(--color-bg);
	-webkit-font-smoothing:antialiased;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }

.inner{
	max-width: var(--max-width);
	margin:0 auto;
	padding:0;
}

section{ position:relative; width:100%; }

/* 見出し系共通 */
.section-label{
	font-family:var(--font-en);
	font-size:14px;
	font-weight:700;
	color:var(--color-yellow-accent);
	text-align:center;
	margin:0 0 10px;
}
.section-title{
	font-family:var(--font-heading);
	font-size:28px;
	font-weight:700;
	line-height:normal;
	letter-spacing:0.05em;
	text-align:center;
	margin:0 0 40px;
}

/* ボタン共通（矢印アイコン付き丸ボタン） */
.btn{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:10px 21px 10px 36px;
	border-radius:999px;
	font-weight:700;
	font-family:var(--font-jp);
	font-size:15px;
	border:none;
	white-space:nowrap;
	transition:transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}
.btn img,.btn svg{ width:22px; height:22px; }
.btn:hover{ transform:translateY(-3px); opacity:.92; }

.btn-yellow{
	background-color:var(--color-yellow);
	color:var(--color-text);
	box-shadow:0 10px 20px rgba(172,165,136,.5);
}
.btn-green{
	background-color:var(--color-green);
	color:var(--color-bg);
	box-shadow:0 10px 20px rgba(126,142,116,.7);
}
.btn-white{
	background-color:var(--color-bg);
	color:var(--color-text);
	box-shadow:0 10px 20px rgba(172,165,136,.5);
}
.btn-icon-left img{ width:25px; height:auto; }

.btn-center-wrap{ text-align:center; }

/* ==========================================================
   1. ヘッダー
   ========================================================== */
.site-header{
	position:fixed;
	top:20px;
	left:0;
	right:0;
	z-index:1000;
	display:flex;
	justify-content:center;
}
.header-inner{
	width:100%;
	max-width:1195px;
	height:70px;
	margin:0 20px;
	background:var(--color-bg);
	border-radius:999px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:0 42px 0 47px;
	box-shadow:0 6px 24px rgba(0,0,0,.06);
}
.site-logo{
	width:105px;
	height:48px;
	flex-shrink:0;
}
.site-logo img{ width:100%; height:100%; object-fit:contain; }

.header-right{
	display:flex;
	align-items:center;
	gap:20px;
}
.kfoods-menu{
	display:flex;
	align-items:center;
}
.kfoods-menu li{ margin-right:16px; }
.kfoods-menu li:last-child{ margin-right:20px; }
.kfoods-menu a{
	color:var(--color-text);
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:500;
	letter-spacing:0.05em;
	transition:color .2s ease;
}
.kfoods-menu a:hover{ color:var(--color-green); }

.header-cta.btn-green{
	width:190px;
	height:46px;
	padding:0;
	justify-content:center;
	font-size:14px;
	font-weight:bold;
	letter-spacing:0.05em;
	box-shadow:0 8px 16px rgba(126,142,116,.5);
}

.menu-toggle{ display:none; }
.menu-overlay{ display:none; }

.sp-store-btn {display: none;}

.page-privacy {display: none;}

/* ==========================================================
   2. FV（トップページ）
   ========================================================== */
.fv{
	position:relative;
	width:100%;
	overflow:hidden;
	background-image:url('assets/images/fv-back.webp');
	background-size:cover;
	background-position:bottom;
}
.fv-inner{
	max-width:1440px;
	margin:0 auto;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:60px 40px 100px;
	gap:60px;
}
.fv-text{ max-width:560px; }
.fv-eyebrow{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:700;
	margin:0 0 16px;
}
.fv-eyebrow .is-normal{ font-weight:400; }
.fv-title{
	font-family:var(--font-heading);
	font-size:52px;
	font-weight:500;
	letter-spacing:0.1em;
	line-height:1.3;
	margin:0 0 20px;
}
.fv-sub{
	font-family:var(--font-heading);
	font-size:20px;
	font-weight:500;
	letter-spacing:0.1em;
	margin:0 0 32px;
}
.fv-buttons{ display:flex; gap:16px; flex-wrap:wrap; }
.fv-illust{ max-width:420px; flex-shrink:0; }

/* ==========================================================
   3. Concept（わたしたちの想い）
   ========================================================== */
.concept{
	background-color:var(--color-bg);
	padding:120px 0 100px;
	text-align:center;
	overflow:hidden;
}
.concept-inner{
	max-width:1000px;
	margin:0 auto;
	padding:0 20px;
	position:relative;
}
.concept-illust{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	width:30%;
	max-width:250px;
}
.concept-illust.is-left{ left:-120px; }
.concept-illust.is-right{ right:-120px; }
.concept-text{
	max-width:640px;
	margin:0 auto 40px;
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:400;
	line-height:2;
	text-align:center;
}
.concept-text p{ margin:0 0 1.6em; }
.concept-text p:last-child{ margin-bottom:0; }

.sp-br { display: none;}

/* ==========================================================
   4. 商品ラインアップ
   ========================================================== */
.products-top{
	background-image:url('assets/images/top-products-back.webp');
	background-size:cover;
	background-position:center;
	padding:100px 0;
}
.products-cards{
	display:flex;
	justify-content:space-between;
	gap:24px;
	flex-wrap:wrap;
	margin-bottom:40px;
}
.product-card{
	width:302px;
	min-height:296px;
	background-color:var(--color-bg);
	border-radius:6px;
	box-shadow:0 10px 30px rgba(0,0,0,.08);
	overflow:hidden;
	flex:1 1 280px;
	max-width:320px;
}
.product-card-img{ width:100%; overflow:hidden; }
.product-card-img img{ width:100%; height:100%; object-fit:cover; }
.product-card-body{ padding:10px 16px 30px; }
.product-badge{
	display:inline-block;
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:700;
	color:var(--color-text);
	background-color:var(--color-yellow);
	padding:2px 10px;
	border-radius:999px;
}
.product-card-body.no-badge{ padding-top:39px; }
.product-name{
	font-family:var(--font-jp);
	font-size:20px;
	font-weight:700;
	margin:0;
}
.product-desc{
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:400;
	margin:0;
	line-height: 20px;
}

/* ==========================================================
   5. EC誘導
   ========================================================== */
.ec-section{
	background-image:url('assets/images/top-ec-back.webp');
	background-size:cover;
	background-position:bottom;
	padding:100px 0;
	min-height: 540px;
}
.ec-box{
	max-width:1000px;
	min-height:300px;
	margin:0 auto;
	background-color:var(--color-bg);
	border-radius:30px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:40px;
	gap:40px;
	position: relative;
    text-align: center;
}

.ec-illust{
	position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 220px;   /* 好きなサイズ */
}

.ec-illust-left{
    left: 60px;
    top: 220px;
}

.ec-illust-right{
    right: 60px;
    top: 180px;
}
.ec-content{ text-align:center; }
.ec-content .section-label{ color:var(--color-text); }

.ec-section {
  background-image: url("assets/images/top-ec-back.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ==========================================================
   6. お知らせ
   ========================================================== */
.news-section{ background-color:var(--color-bg); padding:100px 0; }
.news-list{ border-top:1px solid #BAC2BF; }
.news-item{
	display:flex;
	align-items:center;
	gap:24px;
	padding:20px 0;
	border-bottom:1px solid #BAC2BF;
}
.news-date{ font-family:var(--font-en); font-size:12px; font-weight:400; flex-shrink:0; }
.news-cat{
	font-family:var(--font-jp);
	font-size:12px;
	font-weight:700;
	background-color:var(--color-yellow);
	border-radius:999px;
	width:75px;
	height:25px;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
}
.news-title-text{
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:400;
	white-space: nowrap;
    overflow: hidden;
	text-overflow: ellipsis;
}
.news-item:hover .news-title-text{ color:var(--color-green); }
.news-section .btn-center-wrap{ margin-top:40px; }

/* ==========================================================
   7. 会社概要 / FAQ 2カラム
   ========================================================== */
.company-faq-section{ background-color:var(--color-bg); padding:0 0 50px; }
.company-faq-row{
	max-width:1000px;
	margin:0 auto;
	display:flex;
	gap:24px;
	flex-wrap:wrap;
}
.company-faq-card{
	flex:1 1 460px;
	padding:60px 30px;
	text-align:center;
	border-radius:12px;
}
.company-faq-card.is-company{
	background-color:var(--color-yellow);
	box-shadow:0 10px 30px rgba(172,165,136,.5);
}
.company-faq-card.is-faq{
	background-color:var(--color-green-light);
	box-shadow:0 10px 30px rgba(126,142,116,.5);
}
.company-faq-card .section-label{ margin-bottom:10px; }
.company-faq-card.is-faq .section-label{ color:var(--color-bg); }
.company-faq-card.is-faq .section-title{ color:var(--color-bg); }
.company-faq-card .section-title{ margin-bottom:30px; }
.company-faq-card .btn{ margin-top:10px; }

.is-company .section-label{
	color:var(--color-text);
}

/* ==========================================================
   8. お問い合わせ誘導
   ========================================================== */
.contact-cta{ background-color:var(--color-bg); padding:100px 0; text-align:center; }
.contact-cta-lead{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:400;
	text-align:center;
	margin:0 0 40px;
}
.contact-cta-buttons{
	display:flex;
	justify-content:center;
	gap:24px;
	flex-wrap:wrap;
	height: 70px;
}

/* ==========================================================
   9. フッター
   ========================================================== */
.site-footer{
	background-color:var(--color-bg-cream);
	padding:30px 107px;
}
.footer-inner{
	display:flex;
	flex-wrap:wrap;
	align-items:flex-start;
	justify-content:space-between;
	gap:32px;
}
.footer-logo{ width:105px; height:48px; margin-bottom:16px; display:block; }
.footer-address{
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:400;
	line-height:1.5;
}
.footer-col-title{
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:700;
	margin:0 0 12px;
}
.footer-products-list{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.footer-products-list a{ font-family:var(--font-jp); font-size:14px; font-weight:400; }
.footer-brand-link{ font-family:var(--font-jp); font-size:14px; font-weight:700; }

.footer-menu{ display:flex; gap:10px 24px; flex-wrap:wrap; width: 400px; justify-content: flex-end;}
.footer-menu a{ font-family:var(--font-jp); font-size:14px; font-weight:700; }

.footer-menu-list{ display:flex; gap:28px; flex-wrap:wrap; width: 400px; justify-content: flex-end;}

.footer-cta.btn-green{
	width:190px;
	height:46px;
	padding:0;
	justify-content:center;
	font-size:14px;
	font-weight:bold;
	box-shadow:0 8px 16px rgba(126,142,116,.5);
}

.footer-bottom{
	text-align:center;
	font-family:var(--font-en);
	font-size:12px;
	font-weight:400;
	margin-top:24px;
}

/* ==========================================================
   10. 下層ページ共通（ブランドストーリー／商品一覧／会社概要 等）
   ========================================================== */
.page-hero{
	padding:180px 0 150px;
	text-align:center;
	background-color:var(--color-bg-cream);
}
.page-hero-en{
	font-family:var(--font-en);
	font-size:14px;
	font-weight:700;
	color:var(--color-yellow-accent);
	margin:0 0 10px;
}
.page-hero-title{
	font-family:var(--font-heading);
	font-size:24px;
	font-weight:700;
	letter-spacing:0.05em;
	margin:0;
}
.page-content{ padding:80px 0; }
.page-content .inner{ max-width:1000px; }
.page-content h2{
	font-family:var(--font-heading);
	font-size:26px;
	font-weight:700;
	letter-spacing:0.05em;
	margin:60px 0 24px;
}
.page-content h2:first-child{ margin-top:0; }
.page-content h3{
	font-family:var(--font-jp);
	font-size:18px;
	font-weight:700;
	margin:32px 0 16px;
}
.page-content p{ font-family:var(--font-jp); font-size:16px; line-height:1.9; margin:0 0 1.4em; }

/* 商品一覧・各カテゴリーページ用グリッド */
.product-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:24px;
}
.product-grid .product-card{ width:100%; }
.product-cat-nav{
	display:flex;
	justify-content:center;
	gap:16px;
	flex-wrap:wrap;
	margin-bottom:60px;
}
.product-cat-nav a{
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:700;
	padding:10px 24px;
	border-radius:999px;
	background-color:var(--color-bg);
	border:1px solid var(--color-text);
}
.product-cat-nav a.is-active,.product-cat-nav a:hover{
	background-color:var(--color-yellow);
	border-color:var(--color-yellow);
}

/* 会社概要テーブル */
.company-table{ width:100%; border-collapse:collapse; }
.company-table th,.company-table td{
	font-family:var(--font-jp);
	font-size:15px;
	text-align:left;
	padding:16px 20px;
	border-bottom:1px solid #e6e0d0;
	vertical-align:top;
}
.company-table th{ width:180px; font-weight:700; background-color:#FCFAEF; }

/* FAQ アコーディオン */
.faq-list{ margin-top:20px; }
.faq-item{ border-bottom:1px solid #e6e0d0; }
.faq-question{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	padding:24px 8px;
	font-family:var(--font-jp);
	font-weight:700;
	cursor:pointer;
}
.faq-question::before{ content:"Q"; color:var(--color-green); font-weight:700; margin-right:12px; }
.faq-answer{
	display:none;
	padding:0 8px 24px 32px;
	font-family:var(--font-jp);
	font-size:15px;
	line-height:1.8;
}
.faq-item.is-open .faq-answer{ display:block; }
.faq-toggle-icon{ transition:transform .2s ease; flex-shrink:0; }
.faq-item.is-open .faq-toggle-icon{ transform:rotate(45deg); }

/* お知らせ一覧・詳細 */
.news-archive-list .news-item{ text-decoration:none; }
.pagination{ display:flex; justify-content:center; gap:12px; margin-top:40px; }
.pagination a,.pagination span{
	display:inline-flex; align-items:center; justify-content:center;
	width:36px; height:36px; border-radius:50%;
	font-family:var(--font-en); font-size:14px;
}
.pagination .current{ color:var(--color-text); }

/* お問い合わせフォーム（Contact Form 7） */
.contact-form-wrap{
	max-width:700px;
	margin:0 auto;
	border-radius:20px;
	padding:48px;
}
.wpcf7-form p{ margin-bottom:20px; }
.wpcf7-form p:last-of-type{ text-align:center; margin-bottom:0; }
.wpcf7-form label{ display:block; font-family:var(--font-jp); font-weight:700; font-size:14px; margin-bottom:30px; }
.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form textarea,
.wpcf7-form select{
	width:100%;
	padding:14px 16px;
	border:1px solid #ccc4ab;
	border-radius:8px;
	font-family:var(--font-jp);
	font-size:15px;
	background:var(--color-bg);
}
.wpcf7-form textarea{ min-height:160px; resize:vertical; }
.wpcf7-form input[type=submit]{
	display:inline-flex;
	align-items:center;
	padding: 16px 50px 16px 40px;
	border-radius:999px;
	background-color:var(--color-green);
	color:var(--color-bg);
	font-family:var(--font-jp);
	font-weight:700;
	border:none;
	box-shadow:0 10px 20px rgba(126,142,116,.7);
	transition:transform .25s ease;
	background-image:url('assets/images/icon-arrow-up-circle-wh.webp');
	background-repeat:no-repeat;
	background-position: right 20px center;
	background-size:25px 25px;
	font-size: 14px;
	width: 190px;
}
.wpcf7-form p:last-of-type,
.wpcf7-form p:nth-last-of-type(2),
.wpcf7-form p:nth-last-of-type(3){ text-align:center; font-size: 14px;}
.wpcf7-spinner {display: none;}

.wpcf7-form-control option { color: var(--color-text);}
.wpcf7-form input[type=submit]:hover{ transform:translateY(-3px); }
.wpcf7-not-valid-tip{ color:#c0392b; font-size:13px; margin-top:4px; }
.wpcf7-response-output{ border-radius:8px !important; font-family:var(--font-jp); font-size:14px; }

/* プライバシーポリシー */
.privacy-content ol{ padding-left:1.4em; font-family:var(--font-jp); }
.privacy-content li{ margin-bottom:.6em; font-family:var(--font-jp); }
.privacy-text{font-family: var(--font-jp) !important; font-size: 16px !important; font-weight: 500; margin-bottom: 20px !important; margin: 30px 0 24px !important;}
.privacy-box p {font-size: 14px;}
.privacy-mail {font-weight: 700;}

/* ==========================================================
   11. レスポンシブ（〜1024px, 〜768px, 〜480px）
   ========================================================== */
@media (max-width:1024px){
	.fv-inner{ flex-direction:column; padding-top:20px; }
	.fv-illust{ max-width:60%; }
	.fv-title{ font-size:40px; }
	.products-cards{ justify-content:center; }
	.company-faq-row{ flex-direction:column; }

}

/* ヘッダーはメニュー文言が折り返す手前（1100px）でSP表示に切り替える。
   コンテンツ側のブレークポイント（768px）とは意図的に分けている。 */
@media (max-width:1100px){
	.site-header{ top:12px; }
	.header-inner{
		height:60px;
		padding:0 16px;
		margin:0 12px;
	}
	.site-logo{ width:80px; height:36px; }
	.header-right{ position:relative; }
	.menu-overlay{
		display:block;
		position:fixed;
		inset:0;
		background:rgba(30,26,20,.35);
		opacity:0;
		visibility:hidden;
		transition:opacity .28s ease, visibility .28s;
		pointer-events:none;
		z-index:900;
	}
	.menu-overlay.is-open{
		opacity:1;
		visibility:visible;
		pointer-events:auto;
	}
	.kfoods-menu{
		position:fixed;
		top:84px;
		left:12px;
		right:12px;
		background:var(--color-bg);
		flex-direction:column;
		align-items:stretch;
		border-radius:20px;
		padding: 35px 12px 12px 12px;
		box-shadow:0 20px 45px rgba(0,0,0,.16);
		display:flex;
		gap:0;
		opacity:0;
		visibility:hidden;
		transform:translateY(-12px) scale(.98);
		transform-origin:top center;
		transition:opacity .28s ease, transform .28s ease, visibility .28s;
		pointer-events:none;
		z-index:999;
	}
	.kfoods-menu.is-open{
		opacity:1;
		visibility:visible;
		transform:translateY(0) scale(1);
		pointer-events:auto;
	}
	.kfoods-menu li{
		margin:0;
		width:100%;
		text-align:center;
		border-bottom:1px solid #DDDDDD;
	}
	.kfoods-menu li:last-child{ border-bottom:none; }
	.kfoods-menu a{
		display:block;
		padding:14px 10px;
		border-radius:12px;
		transition:background-color .2s ease, color .2s ease;
	}
	.kfoods-menu a:hover,
	.kfoods-menu a:active{
		background-color: var(--color-yellow);
		color:var(--color-text);
	}
	.kfoods-menu li.sp-store-btn-item{ border-bottom:none; padding-top:8px; }
	.kfoods-menu .sp-store-btn{
		width:100%;
		justify-content:center;
		margin:4px 0 4px;
	}

	.header-cta.btn-green{ display: none; }

	/* ハンバーガー⇔バツ アイコンアニメーション */
	.menu-toggle{
		display:flex;
		flex-direction:column;
		justify-content:center;
		align-items:center;
		gap:5px;
		width:35px;
		height:20px;
		background:none;
		border:none;
		position:relative;
		z-index:1000;
	}
	.menu-toggle span{
		width:100%;
		height:2px;
		background:var(--color-text);
		display:block;
		border-radius:2px;
		transition:transform .3s ease, opacity .2s ease, width .2s ease;
		transform-origin:center;
	}
	.menu-toggle.is-active span:nth-child(1){
		transform:translateY(7px) rotate(45deg);
	}
	.menu-toggle.is-active span:nth-child(2){
		opacity:0;
		width:0;
	}
	.menu-toggle.is-active span:nth-child(3){
		transform:translateY(-7px) rotate(-45deg);
	}
}

@media (max-width:768px){
	.fv{ padding-top:10%; }
	.fv-inner{ padding:20px 20px 60px; gap:32px; }
	.fv-title{ font-size:32px; }
	.fv-sub{ font-size:16px; margin: 0 0 20px;}
	.fv-eyebrow{ font-size:13px; }
	.fv-buttons{ flex-direction:column; width:100%; }
	.fv-buttons .btn{ justify-content:center; width:100%; }

	.section-title{ font-size:22px; }

	.fv-text {
		text-align: center;
	}

	.concept{
        padding:80px 0;
		overflow: hidden;
    }

    .concept-illust{
        width:30%;
        top:20px;
        max-width:none;
    }

	img.concept-illust.is-left{
        left:-10% !important;
        transform:translateY(-60%) !important;
    }

    img.concept-illust.is-right{
        right:-15% !important;
        transform:translateY(-60%) !important;
    }

	.ec-box{
        padding: 32px 20px 50px 20px;
		overflow: hidden;
		min-height: auto;
    }

    .ec-illust{
        width:40%;
        top:20px;
        transform:none;
    }

    .ec-illust-left{
        left: -40px !important;
        top: 200px !important;
    }

    .ec-illust-right{
        right: -40px !important;
        top: 190px !important;
    }

	.ec-section {
		min-height: auto;
	}

	.btn {
		padding: 12px 21px 12px 25px;
        font-size: 16px;
        width: 100%;
        margin: 0 auto;
        justify-content: center;
	}

	.sp-br { display: block;}

	.products-cards{ flex-direction:column; align-items:center; }
	.product-card{ width:100%; max-width: 100%; flex: auto;}

	.product-card-body { padding: 20px 26px 39px; }

	.ec-box{ flex-direction:row; border-radius:20px; width: 90%;}

	.news-item{ flex-wrap:wrap; gap: 8px;}
	.news-title-text{ width:100%; order:3; }

	.contact-cta {
		padding: 50px 0;
        margin: 0 auto 100px auto;
        width: 90%;
	}
	.contact-cta-buttons{ align-items:center; }
	.contact-cta-buttons .btn{ width:100%; max-width:320px; justify-content:center; padding: 20px 0; }

	.company-faq-card { flex: auto; width: 90%; margin: 0 auto;}

	.company-faq-card .section-title { margin-bottom: 15px; }

	.site-footer{ padding:30px 24px; }
	.footer-inner{ flex-direction:column; }
	.footer-menu{ gap:12px 20px; }

	.page-hero{ padding:120px 0 40px; }
	.page-hero-title{ font-size:24px; width: 90%; margin: 0 auto;}
	.product-grid{ grid-template-columns:1fr; }
	.company-table th{ width:120px; }
	.contact-form-wrap{ padding:0; width: 90%; }

	.footer-menu-list{ width: 100%; justify-content: flex-start; }
	.footer-cta.btn-green { width: 100%;}
	.footer-menu { justify-content: flex-start; }
	.wpcf7-form p {margin: 0;}

	.inner {width: 90%;}
}

@media (max-width:480px){
	body{ font-size:15px; }
	.fv-title{ font-size:28px; }
}

/* ==========================================================
   12. ブランドストーリーページ
   ========================================================== */

/* ---- FV ---- */
.brand-fv{
	position:relative;
	width:100%;
	overflow:hidden;
	background-image:url('assets/images/fv-back.webp');
	background-size:cover;
	background-position:bottom;
	padding:180px 40px 140px;
	text-align:center;
}

.brand-fv-brand-story{
	position:relative;
	width:100%;
	overflow:hidden;
	background-image:url('assets/images/fv-back-brand-story.webp');
	background-size:cover;
	background-position:bottom;
	padding:230px 40px 280px;
	text-align:center;
	z-index: 100;
}

.brand-fv-inner{
	max-width:700px;
	margin:0 auto;
	position:relative;
	z-index:2;
}
.brand-fv-illust-top{
	width:150px;
	margin:0 auto 12px;
}
.brand-fv-eyebrow{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:600;
	color:#75A45B;
	margin:0 0 4px;
}
.brand-fv-title{
	font-family:var(--font-heading);
	font-size:52px;
	font-weight:500;
	letter-spacing:0;
	line-height:1.3;
	margin:0 0 16px;
}
.brand-fv-sub{
	font-family:var(--font-heading);
	font-size:20px;
	font-weight:500;
	letter-spacing:0.1em;
	margin:0;
}
.brand-fv-illust-left{
	position:absolute;
	left:10%;
	top:20%;
	width:7%;
	z-index:1;
}
.brand-fv-illust-right{
	position:absolute;
	right:10%;
	bottom:20%;
	width:17%;
	z-index:1;
}

/* ---- はじまりの話 ---- */
.brand-start{
	width:100%;
	background-image:url('assets/images/brand-startingstory-back.webp');
	background-size:cover;
	background-position:center;
	padding:100px 20px;
	margin-top: -70px;
}
.brand-start-box{
	max-width:1000px;
	margin:0 auto;
	background-color:rgba(253,253,253,.6);
	border-radius:30px;
	padding:66px 150px;
	box-sizing:border-box;
	text-align:center;
}
.brand-start-title{
	font-family:var(--font-heading);
	font-size:28px;
	font-weight:700;
	line-height:normal;
	letter-spacing:0.05em;
	margin:0 0 40px;
}
.brand-start-text{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:400;
	line-height:32px;
	max-width:640px;
	margin:0 auto;
}
.brand-start-text p{ margin:0 0 1.6em; }
.brand-start-text p:last-child{ margin-bottom:0; }

/* ---- 01/02/03 こだわりポイント ---- */
.brand-features{
	background-color:#F8F4E6;
	padding:130px 0;
}
.brand-feature-row{
	display:flex;
	align-items:center;
	gap:60px;
	max-width:1000px;
	margin:0 auto 130px;
}
.brand-feature-row:last-child{ margin-bottom:0; }
.brand-feature-row.is-reverse{ flex-direction:row-reverse; }
.brand-feature-text-col{ flex:1 1 0; position:relative; padding-bottom:40px; }
.brand-feature-num-row{
	display:flex;
	align-items:flex-end;
	gap:16px;
	margin-bottom:20px;
}
.brand-feature-num{
	font-family:var(--font-heading);
	font-size:70px;
	font-weight:700;
	color:var(--color-yellow-accent);
	line-height:1;
}
.brand-feature-tag{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:700;
	color:var(--color-yellow-accent);
	letter-spacing:0.05em;
}
.brand-feature-title{
	font-family:var(--font-heading);
	font-size:28px;
	font-weight:700;
	line-height:normal;
	letter-spacing:0.05em;
	margin:0 0 10px;
}
.brand-feature-text{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:400;
	line-height:32px;
	margin:0;
}
.brand-feature-illust{
	position:absolute;
	right:0;
	bottom:0;
	width:70px;
}
.brand-feature-photo{ flex:1 1 0; max-width:460px; }
.brand-feature-photo img{ width:100%; border-radius:12px; }

.brand-01 img{ bottom: -20px; width: 30%; }

.brand-02 img{ bottom: -90px; width: 15%; }

/* ---- 商品画像 ---- */
.brand-products-photos{
	width:100%;
	background-image:url('assets/images/brand-same-back.webp');
	background-size:cover;
	background-position:center;
	padding:100px 0;
}
.brand-products-grid{
	max-width:1000px;
	margin:0 auto;
	display:flex;
	justify-content:space-between;
	gap:24px;
	flex-wrap:wrap;
}
.brand-products-grid img{
	border-radius:6px;
	flex:1 1 280px;
	width:30%;
	object-fit:cover;
}

/* ---- ブランド誕生 ---- */
.brand-born{
	width:100%;
	background-color:#F8F4E6;
	padding:100px 20px;
}
.brand-born-inner{
	max-width:1000px;
	margin:0 auto;
	position:relative;
	text-align:center;
}
.brand-born-label{
	font-family:var(--font-heading);
	font-size:14px;
	font-weight:700;
	letter-spacing:0.05em;
	color:var(--color-yellow-accent);
	margin:0 0 10px;
}
.brand-born-title{
	font-family:var(--font-heading);
	font-size:28px;
	font-weight:700;
	line-height:normal;
	letter-spacing:0.05em;
	margin:0 0 40px;
}
.brand-born-text{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:400;
	line-height:32px;
	max-width:720px;
	margin:0 auto 30px;
}
.brand-born-text p{ margin:0 0 1.4em; }
.brand-born-text p:last-child{ margin-bottom:0; }
.brand-born .btn{ margin-top:10px; }
.brand-born-illust-left{
	position:absolute;
	left:-40px;
	bottom:0;
	width:150px;
}
.brand-born-illust-right{
	position:absolute;
	right:-40px;
	bottom:0;
	width:150px;
}

/* ---- ネット販売で全国に ---- */
.brand-ec{
	width:100%;
	background-image:url('assets/images/brand-ec-back.webp');
	background-size:cover;
	background-position:center;
	padding:100px 20px;
}
.brand-ec-box{
	max-width:1000px;
	margin:0 auto;
	background-color:rgba(253,253,253,.6);
	border-radius:30px;
	padding:66px 150px;
	box-sizing:border-box;
	text-align:center;
}
.brand-ec-label{
	font-family:var(--font-en);
	font-size:14px;
	font-weight:700;
	color:var(--color-text);
	margin:0 0 10px;
}
.brand-ec-title{
	font-family:var(--font-heading);
	font-size:28px;
	font-weight:700;
	line-height:normal;
	letter-spacing:0.05em;
	margin:0 0 20px;
}
.brand-ec-text{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:400;
	line-height:32px;
	margin:0 0 30px;
}

/* ---- レスポンシブ ---- */
@media (max-width:1024px){
	.brand-start-box,.brand-ec-box{ padding:60px 60px; }
	.brand-feature-row{ gap:32px; }
}

@media (max-width:768px){
	.brand-fv{ padding:120px 20px 100px; }
	.brand-fv-title{ font-size:32px; }
	.brand-fv-sub{ font-size:16px; }
	.brand-fv-illust-left{ width:20%; }
	.brand-fv-illust-right{ width:50%; }
	.brand-start-box,.brand-ec-box{ padding:40px 24px; border-radius:20px; }
	.brand-start-title,.brand-born-title,.brand-ec-title{ font-size:22px; }

	.brand-features{ padding:80px 0; }
	.brand-feature-row{ flex-direction:column; gap:24px; margin-bottom:80px; width: 90%; }
	.brand-feature-row.is-reverse{ flex-direction:column; }
	.brand-feature-num{ font-size:50px; }
	.brand-feature-title{ font-size:20px; margin-bottom: 20px;}
	.brand-feature-illust{ width:50px; }

	.brand-products-photos{ padding:60px 0; }
	.brand-products-grid{ flex-direction:column; align-items:center; }
	.brand-products-grid img{ width: 90%; }

	.brand-born{ padding:70px 20px 200px 20px; overflow: hidden; }

	.brand-born-illust-left{
		left: 50px;
        bottom: -150px;
        width: 25%;
	 }
	
	.brand-born-illust-right{
	    right: 50px;
        bottom: -150px;
        width: 25%;
	}

	.brand-fv-brand-story{
		background-image:url('assets/images/fv-back-brand-story-sp.webp');
		padding: 230px 0 280px;
	}

	.brand-01 img {left: 0; bottom: -50px;}
	.brand-feature-photo {max-width: 100%; margin-top: 20px;}
	.brand-02 img {right: 20px;}

}

/* ==========================================================
   13. 下層ページ共通ヒーロー（商品一覧／各商品カテゴリー／FAQ／
       お知らせ／お問い合わせ／プライバシーポリシー 共通）
   ========================================================== */
.subpage-hero{
	position:relative;
	width:100%;
	min-height:520px;
	background-image:url('assets/images/fv-back.webp');
	background-size:cover;
	background-position:bottom;
	padding:170px 20px 90px;
	height: 640px;
	box-sizing: border-box;
}
.subpage-hero-inner{
	max-width:1000px;
	margin:0 auto;
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:40px;
	flex-wrap:nowrap;
}
.subpage-hero-text{ max-width:690px; }
.subpage-hero-label{
	font-family:var(--font-en);
	font-size:14px;
	font-weight:700;
	color:var(--color-green);
	letter-spacing:0.05em;
	margin:0 0 12px;
}
.subpage-hero-title{
	display:inline-block;
	font-family:var(--font-heading);
	font-size:52px;
	font-weight:500;
	letter-spacing:0.02em;
	margin:0 0 16px;
	padding-bottom:16px;
	border-bottom:2px solid var(--color-text);
}
.subpage-hero-sub{
	font-family:var(--font-jp);
	font-size:20px;
	line-height:32px;
	margin:0;
}
.subpage-hero-illust{ max-width:40%; flex-shrink:0; }

.subpage-wave{
	display:block;
	width:100%;
	height:auto;
	line-height:0;
	margin-bottom:-2px;
}
.subpage-wave svg{ display:block; width:100%; height:70px; }

/* ==========================================================
   14. 商品一覧ページ（page-products.php）
   ========================================================== */
.products-list-row{ width:100%; padding:70px 0; }
.products-list-row.is-cream{ background-color:#F8F4E6; }
.products-list-row.is-green{ background-color:#CDE1C3; }
.products-list-inner{
	max-width:1000px;
	margin:0 auto;
	display:flex;
	align-items:flex-start;
	gap:70px;
	flex-wrap:wrap;
}
.products-list-photo{ flex:1 1 320px; max-width:470px; border-radius:12px; overflow:hidden; }
.products-list-photo img{ width:100%; display:block; }
.products-list-text{ flex:1 1 320px; }
.products-list-meta{ display:flex; align-items:center; gap:12px; margin-bottom:0px; flex-wrap:wrap; }
.products-list-cat{ font-family:var(--font-jp); font-size:14px; font-weight:700; color:var(--color-green); }
.products-list-status{
	display:inline-block;
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:700;
	color:#fff;
	background-color:var(--color-green);
	padding:0px 10px;
	border-radius:999px;
}
.products-list-status.is-new{ background-color:var(--color-green); color:var(--color-bg); }
.products-list-title{
	font-family:var(--font-jp);
	font-size:28px;
	font-weight:700;
	letter-spacing:0.02em;
	margin:0 0 20px;
	padding-bottom:10px;
	border-bottom:1px solid var(--color-text);
}
.products-list-desc p{ font-family:var(--font-jp); font-size:15px; line-height:32px; margin:0 0 1em; }
.products-list-text .btn{ margin-top:12px; }

/* ==========================================================
   15. 乾燥製品／食肉製品／水産製品 個別ページ
   ========================================================== */
.pd-content{ padding:90px 0; }
.pd-content.is-tight{
	padding:100px 0;
	border-bottom: 7px solid #DDDDDD;
    max-width: 1000px;
    margin: 0 auto;
}

.pd-seafood .pd-product-row{ padding: 0; }


.pd-meat,.pd-content.is-tight {
	border-bottom: none !important;
}

.pd-meat .pd-product-row {
	border-bottom: 1px solid #DDDDDD !important;

}

.dried-illust {
	width: 25%;
	padding-top: 5%;
}

/* こだわり3特長（乾燥製品ページ） */
.pd-features-row{
	display:flex;
	justify-content:center;
	gap:42px;
	max-width:1000px;
	margin:100px auto 0 auto;
	flex-wrap:wrap;
	padding-bottom:90px;
}
.pd-feature-item{ text-align:center; width:220px; }
.pd-feature-circle{
	width:245px;
	height:245px;
	border-radius:50%;
	background-color:#F9F5E6;
	display:flex;
	align-items:center;
	justify-content:center;
	margin:0 auto 16px;
	flex-flow: column;
}
.pd-feature-circle img{ width:50%; height:60px; object-fit:contain; margin-bottom: 5px;}
.pd-feature-name{ font-family:var(--font-jp); font-size:16px; font-weight:400; margin:0 0 8px; border-bottom: 1px solid #565149;}
.pd-feature-desc{ font-family:var(--font-jp); font-size:14px; line-height:1.7; color:var(--color-text); margin:0; width: 175px;}

/* 商品グループ（かめかめエヴリワン等） */
.pd-dried-products{ background-color:#CDE1C3; padding:100px 0; }
.pd-group-title{
	font-family:var(--font-jp);
	font-size:20px;
	font-weight:700;
	text-align:center;
	max-width:1000px;
	margin:0 auto 30px;
}
.pd-jerky-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:24px;
	max-width:1000px;
	margin:0 auto 70px;
	padding:0 20px 50px 20px;
	border-bottom: 1px solid #565149;
}

.pd-jerky-grid:last-child{
	border-bottom: none;
}

.pd-jerky-grid.cols-2{ grid-template-columns:repeat(2,1fr); max-width:700px; }
.pd-jerky-grid:last-child{ margin-bottom:0; }
.pd-jerky-card{
	background-color:var(--color-bg);
	border-radius:8px;
	padding:0 0 20px 0;
	box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.pd-card-wrap{
	padding: 0 16px;
}

.pd-jerky-card img{ width:100%; margin-bottom:14px; object-fit:cover; background:#e5e0d3; }
.pd-jerky-badge{
	display:inline-block;
	font-family:var(--font-jp);
	font-size:14px;
	font-weight:700;
	background-color:var(--color-green);
	color:var(--color-bg);
	padding:0px 9px;
	border-radius:999px;
	margin-bottom:8px;
}
.pd-jerky-name{ font-family:var(--font-jp); font-weight:700; font-size:16px; line-height:1.5; margin:0 0 6px; }
.pd-jerky-price{ font-family:var(--font-jp); font-size:16px; font-weight:700; color:var(--color-green); margin:0 0 8px; }
.pd-jerky-desc{ font-family:var(--font-jp); font-size:14px; line-height:1.7; color:var(--color-text); margin:0; }

/* 食肉製品／水産製品 商品リスト（交互配置） */
.pd-product-row{
	display:flex;
	align-items:center;
	gap:60px;
	max-width:1000px;
	margin:0 auto;
	padding:50px 20px;
	border-bottom:1px solid #DDDDDD;
	flex-wrap:wrap;
	justify-content: space-between;
}
.pd-content > .pd-product-row:first-child{ padding-top:0; }
.pd-product-row:last-of-type{ border-bottom:none; }
.pd-product-row.is-reverse{ flex-direction:row-reverse; }
.pd-product-photo{ flex:1 1 260px; max-width:360px; }
.pd-product-photo img{
	width:100%;
	object-fit:cover;
	border-radius:10px;
	background-color:#e5e0d3;
	display:block;
}
.pd-product-info{ width: 500px;}
.pd-product-name{ font-family:var(--font-jp); font-size:22px; font-weight:700; margin:0 0 10px; }
.pd-product-price{ font-family:var(--font-jp); font-size:20px; font-weight:700; color:var(--color-green); margin:0 0 14px; }
.pd-product-price .unit{ font-size:14px; font-weight:400; color:var(--color-text); margin-left:4px; }
.pd-product-desc{ font-family:var(--font-jp); font-size:14px; line-height:1.9; margin:0 0 20px; }

.pd-note{
	max-width:1000px;
	margin:50px auto 0;
	padding:10px 24px;
	background-color:#FDF1C2;
	color:var(--color-text);
	font-family:var(--font-jp);
	font-size:14px;
	text-align:center;
	border-radius:8px;
}

/* パートナー紹介（水産製品ページ） */
.pd-partner{ background-color:#CDE1C3; padding:80px 20px; text-align:center; overflow: hidden;}
.pd-partner-inner{ max-width:760px; margin:0 auto; }
.pd-partner-label{
	font-family:var(--font-en);
	font-size:14px;
	font-weight:700;
	color:var(--color-text);
	margin:0 0 10px;
}
.pd-partner-title{
	font-family:var(--font-heading);
	font-size:26px;
	font-weight:700;
	letter-spacing:0.02em;
	color:var(--color-text);
	margin:0 0 20px;
}
.pd-partner-text{
	font-family:var(--font-jp);
	font-size:15px;
	line-height:1.9;
	color:var(--color-text);
	margin:0;
}

.pd-partner-inner{
    position: relative;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}

.pd-partner-inner img {
	width: 0%;
}

.pd-partner-illust{
    position: absolute;
    top:100%;
    width: 180px;
    transform: translateY(-50%);
}

.pd-partner-illust-left{
    left: -60px;
}

.pd-partner-illust-right{
    right: -60px;
}

/* ==========================================================
   16. FAQページ（シンプル一覧型）
   ========================================================== */
.faq-simple-list{
	border-top:1px solid #DDDDDD;
}

.faq-illust {
	width: 30%;
	padding-top: 5%;
}

.faq-simple-item{ padding:30px; border-bottom:1px solid #DDDDDD; }

.faq-simple-item:last-child {
	border-bottom: 7px solid #DDDDDD;
    padding-bottom: 100px;
}

.faq-simple-q{
	display:flex;
	align-items:flex-start;
	gap:8px;
	font-family:var(--font-jp);
	font-weight:700;
	font-size:16px;
	margin:0 0 10px;
}
.faq-simple-q .q-mark{ 
	color:var(--color-bg);
	flex-shrink:0;
	background-color: #EDC526;
	border-radius: 999px;
	padding: 0 0 2px 7px;
	width: 27px;
	height: 27px;
	line-height: 1.5;
}
.faq-simple-a{
	font-family:var(--font-jp);
	font-size:14px;
	line-height:1.9;
	color:var(--color-text);
	margin:0;
	padding-left:36px;
}

/* ==========================================================
   17. お問い合わせページ
   ========================================================== */
.contact-info-section{ padding:70px 0 100px; text-align:center; }
.contact-info-notes{
	display:flex;
	justify-content:center;
	gap:60px;
	flex-wrap:wrap;
	margin-bottom:32px;
}
.contact-info-notes p{ font-family:var(--font-jp); font-size:14px; margin:0; }

.contact-form-section{ background-color:#CDE1C3; padding:100px 20px; }
.contact-form-lead{
	text-align:center;
	font-family:var(--font-jp);
	font-size:15px;
	color:var(--font-jp);
	margin:0 0 40px;
}
.contact-form-heading{
	font-family:var(--font-jp);
	font-size:20px;
	font-weight:normal;
	text-align:left;
	margin:0 0 28px;
}

.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form input[type=tel], .wpcf7-form textarea, .wpcf7-form select {
	border: 1px solid #DDDDDD;
	padding: 10px 16px;
	color: var(--color-text);
}

.wpcf7-form label {
	font-weight: normal;
}

.wpcf7-form label .req-badge{
	display:inline-block;
	font-family:var(--font-jp);
	font-size:12px;
	font-weight:normal;
	color:var(--color-bg);
	background-color:var(--color-green);
	padding:0 10px;
	border-radius:999px;
	margin-left:8px;
	vertical-align:middle;
	margin-bottom: 5px;
}

/* ==========================================================
   18. お知らせ一覧（home.php）
   ========================================================== */
.news-page-list{ padding:0 0 100px; }
.news-page-list {
	padding: 0 0 100px;
    border-bottom: 7px solid #DDDDDD;
    max-width: 1000px;
    margin: 100px auto 0 auto;
}

/* ==========================================================
   19. 下層ページ共通レスポンシブ
   ========================================================== */
@media (max-width:768px){
	.subpage-hero{  min-height:0; padding:110px 10px 60px;}
	.subpage-hero-inner{ flex-direction:column; text-align:center; align-items: center; }
	.subpage-hero-text{ max-width:100%; }
	.subpage-hero-title{ font-size:26px; }
	.subpage-hero-illust{ max-width:250px; }

	.products-list-row{ padding:60px 0; }
	.products-list-inner{ flex-direction:column; width: 90%; margin: 0 auto; gap: 50px;}
	.products-list-photo{ max-width:100%; flex: auto; }

	.pd-product-row{ flex-direction:row; padding:40px 0; gap: 20px;}
	.pd-product-row.is-reverse{ flex-direction:row; width: 100%; }
	.pd-product-photo{ max-width:100%; }

	.pd-jerky-grid{ grid-template-columns:1fr; width: 90%; padding: 0 0 50px 0; margin: 0 auto 50px;}
	.pd-jerky-grid.cols-2{ grid-template-columns:1fr; }

	.pd-features-row{
		gap:24px;
	    flex-direction: column;
		width: 90%;
		margin: 70px auto;
		justify-content: center;
		align-items: center;
		padding-bottom: 0;
	}
	.pd-feature-item{ width:100%; }
	.pd-feature-circle{ width:250px; height:250px; }

	.contact-form-section{ padding:0}
	.contact-info-notes{ flex-direction:column; gap:12px; }

	.products-list-title {font-size: 24px;}

	.products-list-text .btn {
		display: flex;
    	justify-content: center;
		text-align: center;
	}

	.faq-illust {width: 70%;}
	.faq-simple-list {width: 100%; margin: 0 auto;}
	.contact-form-lead {width: 90%; margin: 0 auto 40px auto; padding-top: 70px;}

	.pd-content.is-tight{padding:100px 0 0 0; width: 90%;}
	.news-page-list {width: 90%;}
	.pd-note {width: 100%; margin: 50px auto;}
	.pd-dried-products{ padding:70px 0; }
	.pd-partner-inner img {width: 50%;}
	.dried-illust {
		width: 55%;
		padding-top: 5%;
	}
	.faq-simple-item{ padding:30px 10px;}
	.page-privacy {display: block;}
}

/* ==========================================================
   20. 会社概要ページ（page-company.php）
   ========================================================== */

/* 会社情報テーブル */
.company-info-section{ width:100%; max-width:1000px; margin:0 auto; padding:100px 0px; }
.company-info-table{
	width:100%;
	border-collapse:collapse;
	border:1px solid #DDDDDD;
}
.company-info-table th,
.company-info-table td{
	font-family:var(--font-jp);
	font-size:16px;
	color:var(--color-text);
	padding:18px 24px;
	border:1px solid #DDDDDD;
}
.company-info-table th{
	width:220px;
	font-weight:700;
	text-align:center;
	background-color:#FFF1BE;
}
.company-info-table td{
	font-weight:400;
	text-align:left;
	background-color:var(--color-bg);
}
.company-info-table td a{ color:var(--color-green); text-decoration:underline; }

/* 所在地 */
.company-location{ width:100%; background-color:#FFF1BE; padding:50px 20px 100px; }
.company-location-inner{ max-width:1000px; margin:0 auto; }
.company-location-title{
	font-family:var(--font-jp);
	font-size:20px;
	font-weight:400;
	color:var(--color-text);
	margin:0 0 20px;
}
.company-map{
	width:100%;
	height:300px;
	border-radius:6px;
	border:1px solid #DDDDDD;
	overflow:hidden;
}
.company-map iframe{ width:100%; height:100%; border:0; display:block; }

/* 3つのカード（事務所兼工場） */
.company-cards-section{ width:100%; max-width:1000px; margin:0 auto; padding:100px 0px; }
.company-cards{
	display:flex;
	gap:24px;
	flex-wrap:wrap;
	align-items:center;
	justify-content:center; /* ← カード枚数が減っても左右センターに配置 */
}
.company-card{
	/* 3枚時と同じ1枚あたりの幅を維持したいので、伸縮を止めて基準幅で固定 */
	flex:0 1 calc((1000px - 48px) / 3); /* コンテナ1000px - gap24px×2 を3分割＝約317.3px */
	border-radius:6px;
	padding:50px 30px;
}
.company-card.is-c1{ background-color:#F9F5E6; }
.company-card.is-c2{ background-color:#CDE1C3; }
.company-card.is-c3{ background-color:#FDF1C2; }
.company-card-title{
	font-family:var(--font-jp);
	font-size:20px;
	font-weight:400;
	color:var(--color-text);
	margin:0 0 13px;
}
.company-card-photo{ border-radius:6px; overflow:hidden; }
.company-card-photo img{ display:block; border-radius:6px; }

/* この建物で、つくりつづける */
.company-building-section{ width:100%; background-color:#F9F5E7; padding:70px 20px 100px; }
.company-building-inner{ max-width:1000px; margin:0 auto; }
.company-building-photos{
	display:flex;
	gap:28px;
	margin-bottom:40px;
	flex-wrap:wrap;
}

.company-building-text {
	width: 65%;
	margin: 0 auto;
}
.company-building-photos img{ flex:1 1 300px; width:48%; border-radius:6px; display:block; }
.company-building-text p{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:400;
	line-height:1.4;
	color:var(--color-text);
	margin:0 0 1.4em;
}
.company-building-text p:last-child{ margin-bottom:0; }

/* 代表者メッセージ */
.company-ceo-section{ width:100%; background-color:var(--color-green-light); color:var(--color-bg); padding:100px 20px; }
.company-ceo-inner{
	max-width:1000px;
	margin:0 auto;
	display:flex;
	align-items:flex-start;
	gap:60px;
	flex-wrap:wrap;
}
.company-ceo-photo{ flex:0 0 400px; max-width:400px; }
.company-ceo-photo img{ width:100%; border-radius:6px; display:block; }
.company-ceo-text{ flex:1 1 400px; }
.company-ceo-heading{
	font-family:var(--font-jp);
	font-size:28px;
	font-weight:500;
	color:var(--color-bg);
	margin:0 0 24px;
}
.company-ceo-text p{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:400;
	line-height:1.4;
	color:var(--color-bg);
	margin:0 0 1.4em;
}
.company-ceo-name{
	font-family:var(--font-jp);
	font-size:16px;
	font-weight:700;
	line-height:1.4;
	color:var(--color-bg);
	text-align:right;
	margin:0;
}

.news-illust-sp{padding-top: 5%;}

.wpcf7-form a{
	text-decoration: underline;
}

/* レスポンシブ */
@media (max-width:768px){
	.company-info-section{ padding:60px 0; width: 90%; }
	.company-info-table th{ width:110px; font-size:14px; padding:12px; }
	.company-info-table td{ font-size:14px; padding:12px; }

	.company-location{ padding:40px 0 60px 0; }
	.company-cards-section{ padding:60px 0; width: 90%; }
	.company-cards{ flex-direction:column; }

	.company-building-section{ padding:40px 0 60px 0; }
	.company-building-photos{ flex-direction:column; }

	.company-location-inner {width: 90%; margin: 0 auto;}
	.company-ceo-section{ padding:60px 0;}
	.company-ceo-inner{ flex-direction:column; width: 90%; margin: 0 auto;}
	.company-ceo-photo{ flex-basis:auto; width:100%; margin:0 auto; }
	.company-ceo-heading{ font-size:22px; text-align:center; }

	.pd-partner {margin-top: 100px; padding: 80px 0 120px;}
    .pd-partner-illust{
        width: 80px;
        top: 106%;
        transform: none;
    }

    .pd-partner-illust-left{
        left: 0;
        transform: translateX(-35%);
    }

    .pd-partner-illust-right{
        right: 0;
        transform: translateX(35%);
    }

	.pd-product-info {width: 100%;}

	.contact-info-section {margin-bottom: 100px;}

	.wpcf7-form input[type=submit]{
		width: 100%;
		padding:20px 40px;
		margin: 30px 0 50px 0;
		font-size: 20px;
	}

	.subpage-hero-sub{
		font-size:18px;
	}

	.header-cta.btn-green.sp-store-btn {
		display: flex;
		color: var(--color-bg);
		margin: 0 auto;
		border-radius: 999px;
		margin: 35px 0;
		padding: 30px 0;
	}

	.fv{
		background-image:url('assets/images/fv-back-sp.webp');
		padding-top: 100px;
	}

	.subpage-hero{
		background-image:url('assets/images/fv-back-sp.webp');
		padding-top: 120px;
	}

	.ec-text{
		margin: 0 0 20px !important;
	}
	
	.ec-section {
		background-image: url("assets/images/top-ec-back-sp.webp");
		background-position: bottom;
 	}
	
	.footer-products,.footer-menu-list {display: none;}

	.footer-brand {text-align: center; width: 100%;}

	.footer-brand a {display: flex; justify-content: center;}

	.company-building-photos img{ flex:auto; width:100%; }

	.company-building-text {
		width: 100%;
	}
	.company-building-inner{ width:90%; margin:0 auto; }

	.privacy-illust {padding-top: 5%;}

	.products-illust {max-width: 200px;}

	.news-illust-sp{max-width: 70%; padding-top: 0;}
}

/* ==========================================================
   21. お問い合わせフォーム 追加調整
   （reCAPTCHAバッジ非表示 / SP入力欄16px）
   ========================================================== */

/* reCAPTCHA v3 バッジ非表示
   ※非表示にする場合、Google規約によりフォーム付近に
     プライバシーポリシー・利用規約へのリンク明記が必須。
     contactページに既に規約文言があるため要件を満たす。 */
.grecaptcha-badge{ visibility:hidden; }

/* SP時、入力欄を16pxにしてiOS Safariの自動ズームを防止 */
@media (max-width:768px){
	.wpcf7-form input[type=text],
	.wpcf7-form input[type=email],
	.wpcf7-form input[type=tel],
	.wpcf7-form textarea,
	.wpcf7-form select{
		font-size:16px;
	}
}
