@charset "utf-8";
/*
Theme Name: 日本カイザー Modern
Theme URI: http://c-tpl.com/
Description: 株式会社日本カイザー レスポンシブ改修テーマ
Version: 2.4.2
Author: Cloud template
Author URI: http://c-tpl.com/
Tags: simple

	Cloud template v1.0
	 http://c-tpl.com/

	This theme was designed and built by Cloud template,
	whose blog you will find at http://c-tpl.com/

	The CSS, XHTML and design is released under GPL:
	http://www.opensource.org/licenses/gpl-license.php

*/

*{margin:0;padding:0;}

html{background:#fff;}

body{
font:13px/1.5 "メイリオ","Meiryo",arial,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Osaka,"ＭＳ Ｐゴシック","MS PGothic",Sans-Serif;
color:#252525;
background:#ffffff url(images/header.png) repeat-x;
}

body#under {
background: url(images/header_under.png) repeat-x top;
}

a{color:#777777;}
a:hover{color:#919191;text-decoration:none;}
a:active, a:focus {outline:0;}
img{border:0;}
.clear{clear:both;}
p{padding-bottom:10px;}
.center{text-align:center;}
.right{text-align:right;}


/*******************************
全体幅
*******************************/
#header , container, #wrapper, .inner{
margin:0 auto;
width:960px;
}


/*******************************
/* ヘッダー
*******************************/
#header{
position:relative;
height:120px;
}

#header h1,#header h2, #header h3, #header ul, #header .banners{
position:absolute;
top:2px;
color:#333;
font-size:10px;
font-weight:normal;
line-height:28px;
}

#header h2{right:0;}

/* ロゴの位置 */
#header h3{top:35px;}


/******************
/* ヘッダーナビゲーション
******************/
#header ul{
top:35px;
right:0;
width:305px;
height:15px;
background:url(images/topnav.png) no-repeat 0 0;
line-height:15px;
}

#header ul li{float:left;list-style:none;}

#header ul a{
text-indent:-9999px;
text-decoration:none;
display:block;
height:15px;
background:url(images/topnav.png) no-repeat;
}

#header ul a#contact{background-position:0 0;width:110px;}
#header ul a#sitemap{background-position:-110px 0;width:104px;}
#header ul a#access{background-position:-214px 0;width:91px;}

#header ul a#contact:hover, #header ul li.active a#contact{background-position:0 -15px;}
#header ul a#sitemap:hover, #header ul li.active a#sitemap{background-position:-110px -15px;}
#header ul a#access:hover, #header ul li.active a#access{background-position:-214px -15px;}


/******************
/* ヘッダー　バナー
******************/
#header .banners{
right:-10px;
top:60px;
}

#header .banners img{margin-right:10px;}


/************************************
/* メインナビゲーション
************************************/
ul#mainnav{
margin:0 auto;
width:960px;
height:45px;
background:url(images/mainnav.png) no-repeat 0 0;
}

ul#mainnav li{float:left;list-style:none;width:192px;}

ul#mainnav a{
text-indent:-9999px;
text-decoration:none;
display:block;
width:192px;
height:45px;
background:url(images/mainnav.png) no-repeat 0 0;
}

ul#mainnav a#home{background-position:0 0;}
ul#mainnav a#menu1{background-position:-192px 0;}
ul#mainnav a#menu2{background-position:-384px 0;}
ul#mainnav a#menu3{background-position:-576px 0;}
ul#mainnav a#menu4{background-position:-768px 0;}

ul#mainnav a#home:hover, ul#mainnav li.active a#home{background-position:0 -45px;}
ul#mainnav a#menu1:hover, ul#mainnav li.active a#menu1{background-position:-192px -45px;}
ul#mainnav a#menu2:hover, ul#mainnav li.active a#menu2{background-position:-384px -45px;}
ul#mainnav a#menu3:hover, ul#mainnav li.active a#menu3{background-position:-576px -45px;}
ul#mainnav a#menu4:hover, ul#mainnav li.active a#menu4{background-position:-768px -45px;}



/*******************************
メイン画像
*******************************/
#mainImage{
width:960px;
margin:30px auto 0 auto;
}

/* トップページ　メインカラムの写真 */
.photoB{margin-bottom:5px;}


/*******************************
コンテンツ位置
*******************************/

/* メイン+ サイドバー右 */
#container{
float:right;
width:745px;
margin:10px 0 30px;
}

#main{
float:left;
width:530px;
padding:20px 0 0;
}

#sidebarR{
float:right;
width:200px;
padding:24px 0 0;
margin:0 0 30px;
}

#sidebarR p{
padding:0 0 15px;
}

/* サイドバー左 */
#sidebarL{
float:left;
width:200px;
padding:24px 0 0;
margin:10px 0 30px;
}

#sidebarL p{
	padding-top: 0;
	padding-right: 0;
	padding-bottom: 7px;
	padding-left: 0;
}

/* トップページのサイドバーの上部スペースの調節 */
body.toppage #sidebarR,body.toppage #sidebarL{padding-top:20px;}

#date {
text-align: right;
padding-right: 15px;
padding-top: 5px;
padding-bottom: 10px;
font-weight:bold;
color:#858585;
}

#next {
text-align: center;
padding-top: 30px;
padding-bottom: 30px;
}

img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
img.alignright {
    padding: 4px;
    margin: 0 0 2px 7px;
    display: inline;
}
img.alignleft {
    padding: 4px;
    margin: 0 7px 2px 0;
    display: inline;
}
.alignright {
    float: right;
}
.alignleft {
    float: left;
}

.box_img_border{
   border: 1px solid #cccccc;
   padding: 1px;
  margin: 1px;
}


/*************************
/* ボックスの囲み
/* .boxContainer
/* 背景画像でボックスの高さを調整
/* 
/* 各ボックス
/* .box1 1番目の2つのbox
/* .box2 2番目の3つのbox（画像）
/* .box3 3番目の2つのbox
/* .box4 4,5番目の1つのbox
/* .boxS サイドバーのbox
*************************/
.boxContainer{
width:530px;
margin:0 auto 15px;
background:url(images/box1.png) 0 100%;
}

.box1, .box3, .box4{
float:left;
width:231px;
margin:0 20px 0 0;
padding:15px 12px;
}

.box1{
background:url(images/boxTop.png) 0 0 no-repeat;
}

.box2{
float:left;
width:160px;
margin:0 17px 5px 4px;
}

.box3{
width:255px;
padding:0 0 10px;
border-top:0;
}

.box4{
margin:0 0 15px 0;
padding:0 0 10px;
width:530px;
border:0;
background:url(images/box.png) 0 100%;
}

.boxS{
	width:200px;
	font-size:13px;
	background:url(images/sidebarBox.png) 0 100%;
	margin-top: 0px;
	margin-right: 0;
	margin-bottom: 15px;
	margin-left: 0;
	padding-top: 0;
	padding-right: 0;
	padding-bottom: 5px;
	padding-left: 0;
}

/* 最後のbox */
.last{margin-right:0;}


/* 画像を中央表示 */
.box1 .center{padding-bottom:10px;}

/* 画像を左に回りこみ */
.box4 img{
float:left;
margin:0 10px 10px 11px;
}

.box4 h4 img{float:none;margin:0 0 10px;}

.box4 p{padding:0 12px 10px;}


/*************
/* 見出し
*************/
.box3 h4{margin-bottom:10px;}

#main h3{
font-weight:normal;
margin:0 1px 10px 0;
padding:2px 0 5px 12px;
color:#777777;
border-bottom: 1px solid #ccc;
}

#main .boxT p{
padding:0 10px 25px 10px;
}

#wrapper h2{
padding:0 5px 10px 5px;
margin-bottom:10px;
line-height:46px;
font-size:15px;
font-weight:normal;
color:#555555;
background:url(images/h2Bg.png) repeat-x 0 100%;
}

#wrapper .box4 h3{
font-weight:normal;
padding:7px 5px;
}

.boxS h3{
font-weight:normal;
padding: 0 5px 0 24px;
margin-bottom:7px;
line-height: 38px;
font-size:13px;
color:#555555;
background:url(images/sidebarH3.png) no-repeat 0 0;
}


/*************
/* リスト
*************/
#wrapper ul{margin:0 6px;}

#wrapper ul li, #footerUpper ul li{
list-style:none;
margin-bottom:8px;
padding:0 5px 0 17px;
background:url(images/bullet.gif) no-repeat 0 5px;
}

#footerUpper ul li{background-position: 0 3px;}

#wrapper .box3 ul{padding:0 5px;}

#wrapper .boxS ul{margin-left:9px;}
.boxS p{margin:0 6px;}


/*******************************
/* バナー
*******************************/
#banners{
clear:both;
padding: 20px 0 20px;
text-align:center;
background:#e8e8e8;
border-bottom:1px solid #7a7a7a;
}

#banners img{margin-right:20px;}
#banners img.last{margin:0;}


/*******************************
/* フッター
*******************************/
#footerUpper{
clear:both;
padding:20px 0;
border-top:1px solid #e8e8e8;
border-bottom:1px solid #606060;
overflow:hidden;
background:#959595;
}

#footerUpper .inner{
background:url(images/footerBorder.gif) repeat-y;
}

#footerUpper .inner .box{
float:left;
width:210px;
padding-left:10px;
margin:0 20px 10px 0;
line-height:1.2;
}

#footerUpper .inner .last{
width:230px;
margin-right:0;
}

#footerUpper a{color:#ffffff;}
#footerUpper a:hover{color:#e6e6e6;text-decoration:none;}


#footerLower{
clear:both;
padding:7px;
text-align:center;
border-top:1px solid #959595;
background:#6c6c6c;
}

address{
font-style:normal;
font-size:13px;
color:#ffffff;
}
.boxS p {
	font-size: 11px;
	margin-top: 0px;
	padding-top: 0px;
}
.h4midashi {
	background-image: url(images/heading0.png);
	background-repeat: no-repeat;
	font-size: 11px;
	font-weight: bold;
	padding-left: 28px;
	padding-top: 12px;
	height: 35px;
}
/*//////////////////////////////////////////////////*/
/*// 02.e[u̎w                            //*/
/*//////////////////////////////////////////////////*/
table.mailform {
	width: 100%;
	padding: 10px;
	margin-right: auto;
	margin-left: auto;
}
table.mailform tr th {
	padding: 7px 0px 7px 0px;
	border-bottom: solid 1px #CCCCCC;
	font-weight: normal;
	font-size: 12px;
	text-align: left;
	width: 160px;
}
table.mailform tr th span {
	font-size: 10px;
	color: #999999;
	display: block;
}
table.mailform tr td {
	padding: 7px 0px 7px 10px;
	border-bottom: solid 1px #CCCCCC;
	font-size: 12px;
}
table.mailform tr td ul li,table.mailform tr td ul,table.mailform tr td ol,table.mailform tr td ol li {
	list-style: none;
	margin: 0px;
	padding: 0px;
}
table.mailform tr td ul li {
	float: left;
	padding: 0px 10px 0px 0px;
}
table.mailform tr td p,table.mailform tr td div,table.mailform tr td span {
	clear: both;
}


#mainnav {
	display: flex;
	width: 960px;
	margin: 0 auto;
	padding: 0;
	background: #ffffff;
	border-top: 1px solid #dddddd;
	border-bottom: 3px solid #6f9a33;
	list-style: none;
}

#mainnav li {
	flex: 1;
	margin: 0;
	padding: 0;
	border-right: 1px solid #e2e2e2;
	list-style: none;
}

#mainnav li:first-child {
	border-left: 1px solid #e2e2e2;
}

#mainnav li a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 8px;
	box-sizing: border-box;
	color: #333333;
	background: #ffffff;
	font-size: 14px;
	font-weight: bold;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	text-indent: 0;
	transition: background-color 0.2s, color 0.2s;
}

#mainnav li a:hover {
	color: #ffffff;
	background: #6f9a33;
}

#mainnav li.mother-nav a {
	color: #ffffff;
	background: #65aaa8;
}

#mainnav li.mother-nav a:hover {
	background: #478e8b;
}
/* ===================================
   メインナビゲーション文字化
=================================== */

#mainnav,
#mainnav.nav {
	display: flex !important;
	width: 960px !important;
	height: auto !important;
	margin: 0 auto !important;
	padding: 0 !important;
	background: #ffffff !important;
	border: 0 !important;
	border-top: 1px solid #dddddd !important;
	border-bottom: 3px solid #6f9634 !important;
	list-style: none !important;
	overflow: visible !important;
}

#mainnav > li {
	display: block !important;
	float: none !important;
	flex: 1 1 0 !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	border-right: 1px solid #dddddd !important;
	list-style: none !important;
}

#mainnav > li:first-child {
	border-left: 1px solid #dddddd !important;
}

#mainnav > li > a,
#mainnav a#home,
#mainnav a#menu1,
#mainnav a#menu2,
#mainnav a#menu3,
#mainnav a#menu4 {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	height: 54px !important;
	margin: 0 !important;
	padding: 0 8px !important;
	box-sizing: border-box !important;
	background: #ffffff !important;
	background-image: none !important;
	color: #333333 !important;
	font-size: 14px !important;
	font-weight: bold !important;
	line-height: 1.4 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	white-space: nowrap !important;
	overflow: visible !important;
}

#mainnav > li > a:hover {
	color: #ffffff !important;
	background: #6f9634 !important;
}

/* 古いサブメニューや装飾を非表示 */
#mainnav ul,
#mainnav li ul,
#mainnav a span {
	display: none !important;
}

/* MOTHERメニュー */
#mainnav > li.mother-nav > a {
	color: #ffffff !important;
	background: #599d9b !important;
}

#mainnav > li.mother-nav > a:hover {
	background: #3f807e !important;
}
/* メニューの位置・サイズを厳密に統一 */
#mainnav,
#mainnav *,
#mainnav *::before,
#mainnav *::after {
	box-sizing: border-box !important;
}

#mainnav {
	width: 960px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* メニュー文字を現代的な日本語フォントへ */
#mainnav > li > a {
	font-family:
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		"Helvetica Neue",
		"Yu Gothic",
		"YuGothic",
		"ヒラギノ角ゴ ProN W3",
		"Hiragino Kaku Gothic ProN",
		Meiryo,
		sans-serif !important;

	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	-webkit-font-smoothing: antialiased;
}
#mainnav > li > a {
	width: 100% !important;
}
#mainnav > li > a {
	width: 100% !important;
	height: 46px !important;
	min-height: 46px !important;
}
/* ===================================
   サイト全体のフォントを更新
=================================== */

html,
body,
div,
p,
ul,
ol,
li,
dl,
dt,
dd,
table,
th,
td,
form,
input,
textarea,
select,
button {
	font-family:
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		"Helvetica Neue",
		"Yu Gothic",
		"YuGothic",
		"Hiragino Kaku Gothic ProN",
		"ヒラギノ角ゴ ProN W3",
		Meiryo,
		sans-serif !important;
}

/* 通常本文 */
body {
	color: #333333;
	font-size: 14px;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* 見出し */
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family:
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		"Yu Gothic",
		"YuGothic",
		"Hiragino Kaku Gothic ProN",
		Meiryo,
		sans-serif !important;
	font-weight: 600;
	letter-spacing: 0.02em;
}

/* リンク */
a {
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
/* 本文フォントの最終調整 */
body {
	font-family:
		system-ui,
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		"Yu Gothic UI",
		"Yu Gothic",
		Meiryo,
		sans-serif !important;

	color: #333333;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.7;
}

/* Windowsの游ゴシックが細く見えるのを補正 */
p,
li,
dt,
dd,
th,
td {
	font-weight: 500;
}

/* 本文内の段落間隔 */
#main p {
	margin-top: 0;
	margin-bottom: 12px;
}

/* 本文リンク */
#main a {
	color: #52787a;
	text-underline-offset: 3px;
}
#main h3,
#main h4,
.h4midashi {
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0.03em;
}
#main .h4midashi {
	display: flex !important;
	align-items: center !important;
	width: 530px !important;
	height: 35px !important;
	margin: 0 !important;
	padding: 0 10px 0 28px !important;
	box-sizing: border-box !important;

	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
}
table.mailform tr th {
	width: 120px !important;
}

/* ==================================================
   KAISER MODERN THEME 2.0
   ================================================== */
:root {
	--kaiser-green: #597a2f;
	--kaiser-green-dark: #3f5c1d;
	--kaiser-teal: #4f9693;
	--kaiser-ink: #243028;
	--kaiser-muted: #667068;
	--kaiser-line: #dfe5df;
	--kaiser-paper: #f5f7f3;
	--kaiser-white: #fff;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body,
body#under {
	margin: 0;
	color: var(--kaiser-ink);
	background: #fff;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif !important;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: var(--kaiser-green-dark); }
img { max-width: 100%; height: auto; vertical-align: middle; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.content-inner, .header-inner { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.narrow { max-width: 780px; }

/* Header */
.site-header { position: relative; z-index: 100; background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.08); }
.header-bar { color: #dfe8de; background: #25352b; font-size: 12px; }
.header-bar .header-inner { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-description { margin: 0; padding: 0; font-weight: 400; }
.header-map { color: #fff; text-decoration: none; }
.header-map:hover { color: #dce8cf; }
.header-main .header-inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.site-logo { display: inline-flex; flex: 0 0 auto; }
.site-logo img { width: 205px; height: auto; }
.header-contact { display: flex; align-items: center; gap: 24px; }
.header-tel { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.35; }
.header-tel span { color: var(--kaiser-muted); font-size: 11px; }
.header-tel a { color: var(--kaiser-ink); font-size: 20px; font-weight: 700; letter-spacing: .04em; text-decoration: none; }
.header-contact-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 22px; color: #fff; background: var(--kaiser-green); border-radius: 3px; font-size: 14px; font-weight: 700; text-decoration: none; }
.header-contact-button:hover { color: #fff; background: var(--kaiser-green-dark); }
.menu-toggle { display: none; }

.site-navigation { border-top: 1px solid #edf0ec; }
#mainnav, #mainnav.nav { display: flex !important; width: min(1120px, calc(100% - 48px)) !important; height: auto !important; margin: 0 auto !important; padding: 0 !important; background: #fff !important; border: 0 !important; list-style: none !important; }
#mainnav > li { flex: 1 1 0 !important; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; list-style: none !important; }
#mainnav > li > a { position: relative; display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; height: 54px !important; padding: 0 10px !important; color: #344039 !important; background: #fff !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1.4 !important; text-align: center !important; text-decoration: none !important; text-indent: 0 !important; white-space: nowrap !important; }
#mainnav > li > a::after { content: ""; position: absolute; right: 14%; bottom: 0; left: 14%; height: 3px; background: var(--kaiser-green); transform: scaleX(0); transition: transform .2s ease; }
#mainnav > li > a:hover, #mainnav > li.current > a { color: var(--kaiser-green-dark) !important; background: #fff !important; }
#mainnav > li > a:hover::after, #mainnav > li.current > a::after { transform: scaleX(1); }
#mainnav > li.mother-nav > a { color: #fff !important; background: var(--kaiser-teal) !important; }
#mainnav > li.mother-nav > a:hover { background: #3d7f7c !important; }
#mainnav > li.mother-nav > a::after { display: none; }

/* Home */
.home-hero { min-height: 520px; display: grid; align-items: center; background: linear-gradient(90deg, rgba(20,39,28,.78) 0%, rgba(32,52,35,.55) 38%, rgba(25,44,31,.08) 72%), url(images/hero-hokkaido.webp) center center / cover no-repeat; }
.home-hero-inner { width: min(1120px, calc(100% - 48px)); margin-inline: auto; padding: 70px 0; color: #fff; }
.hero-eyebrow, .section-label, .card-kicker { margin: 0 0 14px; color: #9bbf72; font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.home-hero h1 { max-width: 700px; margin: 0 0 22px; color: #fff; font-size: clamp(38px, 5vw, 64px); font-weight: 650; line-height: 1.35; letter-spacing: .04em; text-shadow: 0 2px 15px rgba(0,0,0,.15); }
.hero-lead { margin: 0; color: #fff; font-size: 17px; line-height: 2; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { display: inline-flex; min-height: 52px; padding: 0 28px; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 3px; font-weight: 700; text-decoration: none; transition: .2s ease; }
.button-primary { color: #fff; background: var(--kaiser-green); }
.button-primary:hover { color: #fff; background: var(--kaiser-green-dark); transform: translateY(-1px); }
.button-secondary { color: #fff; border-color: rgba(255,255,255,.75); background: rgba(255,255,255,.08); }
.button-secondary:hover { color: var(--kaiser-ink); background: #fff; }
.home-section { padding: 64px 0 42px; text-align: center; }
.home-section h2, .home-about h2, .home-news h2, .home-cta h2 { margin: 0 0 22px; color: var(--kaiser-ink); font-size: clamp(28px, 3.5vw, 42px); font-weight: 600; line-height: 1.5; }
.section-lead { margin: 0; color: var(--kaiser-muted); font-size: 16px; line-height: 2; }
.business-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding-bottom: 100px; }
.business-card { position: relative; min-height: 390px; padding: 52px; overflow: hidden; color: #fff; border-radius: 8px; box-shadow: 0 15px 45px rgba(25,43,31,.12); }
.food-card { background: linear-gradient(135deg, #526f30, #769744); }
.mother-card { background: linear-gradient(135deg, #3d7f7c, #66aaa7); }
.card-number { position: absolute; top: 28px; right: 36px; margin: 0; color: rgba(255,255,255,.16); font: 700 82px/1 Arial, sans-serif; }
.business-card .card-kicker { color: rgba(255,255,255,.75); }
.business-card h2 { margin: 0 0 24px; color: #fff; font-size: clamp(24px, 2.5vw, 32px); line-height: 1.55; }
.business-card > p:not(.card-number):not(.card-kicker) { max-width: 520px; margin: 0 0 32px; color: rgba(255,255,255,.9); line-height: 1.9; }
.text-link { display: inline-flex; gap: 10px; align-items: center; color: inherit; font-weight: 700; text-decoration: none; }
.business-card .text-link { color: #fff; border-bottom: 1px solid rgba(255,255,255,.5); }
.text-link:hover { gap: 14px; color: inherit; }
.home-about { padding: 100px 0; background: var(--kaiser-paper); }
.about-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 9%; align-items: start; }
.home-about .section-label, .home-news .section-label { color: var(--kaiser-green); }
.about-copy { padding-top: 38px; color: var(--kaiser-muted); font-size: 16px; }
.about-copy p { margin: 0 0 18px; }
.about-copy .text-link { margin-top: 12px; color: var(--kaiser-green-dark); }
.home-news { padding: 100px 0; }
.news-layout { display: grid; grid-template-columns: 240px 1fr; gap: 70px; }
.news-heading h2 { font-size: 32px; }
.news-item { display: grid; grid-template-columns: 120px 1fr; gap: 20px; padding: 20px 8px; color: var(--kaiser-ink); border-bottom: 1px solid var(--kaiser-line); text-decoration: none; }
.news-item:first-child { border-top: 1px solid var(--kaiser-line); }
.news-item time { color: var(--kaiser-muted); font-size: 13px; }
.news-item:hover span { color: var(--kaiser-green); }
.home-cta { padding: 88px 0; color: #fff; background: #304b38; text-align: center; }
.home-cta .section-label { color: #aecb8d; }
.home-cta h2, .home-cta p { color: #fff; }
.home-cta p { margin-bottom: 28px; }
.button-light { color: var(--kaiser-ink); background: #fff; }
.button-light:hover { color: #fff; background: var(--kaiser-green); }

/* Existing inner-page layout */
#wrapper { width: min(1120px, calc(100% - 48px)); margin: 54px auto 80px; display: grid; grid-template-columns: 200px minmax(0, 1fr) 200px; gap: 28px; }
#container { display: contents; float: none; width: auto; margin: 0; }
#main { grid-column: 2; float: none; width: auto; min-width: 0; padding: 0; }
#sidebarL { grid-column: 1; grid-row: 1; }
#sidebarR { grid-column: 3; grid-row: 1; }
#wrapper h2 { margin: 0 0 28px; padding: 0 0 15px; color: var(--kaiser-ink); background: none; border-bottom: 2px solid var(--kaiser-green); font-size: 26px; font-weight: 600; line-height: 1.5; }
#main h3 { margin: 34px 0 18px; padding: 0 0 10px; color: var(--kaiser-ink); border-bottom: 1px solid var(--kaiser-line); font-size: 20px; }
#main .boxT p { padding: 0; margin: 0 0 18px; }
#main table { max-width: 100%; }
#main input, #main textarea, #main select { max-width: 100%; }
.sidebar { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.sidebar-card { display: flex; flex-direction: column; gap: 5px; margin: 0 0 12px; padding: 19px 17px; color: var(--kaiser-ink); background: var(--kaiser-paper); border-left: 3px solid var(--kaiser-green); text-decoration: none; transition: .2s ease; }
.sidebar-card span { font-size: 14px; font-weight: 700; line-height: 1.55; }
.sidebar-card small { color: var(--kaiser-muted); font-size: 11px; }
.sidebar-card:hover { color: var(--kaiser-green-dark); background: #edf2e8; transform: translateX(2px); }
.sidebar-mother { border-color: var(--kaiser-teal); background: #edf6f5; }
.sidebar-download { border-color: #73816f; }
.sidebar-works { min-height: 170px; justify-content: flex-end; color: #fff; border: 0; background: linear-gradient(160deg, rgba(36,48,40,.25), rgba(36,48,40,.88)), url(images/ban005.png) center / cover; }
.sidebar-works small { color: rgba(255,255,255,.78); }
.widget { margin-top: 24px; }
.widget-title { margin-bottom: 12px; font-size: 15px; }

/* Footer */
.site-footer { color: #cbd3cd; background: #202d25; }
.footer-main { padding: 68px 0 55px; }
.footer-grid { display: grid; grid-template-columns: 1.1fr 1.3fr .9fr; gap: 60px; }
.footer-brand img { width: 180px; padding: 10px; background: #fff; }
.footer-brand p { margin-top: 20px; color: #aeb9b1; font-size: 13px; }
.footer-nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 24px; }
.footer-nav a, .footer-meta a { color: #e7ebe8; text-decoration: none; }
.footer-nav a:hover, .footer-meta a:hover { color: #b7d293; }
.footer-meta { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; font-size: 13px; }
.footer-tel { margin-top: 16px; color: #aeb9b1; }
.footer-tel a { font-size: 18px; font-weight: 700; }
.footer-bottom { padding: 17px 24px; border-top: 1px solid rgba(255,255,255,.1); text-align: center; }
.footer-bottom p { margin: 0; padding: 0; color: #919d95; font-size: 11px; }
#banners, #footerUpper, #footerLower { display: none; }

/* Contact Form 7 */
.kaiser-contact-form { max-width: none; margin: 20px 0; padding: clamp(20px, 4vw, 36px); background: var(--kaiser-paper); border: 1px solid var(--kaiser-line); border-radius: 5px; }
.kaiser-contact-form input[type="text"], .kaiser-contact-form input[type="email"], .kaiser-contact-form input[type="tel"], .kaiser-contact-form textarea { border-color: #bcc6bd; border-radius: 3px; }
.kaiser-contact-form input[type="submit"] { background: var(--kaiser-green); }
.kaiser-contact-form input[type="submit"]:hover { background: var(--kaiser-green-dark); }

/* 2.4.2 final cascade overrides */
.business-card { min-height: 460px; padding: 0; color: #fff; border: 0; background: #1d2821; }
.business-card::before { content: ""; position: absolute; inset: 0; z-index: -1; display: block; background: linear-gradient(180deg, rgba(12,19,14,.05) 15%, rgba(12,19,14,.68) 60%, rgba(12,19,14,.96) 100%); }
.business-card-bg { position: absolute; inset: 0; z-index: -2; display: block !important; width: 100%; height: 100%; object-fit: cover; }
.business-card-body { min-height: 460px; padding: 46px 42px 40px; display: flex; flex-direction: column; justify-content: flex-end; }
.business-card .card-number { top: 24px; right: 28px; color: rgba(255,255,255,.44); }
.business-card .card-kicker, .mother-card .card-kicker { color: rgba(255,255,255,.78); }
.business-card h2 { color: #fff !important; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important; font-size: 29px; }
.business-card-body > p:not(.card-number):not(.card-kicker) { color: rgba(255,255,255,.86) !important; }
.business-card .text-link, .mother-card .text-link { color: #fff !important; border-bottom-color: rgba(255,255,255,.65); }
.home-about { padding: 110px 0; background: #eef1ed; }
.about-grid { grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; }
.about-visual { min-height: 390px; padding: 48px; border-radius: 7px 0 0 7px; background: linear-gradient(0deg, rgba(18,31,22,.84), rgba(18,31,22,.08)), url(images/business-partnership.webp) center / cover !important; box-shadow: 0 18px 45px rgba(24,40,29,.16); }
.about-visual .section-label, .about-visual h2 { color: #fff; }
.about-copy { min-height: 390px; padding: 52px; display: flex; flex-direction: column; justify-content: center; color: rgba(255,255,255,.78); background: #202d25; border-radius: 0 7px 7px 0; box-shadow: 0 18px 45px rgba(24,40,29,.16); }
.about-copy p { color: rgba(255,255,255,.78); }
.about-copy .text-link { align-self: flex-start; margin-top: 20px; padding: 12px 20px; color: #fff; border: 1px solid rgba(255,255,255,.45); border-radius: 3px; }
.about-copy .text-link:hover { color: #202d25; background: #fff; border-color: #fff; }
@media (max-width: 820px) {
	.business-card, .business-card-body { min-height: 410px; }
	.business-card-body { padding: 34px 25px 30px; }
	.about-grid { grid-template-columns: 1fr; }
	.about-visual { min-height: 310px; border-radius: 7px 7px 0 0; }
	.about-copy { min-height: 0; padding: 36px 28px; border-radius: 0 0 7px 7px; }
}

/* 2.4 visual refinement */
.business-card { position: relative; min-height: 460px; border: 0; color: #fff; background-position: center; background-size: cover; isolation: isolate; transition: transform .25s ease, box-shadow .25s ease; }
.business-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(17,24,19,.03) 18%, rgba(17,24,19,.88) 82%, rgba(17,24,19,.96)); }
.business-card:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(20,35,24,.2); }
.food-card { background-image: url(images/business-food.webp); }
.mother-card { background-image: url(images/business-aquamation.webp); }
.business-card-image { display: none; }
.business-card-body { min-height: 460px; padding: 48px 44px 42px; display: flex; flex-direction: column; justify-content: flex-end; }
.business-card .card-number { top: 25px; right: 30px; color: rgba(255,255,255,.42); font-size: 54px; }
.business-card .card-kicker, .mother-card .card-kicker { margin-bottom: 9px; color: rgba(255,255,255,.8); }
.business-card h2 { margin-bottom: 12px; color: #fff; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important; font-size: 29px; font-weight: 600; }
.business-card-body > p:not(.card-number):not(.card-kicker) { max-width: 440px; margin-bottom: 20px; color: rgba(255,255,255,.84); }
.business-card .text-link, .mother-card .text-link { align-self: flex-start; color: #fff; border-bottom-color: rgba(255,255,255,.6); }

.about-visual { min-height: 370px; background: linear-gradient(0deg, rgba(24,40,29,.84), rgba(24,40,29,.06)), url(images/business-partnership.webp) center / cover; box-shadow: 0 16px 40px rgba(24,40,29,.13); }
.about-visual h2 { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important; font-weight: 600; }

.sidebar-guide { position: relative; min-height: 98px; padding: 20px 38px 18px 20px; justify-content: center; overflow: hidden; border: 1px solid #d9e1d7; border-left: 5px solid var(--kaiser-green); background: linear-gradient(135deg, #fff, #edf3e9); box-shadow: 0 7px 18px rgba(31,52,35,.07); }
.sidebar-guide::before { position: absolute; top: 7px; right: 10px; color: rgba(89,122,47,.13); font: 700 34px/1 Arial, sans-serif; }
.sidebar-guide-sales::before { content: "01"; }
.sidebar-guide-agent::before { content: "02"; }
.sidebar-guide::after { content: "→"; position: absolute; right: 13px; bottom: 12px; color: var(--kaiser-green); font-weight: 700; }
.sidebar-guide span { font-size: 15px; }
.sidebar-guide:hover { color: var(--kaiser-green-dark); background: #e5eee0; border-color: #b9c9b3; transform: translateY(-2px); }

.download-card { position: relative; display: flex; min-height: 138px; margin: 0 0 12px; padding: 18px 16px; flex-direction: column; justify-content: flex-end; overflow: hidden; color: #fff; border-radius: 4px; text-decoration: none; box-shadow: 0 8px 20px rgba(31,45,35,.12); transition: .2s ease; }
.download-card b { position: absolute; top: 14px; right: 14px; padding: 3px 7px; color: inherit; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.5); border-radius: 2px; font-size: 10px; letter-spacing: .08em; }
.download-card span { font-size: 16px; font-weight: 700; line-height: 1.45; }
.download-card small { margin-top: 5px; color: rgba(255,255,255,.86); font-size: 11px; }
.download-guide { background: linear-gradient(145deg, #3f5f2f, #62873e); }
.download-form { color: #314039; background: linear-gradient(145deg, #eef2ec, #dbe5d8); border: 1px solid #ccd8c9; }
.download-form b { background: rgba(255,255,255,.48); border-color: rgba(49,64,57,.3); }
.download-form small { color: #637068; }
.download-card:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 24px rgba(31,45,35,.18); }
.download-form:hover { color: #26342d; background: #d4e0d1; }

@media (max-width: 820px) {
	.business-card, .business-card-body { min-height: 410px; }
	.business-card-body { padding: 34px 26px 30px; }
	.about-visual { min-height: 320px; }
	.download-card { min-height: 125px; }
}

/* 2.4.1: reliable card images and compact sidebars */
.business-card-bg { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; object-fit: cover; }
.food-card .business-card-bg { object-position: 58% center; }
.mother-card .business-card-bg { object-position: 62% center; }

.sidebar-guide { min-height: 76px; padding: 13px 30px 12px 14px; gap: 1px; }
.sidebar-guide span { font-size: 13px; line-height: 1.4; white-space: nowrap; letter-spacing: -.02em; }
.sidebar-guide small { font-size: 10px; white-space: nowrap; }
.sidebar-guide::before { top: 8px; right: 7px; font-size: 28px; }
.sidebar-guide::after { right: 9px; bottom: 8px; }

.download-card { min-height: 98px; padding: 13px 13px; }
.download-card b { top: 10px; right: 10px; padding: 2px 6px; }
.download-card span { font-size: 14px; line-height: 1.35; }
.download-card small { margin-top: 3px; font-size: 10px; }

@media (max-width: 820px) {
	.sidebar-guide { min-height: 68px; }
	.download-card { min-height: 92px; }
}

/* 2.1 visual card update */
.business-card { min-height: 0; padding: 0; color: var(--kaiser-ink); background: #fff; border: 1px solid var(--kaiser-line); }
.business-card-image { height: 230px; background-position: center; background-size: cover; }
.food-card .business-card-image { background-image: url(images/business-food.webp); }
.mother-card .business-card-image { background-image: url(images/business-aquamation.webp); }
.business-card-body { position: relative; padding: 34px 38px 38px; }
.business-card .card-number { top: 28px; right: 30px; color: rgba(36,48,40,.09); font-size: 64px; }
.business-card .card-kicker { color: var(--kaiser-green); }
.mother-card .card-kicker { color: var(--kaiser-teal); }
.business-card h2 { margin-bottom: 14px; color: var(--kaiser-ink); font-size: 26px; }
.business-card > p:not(.card-number):not(.card-kicker),
.business-card-body > p:not(.card-number):not(.card-kicker) { margin-bottom: 20px; color: var(--kaiser-muted); }
.business-card .text-link { color: var(--kaiser-green-dark); border-bottom: 1px solid #aebca4; }
.mother-card .text-link { color: #397a77; }
.about-visual { min-height: 330px; padding: 46px; display: flex; flex-direction: column; justify-content: flex-end; border-radius: 6px; background: linear-gradient(0deg, rgba(29,47,34,.78), rgba(29,47,34,.05)), url(images/business-food.webp) center / cover; }
.about-visual .section-label, .about-visual h2 { color: #fff; }
.about-copy { align-self: center; padding-top: 0; }
.sidebar-image-card { min-height: 190px; justify-content: flex-end; color: #fff; border: 0; background: linear-gradient(0deg, rgba(34,91,88,.88), rgba(34,91,88,.08)), url(images/business-aquamation.webp) 68% center / cover; }
.sidebar-image-card small, .sidebar-food-image small { color: rgba(255,255,255,.85); }
.sidebar-image-card:hover { color: #fff; background: linear-gradient(0deg, rgba(34,91,88,.95), rgba(34,91,88,.18)), url(images/business-aquamation.webp) 68% center / cover; }
.sidebar-food-image { min-height: 128px; justify-content: flex-end; color: #fff; border: 0; background: linear-gradient(0deg, rgba(42,54,35,.9), rgba(42,54,35,.08)), url(images/business-food.webp) 70% center / cover; }
.sidebar-food-image:hover { color: #fff; background: linear-gradient(0deg, rgba(42,54,35,.96), rgba(42,54,35,.15)), url(images/business-food.webp) 70% center / cover; }
.sidebar-application { background-position: 45% center; }
.sidebar-works:hover { color: #fff; background: linear-gradient(160deg, rgba(36,48,40,.35), rgba(36,48,40,.94)), url(images/ban005.png) center / cover; }

/* Legacy page-content modernization */
.page-service #main img[src*="/77.jpg"] { display: block; width: 100%; margin: 0 0 30px; border-radius: 6px; box-shadow: 0 12px 30px rgba(28,44,32,.12); }
.page-concept #main img[src*="/71.jpg"] { display: block; width: min(100%, 620px); margin: 28px auto 38px; border-radius: 6px; box-shadow: 0 12px 30px rgba(28,44,32,.12); }
.page-model #main .boxT::before { content: ""; display: block; width: 100%; height: 250px; margin: 0 0 30px; border-radius: 6px; background: linear-gradient(90deg, rgba(33,49,36,.15), rgba(33,49,36,0)), url(images/business-food.webp) center 58% / cover; box-shadow: 0 12px 30px rgba(28,44,32,.12); }
#main a:has(> img[src*="kuwasiku"]) { display: inline-flex; min-height: 46px; margin: 12px 0 28px; padding: 0 24px; align-items: center; justify-content: center; gap: 12px; color: #fff; background: var(--kaiser-green); border-radius: 3px; font-size: 14px; font-weight: 700; text-decoration: none; transition: .2s ease; }
#main a:has(> img[src*="kuwasiku"])::before { content: "詳しくはこちら"; }
#main a:has(> img[src*="kuwasiku"])::after { content: "→"; transition: transform .2s ease; }
#main a:has(> img[src*="kuwasiku"]):hover { color: #fff; background: var(--kaiser-green-dark); transform: translateY(-1px); }
#main a:has(> img[src*="kuwasiku"]):hover::after { transform: translateX(3px); }
#main a:has(> img[src*="kuwasiku"]) > img { display: none !important; }

/* Concept: 札幌市食品衛生管理認定制度バナーのみ文字ボタン化 */
.page-concept #main a:has(> img[alt*="札幌市食品衛生管理認定制度"]) { display: inline-flex; min-height: 46px; margin: 12px 0 28px; padding: 0 22px; align-items: center; gap: 12px; color: #fff; background: var(--kaiser-green); border-radius: 3px; font-size: 14px; font-weight: 700; text-decoration: none; transition: .2s ease; }
.page-concept #main a:has(> img[alt*="札幌市食品衛生管理認定制度"])::before { content: "札幌市食品衛生管理認定制度"; }
.page-concept #main a:has(> img[alt*="札幌市食品衛生管理認定制度"])::after { content: "↗"; }
.page-concept #main a:has(> img[alt*="札幌市食品衛生管理認定制度"]):hover { color: #fff; background: var(--kaiser-green-dark); transform: translateY(-1px); }
.page-concept #main a:has(> img[alt*="札幌市食品衛生管理認定制度"]) > img { display: none !important; }
@media (max-width: 820px) {
	.business-card-image { height: 210px; }
	.business-card-body { padding: 28px 24px 32px; }
	.about-visual { min-height: 300px; padding: 30px; }
	.page-model #main .boxT::before { height: 190px; }
}

/* Original desktop banners + dedicated mobile landscape banners */
.original-banner { display: block; margin: 0 0 12px; background: transparent !important; text-decoration: none; }
.original-banner img { display: block; width: 100%; height: auto; }
.original-banner:hover { background: transparent !important; opacity: .88; }
.mobile-wide-banner { display: none; }
.legacy-cert-button { display: inline-flex !important; min-height: 46px; margin: 12px 0 28px; padding: 0 22px; align-items: center; gap: 12px; color: #fff !important; background: var(--kaiser-green) !important; border-radius: 3px; font-size: 14px; font-weight: 700; text-decoration: none !important; }
.legacy-cert-button:hover { color: #fff !important; background: var(--kaiser-green-dark) !important; transform: translateY(-1px); }
.legacy-cert-label { cursor: default; }
@media (max-width: 820px) {
	.original-banner { display: none; }
	.mobile-wide-banner { display: flex; min-height: 150px; margin: 0 0 12px; padding: 24px; flex-direction: column; justify-content: flex-end; color: #fff; border-radius: 5px; text-decoration: none; }
	.mobile-wide-banner span { font-size: 21px; font-weight: 700; }
	.mobile-wide-banner small { color: rgba(255,255,255,.9); }
	.mobile-mother-banner { background: linear-gradient(90deg, rgba(30,104,101,.92), rgba(30,104,101,.15)), url(images/business-aquamation.webp) 70% center / cover; }
	.mobile-works-banner { background: linear-gradient(90deg, rgba(41,54,35,.94), rgba(41,54,35,.2)), url(images/business-food.webp) 68% center / cover; }
	.mobile-wide-banner:hover { color: #fff; filter: brightness(.94); }
}

@media (max-width: 980px) {
	#mainnav, #mainnav.nav { width: calc(100% - 32px) !important; }
	#mainnav > li > a { font-size: 12px !important; padding-inline: 5px !important; }
	#mainnav > li.mother-nav { flex: 1.35 1 0 !important; }
	#wrapper { grid-template-columns: minmax(0, 1fr) 200px; }
	#main { grid-column: 1; }
	#sidebarR { grid-column: 2; }
	#sidebarL { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.footer-meta { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: 12px 28px; }
}

@media (max-width: 820px) {
	.content-inner, .header-inner { width: min(100% - 32px, 680px); }
	.header-bar { display: none; }
	.header-main .header-inner { min-height: 72px; }
	.site-logo img { width: 168px; }
	.header-contact { display: none; }
	.menu-toggle { position: relative; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: transparent; border: 0; cursor: pointer; }
	.menu-toggle-lines, .menu-toggle-lines::before, .menu-toggle-lines::after { display: block; width: 24px; height: 2px; background: var(--kaiser-ink); transition: .2s; }
	.menu-toggle-lines::before, .menu-toggle-lines::after { content: ""; position: absolute; left: 10px; }
	.menu-toggle-lines::before { top: 13px; }
	.menu-toggle-lines::after { bottom: 13px; }
	.menu-toggle[aria-expanded="true"] .menu-toggle-lines { background: transparent; }
	.menu-toggle[aria-expanded="true"] .menu-toggle-lines::before { top: 21px; transform: rotate(45deg); }
	.menu-toggle[aria-expanded="true"] .menu-toggle-lines::after { bottom: 21px; transform: rotate(-45deg); }
	.site-navigation { position: absolute; top: 72px; right: 0; left: 0; display: none; max-height: calc(100vh - 72px); overflow-y: auto; background: #fff; border-top: 1px solid var(--kaiser-line); box-shadow: 0 15px 30px rgba(0,0,0,.12); }
	.site-navigation.is-open { display: block; }
	#mainnav, #mainnav.nav { display: block !important; width: 100% !important; }
	#mainnav > li > a { height: auto !important; min-height: 56px !important; justify-content: flex-start !important; padding: 13px 24px !important; border-bottom: 1px solid var(--kaiser-line); font-size: 14px !important; }
	#mainnav > li > a::after { display: none; }
	#mainnav > li.mother-nav > a { justify-content: flex-start !important; }
	.home-hero { min-height: 500px; background-position: 63% center; }
	.home-hero-inner { width: calc(100% - 40px); padding: 60px 0; }
	.home-hero h1 { font-size: clamp(34px, 9vw, 48px); }
	.business-grid, .about-grid, .news-layout { grid-template-columns: 1fr; }
	.business-card { min-height: auto; padding: 42px 32px; }
	.news-layout { gap: 28px; }
	#wrapper { width: min(100% - 32px, 680px); margin-top: 36px; grid-template-columns: 1fr; }
	#main, #sidebarL, #sidebarR { grid-column: 1; }
	#main { grid-row: 1; }
	#sidebarL { grid-row: 2; display: grid; grid-template-columns: 1fr; }
	#sidebarR { grid-row: 3; }
	.footer-grid { grid-template-columns: 1fr; gap: 35px; }
	.footer-meta { grid-column: auto; flex-direction: column; }
}

@media (max-width: 520px) {
	.home-hero { min-height: 520px; background-position: 68% center; }
	.hero-lead br { display: none; }
	.hero-actions { display: grid; }
	.button { width: 100%; }
	.home-section, .home-about, .home-news { padding-block: 70px; }
	.business-grid { padding-bottom: 70px; }
	.business-card { padding: 38px 24px; }
	.card-number { right: 20px; font-size: 62px; }
	.news-item { grid-template-columns: 1fr; gap: 3px; }
	.footer-nav { grid-template-columns: 1fr; }
}
/* 日本カイザー お問い合わせフォーム */
.kaiser-contact-form {
  width: 100%;
  max-width: 760px;
  margin: 30px auto;
  padding: 32px;
  box-sizing: border-box;
  background: #f8f8f8;
  border: 1px solid #ddd;
}

.kaiser-form-row {
  margin-bottom: 24px;
}

.kaiser-form-row label {
  display: block;
  margin-bottom: 8px;
  color: #333;
  font-size: 15px;
  font-weight: 600;
}

.kaiser-contact-form .required {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 7px;
  color: #fff;
  background: #b32d2e;
  border-radius: 2px;
  font-size: 11px;
  font-weight: normal;
  line-height: 1.4;
  vertical-align: 1px;
}

.kaiser-contact-form input[type="text"],
.kaiser-contact-form input[type="email"],
.kaiser-contact-form input[type="tel"],
.kaiser-contact-form textarea {
  width: 100%;
  max-width: none;
  padding: 12px 14px;
  box-sizing: border-box;
  color: #333;
  background: #fff;
  border: 1px solid #bbb;
  border-radius: 3px;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.6;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.kaiser-contact-form textarea {
  min-height: 190px;
  resize: vertical;
}

.kaiser-contact-form input:focus,
.kaiser-contact-form textarea:focus {
  outline: none;
  border-color: #8b1e1e;
  box-shadow: 0 0 0 3px rgba(139, 30, 30, 0.12);
}

.kaiser-contact-form ::placeholder {
  color: #999;
}

.kaiser-acceptance {
  margin: 4px 0 24px;
  font-size: 14px;
  line-height: 1.8;
}

.kaiser-acceptance input[type="checkbox"] {
  width: auto;
  margin-right: 6px;
}

.kaiser-acceptance a {
  color: #8b1e1e;
  text-decoration: underline;
}

.kaiser-submit {
  text-align: center;
}

.kaiser-contact-form input[type="submit"] {
  min-width: 260px;
  padding: 14px 30px;
  color: #fff;
  background: #8b1e1e;
  border: 0;
  border-radius: 3px;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color 0.2s, opacity 0.2s;
}

.kaiser-contact-form input[type="submit"]:hover {
  background: #651515;
}

.kaiser-contact-form input[type="submit"]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.kaiser-contact-form .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 13px;
}

.kaiser-contact-form .wpcf7-spinner {
  vertical-align: middle;
}

.wpcf7 form .wpcf7-response-output {
  margin: 20px 0 0;
  padding: 12px 15px;
  box-sizing: border-box;
}

@media screen and (max-width: 640px) {
  .kaiser-contact-form {
    margin: 20px auto;
    padding: 20px 15px;
  }

  .kaiser-contact-form input[type="submit"] {
    width: 100%;
    min-width: 0;
  }
}

/* CF7 final color alignment */
.kaiser-contact-form { max-width: none; border-color: var(--kaiser-line); background: var(--kaiser-paper); }
.kaiser-contact-form input:focus,
.kaiser-contact-form textarea:focus { border-color: var(--kaiser-green); box-shadow: 0 0 0 3px rgba(89,122,47,.14); }
.kaiser-acceptance a { color: var(--kaiser-green-dark); }
.kaiser-contact-form input[type="submit"] { background: var(--kaiser-green); }
.kaiser-contact-form input[type="submit"]:hover { background: var(--kaiser-green-dark); }

/* 2.4.2 must remain last */
.business-card { min-height: 460px; padding: 0; color: #fff; border: 0; background: #1d2821; }
.business-card::before { content: ""; position: absolute; inset: 0; z-index: -1; display: block; background: linear-gradient(180deg, rgba(12,19,14,.05) 15%, rgba(12,19,14,.68) 60%, rgba(12,19,14,.96)); }
.business-card-bg { position: absolute; inset: 0; z-index: -2; display: block !important; width: 100%; height: 100%; object-fit: cover; }
.business-card-body { min-height: 460px; padding: 46px 42px 40px; display: flex; flex-direction: column; justify-content: flex-end; }
.business-card .card-number { top: 24px; right: 28px; color: rgba(255,255,255,.44); }
.business-card .card-kicker, .mother-card .card-kicker { color: rgba(255,255,255,.78); }
.business-card h2 { color: #fff !important; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important; font-size: 29px; }
.business-card-body > p:not(.card-number):not(.card-kicker) { color: rgba(255,255,255,.86) !important; }
.business-card .text-link, .mother-card .text-link { color: #fff !important; border-bottom-color: rgba(255,255,255,.65); }
.home-about { padding: 110px 0; background: #eef1ed; }
.about-grid { grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; }
.about-visual { min-height: 390px; padding: 48px; border-radius: 7px 0 0 7px; background: linear-gradient(0deg, rgba(18,31,22,.84), rgba(18,31,22,.08)), url(images/business-partnership.webp) center / cover !important; box-shadow: 0 18px 45px rgba(24,40,29,.16); }
.about-visual .section-label, .about-visual h2 { color: #fff; }
.about-copy { min-height: 390px; padding: 52px; display: flex; flex-direction: column; justify-content: center; color: rgba(255,255,255,.78); background: #202d25; border-radius: 0 7px 7px 0; box-shadow: 0 18px 45px rgba(24,40,29,.16); }
.about-copy p { color: rgba(255,255,255,.78); }
.about-copy .text-link { align-self: flex-start; margin-top: 20px; padding: 12px 20px; color: #fff; border: 1px solid rgba(255,255,255,.45); border-radius: 3px; }
.about-copy .text-link:hover { color: #202d25; background: #fff; border-color: #fff; }
@media (max-width: 820px) { .business-card, .business-card-body { min-height: 410px; } .business-card-body { padding: 34px 25px 30px; } .about-grid { grid-template-columns: 1fr; } .about-visual { min-height: 310px; border-radius: 7px 7px 0 0; } .about-copy { min-height: 0; padding: 36px 28px; border-radius: 0 0 7px 7px; } }
