@charset "EUC-JP";
/*------------------------------
基本
--------------------------------*/
:root{ --dockH: 64px; }
.iphone :root{ --dockH: 62px; }
.page-eac{ --ctaH:56px; }
@media screen and (min-width:641px){
	.page-eac{ --ctaH:65px; }
}
*{ box-sizing: border-box; }
html{
	scroll-behavior: smooth;
	-webkit-text-size-adjust: none;
	-webkit-font-smoothing: aliased;
	font-size: 62.5%;
}
body{
	font-family:"Noto Sans JP", sans-serif;
	font-size:1.4rem;
	color:#000;
	margin:0px;
	padding:0px;
	height:100%;
}
img{
	border:none;
}
a{
	color:#1A72E8;
	text-decoration:none;
}
a:hover,.active{
	text-decoration: underline;
}
a:active,a:focus,input:active, input:focus{
	outline:0;
}
strong{
	font-weight:bold;
}
img{ max-width:100%; height:auto; }
ul{ list-style:none; margin:0; padding:0; }
.visually-hidden{
  position:absolute !important; width:1px; height:1px; margin:-1px; border:0; padding:0;
  white-space:nowrap; clip-path:inset(50%); clip:rect(0 0 0 0); overflow:hidden;
}
input.visually-hidden[type="radio"],
input.visually-hidden[type="checkbox"] {
  position: absolute !important;
  opacity: 0 !important;
  width: 0;
  height: 0;
  margin: 0;
  clip: auto;
  clip-path: none;
  overflow: hidden;
  pointer-events: none;
}
input.visually-hidden[type="radio"],
input.visually-hidden[type="checkbox"] { opacity: 0 !important; }
.dejima{
	font-family: dejima-mincho, sans-serif;
	font-style: normal;
	font-weight: 400;
	-webkit-text-stroke: 0.5px #333;
	text-stroke: 0.5px #333;
}
.tsunagi{
	font-family: TsunagiGothic, sans-serif;
	font-style: normal;
	font-weight: 400;
	-webkit-text-stroke: 0.5px #333;
	text-stroke: 0.5px #333;
}
.dejig{
	-webkit-text-stroke: 0.5px #333;
	text-stroke: 0.5px #333;
	color:#0b8c5d;
}
/*------------------------------
フォーマット
--------------------------------*/
#container {
	box-sizing:border-box;
	margin:0px auto 0px auto;
	padding:0px 0px 0px 0px;
	height:auto;
	overflow: hidden;
	position:relative;
}

/*------------------------------
メイン見出し
--------------------------------*/



/*------------------------------
ヘッダー
--------------------------------*/
#header{ text-align:center; }
#header h1{ 
	background-image:url('../images/bruno_logo.gif');
	background-repeat:no-repeat;
	background-position:center 0px;
	background-size: auto 70px;
	text-indent:100%;
	white-space:nowrap;
	overflow:hidden;
	height:80px;
	width:auto !important;
	margin: 25px 0px;
}
#header h1 a{ 
	display:block;
	height: 80vw;
}

#headerWrap{ position:relative; }
#mainnav a{ color:#000; }




/*------------------------------
フッター
--------------------------------*/
#footer{
	clear: both;
	padding:10px 10px 10px 0;
	text-align: center;
	font-size:1.2rem;
	background-color:#ddd;
}
#footer2{
	clear: both;
	padding: 50px 10px 50px 0;
	text-align: center;
	font-size:1.2rem;
	background-color:#eee;
	height:calc(var(--dockH) + env(safe-area-inset-bottom,50px));
}
#mobileDock,
#sheetOverlay,
.bottomSheet {
	display: none !important;
}
address{
	font-size:1.0rem;
	text-align:center;
	padding:10px;
	background-color:#00a99d;
	color:#fff;
	margin-bottom:63px;
}
address.sub,.page-eac address{
	margin-bottom:0px;
}
#footer_pc{
	display:none;
}
#footer_smp{
	display:block;
}
#footer p{
	font-size:1.4rem;
	line-height:140%;
	padding:15px;
}
#footer p.footPsmp{
	padding: 15px 70px 15px 15px;
    line-height: 180%;
}

/* ============================================================
   フッターサーチナビ
   ============================================================ */
.footerSearchNav {
	padding: 0px 16px 20px;
    color: #333;
    border-bottom: 1px dotted #666;
    margin-bottom: 40px;
}

.footerSearchNav__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 32px;
	max-width: 1100px;
	margin: 0 auto;
}

/* 各ブロック */
.footerSearchNav__block {
	display: flex;
	flex-direction: column;
}

/* 見出し */
.footerSearchNav__title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 12px;
  color: #111;
  border-left: 4px solid #ff6600;
  padding-left: 8px;
  text-align:left;
}

/* リンクリスト（横スクロール→折り返しに変更） */
.footerSearchNav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap; /* 折り返しOK */
  gap: 5px;
}

/* 各リンク（カード風ボタン） */
.footerSearchNav__list a {
  display: inline-block;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 8px 14px;
  color: #333;
  font-size: 14px;
  line-height: 1.4;
  text-decoration: none;
  transition: background 0.3s, color 0.3s, box-shadow 0.2s;
  font-weight:bold;
}

.footerSearchNav__list a:hover {
  background: #007acc;
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

/* --- スマホ調整 --- */
@media (max-width: 640px) {
  .footerSearchNav {
    padding: 10px 12px 20px;
	margin-bottom: 10px;
  }
  .footerSearchNav__inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .footerSearchNav__title {
    font-size: 15px;
    margin-bottom: 10px;
  }
  .footerSearchNav__list {
    gap: 5px;
    justify-content: flex-start;
  }
  .footerSearchNav__list a {
    font-size: 13px;
    padding: 8px 12px;
  }
}

@media screen and (min-width:641px){
	address,address.sub,.page-eac address{
		font-size:1.2rem;
		padding:20px;
		margin-bottom:0px;
	}
}
@media screen and (min-width:800px){
	#footer_pc{
		display:block;
	}
	#footer_smp{
		display:none;
	}
}
#foot_top{
	position: absolute;
    bottom: 110px;
    font-size: 4.6rem;
    right: 10px;
}
#foot_top a{
	color:#333;
}
#foot_top a:hover{
	color:#999;
}

/* モバイル：ドック + 固定ボタン + セーフエリア分 */
@media (max-width:799px){
  .page-eac{
    padding-bottom: calc(var(--dockH) + var(--ctaH) + env(safe-area-inset-bottom,0px));
  }
}

/* PC：固定ボタン分だけ（ドックは出ていない想定） */
@media (min-width:800px){
  .page-eac{
    padding-bottom: var(--ctaH);
  }
}
/*------------------------------
レスポンシブ設定
--------------------------------*/
/* ===== タブレット(>=641px) ===== */
@media (min-width:641px){
	#head_count{
		position: absolute;
		top: 450px;
		right: 70px;
		z-index: 2;
		font-size: 1.6rem;
		line-height:140%;
		background-color: #fff;
		padding: 10px;
		border-radius: 10px;
	}
	#head_count strong{
		color:#ff6600;
		font-size:2.4rem;
		font-weight:bold;
	}
	#head_Star{
		width:50px;
		height:50px;
		box-sizing:border-box;
		padding:3px;
		position:absolute;
		top: 65px;
        right: 20px;
		font-size:1.0rem;
		text-align:center;
		border:1px solid #ccc;
		border-radius:3px;
		background-color:#fff;
	}
	#head_Star i{
		display:block;
		font-size:2.4rem;
		color:#ead61b;
		margin:3px auto;
	}
	#head_Star a{
		color:#333;
	}
	#head_Star a:hover{
		text-decoration:none;
	}
	#head_Star a:hover i{
		color:#ccc;
	}
	#foot_top,.page-aec div#foot_top{
		bottom: 80px;
	}
	#footer{
		padding:20px 0px 20px 0;
	}
}
.subMenu li.menu_area{ display:none; }
@media (min-width:800px){
	body{ font-size:14px; }
	/* ハンバーガー非表示 */
	#menuWrap{ display:none; }
	#mainnav{ position:relative; }
	#mainnav > .panel{ display:block !important;background-color:#ddd; }
	#mainnav > .panel > ul{ white-space:unset; position:relative; width:100%; margin:0px auto; }
	#mainnav > .panel > ul > li{
		display:inline-block; vertical-align:top; padding:25px 25px;color:#333;height:70px;
	}
  /* PCのドロップダウン（hover） */
	#mainnav > .panel > ul > li.has-sub:hover{
		background-color:#14988d;
		color:#fff;
		font-weight:bold;
		cursor:pointer;
	}
	.subToggle{ display:none; } /* PCではボタン隠す */
	.subMenu{
		display:none;
		position:absolute;
		left:0px;
		top:70px;
		width:100%;
		background:#fff;
		border:1px solid #e5e5e5;
		box-shadow: 6px 6px 6px 0px rgba(0, 0, 0, 0.3);
		z-index:3;
		text-align:left;
		padding:20px;
		border-bottom-left-radius: 10px;
		-webkit-border-bottom-left-radius: 10px; 
		-moz-border-radius-bottomleft: 10px;
		border-bottom-right-radius: 10px;
		-webkit-border-bottom-right-radius: 10px; 
		-moz-border-radius-bottomright: 10px;
	}
	.subMenu li{ display:inline-block; width:32%;height:40px; }
	.subMenu li a{ display:block; padding:10px 14px; border-bottom:1px solid #f2f2f2; white-space:nowrap; }
	.subMenu li.licm01{ display:block; }
	.subMenu li.licm02{ width:48%; }
	.subMenu li.menu_area{ display:block; width:100%; height:auto; }
	.subMenu li.menu_area a{ display:inline-block;  width:32%; }
	.subMenu li.menu_area a:hover{ opacity:0.8; }
	.subMenu li.menu_area a img{ width:100%; }
	.subMenu li:last-child a{ border-bottom:0; }
	
	#mainnav li.side_sns,#mainnav li.side_area,
	#mainnav > .panel > ul > li.side_sns,
	#mainnav > .panel > ul > li.side_area
	{
		display:none;
	}
	
	/* hoverで開く */
	.has-sub:hover > .subMenu{ display:block; }
	#footer{ padding:30px 10px 0px 0px; }
	#mainnav > .panel > ul > li.pad_none{
		display:none;
	}
	#head_Star{
		top: 142px;
        right: 20px;
	}
	.subToggleCheck{ display: none !important; }
}

@media (min-width:1024px){
	.inner{ width:1024px; }
	#mainnav > .panel > ul{ width:1024px; }
	#mainnav > .panel > ul > li.pad_none{
		display:inline-block;
	}
	#mainnav > .panel > ul > li.pc_none{
		display:none;
	}
}


/* ===== モバイル(<=799px) ===== */
@media (max-width:640px){
	.innerS{ width:94%; padding-bottom:70px; }
}

@media (max-width:799px){

	/* 固定ヘッダー */
	#header{ position:fixed; width:100%; z-index:500; background:#fff; }
	#headerWrap{ position:relative; width:100%; height:62px; background:#fff; border-bottom:1px solid #ccc; }

	#header h1{ 
		background-image: url(../images/bruno_logo_smp.gif);
        background-repeat: no-repeat;
        background-position: left 5px;
        background-size: auto 50px;
        text-indent: 100%;
        white-space: nowrap;
        overflow: hidden;
        height: 60px;
        width: auto !important;
        margin: 0px 10px;
	}
	#header h1 a{ display:block; height:60px; z-index:1; }

	#head_count{
		position:absolute; top:15px; left:90px; z-index:2;
		font-size:1.2rem; line-height:130%;
	}
	#head_count strong{ color:#ff6600; font-size:1.6rem; font-weight:bold; }

	#head_Station,#head_Area,#head_Star{
		width:50px; height:50px; box-sizing:border-box;
		padding:3px; position:absolute; top:5px; right:50px;
		font-size:1.0rem; text-align:center;
		border:1px solid #ccc; border-radius:3px;
	}
	#head_Station{ right:unset; left:90px; background:#00a99d; }
	#head_Area{ right:unset; left:145px; background:#00a99d; }
	#head_Star a{ color:#333; }
	#head_Station a,#head_Area a{ color:#fff; }
	#head_Station i,#head_Area i,#head_Star i{
		display:block; font-size:2.4rem; margin:3px auto;
	}
	#head_Star i{color:#ead61b;}
	#head_Star i:hover{text-decoration:none;}
	#head_Station i,#head_Area i{ color:#fff; }

	/* ハンバーガー */
	#menuWrap{ display:inline-block; position:absolute; right:6px; top:6px;
		width:40px; height:40px; cursor:pointer; }
	#menuBtn{
		position:absolute; top:60%; left:50%; width:18px; height:2px; margin:-1px 0 0 -7px;
		background:#000; transition:.2s;
	}
	#menuBtn:before,#menuBtn:after{
		content:""; position:absolute; top:50%; left:0;
		width:18px; height:2px; background:#000; transition:.3s;
	}
	#menuBtn:before{ margin-top:-7px; }
	#menuBtn:after{ margin-top:5px; }
	#navToggle:checked + #menuWrap #menuBtn{ background:transparent; }
	#navToggle:checked + #menuWrap #menuBtn:before{ margin-top:0; transform:rotate(-45deg); }
	#navToggle:checked + #menuWrap #menuBtn:after{ margin-top:0; transform:rotate(-135deg); }

	/* ナビゲーションパネル */
	#mainnav{ position:absolute; top:0; width:100%; text-align:right; z-index:3; }
	.panel{
		position:fixed; top:62px; right:0; width:80vw; max-width:340px;
		height:calc(100vh - 60px - var(--dockH) - env(safe-area-inset-bottom,0px));
		background:#fff; border-left:1px solid #ccc;
		overflow-y:auto; -webkit-overflow-scrolling:touch;
		transform:translateX(100%); transition:transform .35s ease; z-index:3;
	}
	#navToggle:checked ~ #mainnav .panel{ transform:translateX(0); }

	#navOverlay{
		position:fixed; inset:70px 0 calc(var(--dockH) + env(safe-area-inset-bottom,0px)) 0;
		background:rgba(0,0,0,.25); opacity:0; pointer-events:none;
		transition:opacity .35s ease; z-index:550;
	}
	#navToggle:checked ~ #navOverlay{ opacity:1; pointer-events:auto; }

	#mainnav > .panel > ul > li{ position:relative; }
	#mainnav li a{
		position:relative; display:block; padding:15px 7px;
		border-bottom:1px solid #eee; color:#000;
		font-weight:400; font-size:1.6rem; text-align:right;
	}
	#mainnav li a.ssns{ display:inline-block; font-size:2.4rem; }
	#mainnav li a.sarea{ display:block; margin:7px 10px; padding:0; }

	/* ============================================
	   サブメニュー：CSSアコーディオン（＋／−＋文字全体クリック対応）
	   ============================================ */
	:root{
		--navRowH:48px;
		--iconW:14px;
		--iconT:2px;
	}

	.has-sub{ position:relative; text-align:left; }
	.subToggleCheck{ display:none; }

	/* ラベル全体クリック化 */
	.parentToggle{
		display:flex; align-items:center; justify-content:space-between;
		min-height:var(--navRowH);
		padding:0 25px;
		border-bottom:1px solid #eee;
		font-size:1.6rem; cursor:pointer;
		background:#fff; position:relative;
	}
	.parentToggle .parentLink{
		display:flex; align-items:center; gap:8px;
	}
	.parentToggle .subToggle{
		position:relative; width:36px; height:var(--navRowH);
	}

	/* ＋／−アイコン */
	.parentToggle .subToggle::before,
	.parentToggle .subToggle::after{
		content:""; position:absolute; left:50%; top:50%;
		width:var(--iconW); height:var(--iconT);
		background:#333; border-radius:1px;
		transform:translate(-50%,-50%); transition:opacity .2s ease;
	}
	.parentToggle .subToggle::after{
		transform:translate(-50%,-50%) rotate(90deg);
	}
	.subToggleCheck:checked + .parentToggle .subToggle::after{ opacity:0; }

	/* サブメニュー */
	.subMenu{ display:none; background:#fafafa; }
	.subToggleCheck:checked ~ .subMenu{ display:block; }
	.subMenu li{ background:#eee; border-bottom:0.5px dotted #666; }
	.subMenu li a{
		padding:12px 25px 12px 40px;
		border-bottom:1px solid #eee;
		display:block;
	}

	#mainnav li.side_sns,#mainnav li.side_area{ display:block; }

	/* ===== モバイルボトムドックなどは省略（既存のまま残してOK） ===== */

	.smp_non{ display:none; }
}

@media screen and (min-width:641px){
	#head_Station,#head_Area{
		display:none;
	}
}
/* PCではモバイル専用UIは隠す（強制） */
@media (min-width:800px){
	#mobileDock, #sheetOverlay, .bottomSheet{ display:none !important; }
}


/* ===========================
横スクロール用矢印ボタン
=========================== */
.hs-arrow {
  position: absolute;
  top: 50%;
  width: 35px;
  height: 35px;
  margin-top: -20px;
  background:#333;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  font-size:1.2rem;
  color: #fff;
  z-index: 5;
  display: none; /* デフォルト非表示 */
}

.hs-arrow:hover {
  background: #999;
}

.hs-left { left: 5px; }
.hs-right { right: 5px; }

article.prop .hs-arrow {
  top: auto;            /* 上位置の指定を無効に */
  transform: none;      /* 中央寄せのtransformをリセット */
  bottom:80px;         /* 下から50pxの位置に固定 */
}





/* ▼▼▼ bottomDock2：スマホ専用ドック ▼▼▼ */
.dock2-hidden {
  display: none;
}

.dock2-bar {
  display: none;
}

@media (max-width: 768px) {
  .dock2-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #fff;
    border-top: 1px solid #ccc;
    display: flex;
    justify-content: space-around;
    z-index: 1000;
	height: 65px;
  }
  .dock2-btn {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    font-size: 13px;
    color: #fff;
  }
  .Dphone {
	background-color:#008080;
  }
  .Dline {
	background-color:#0BB43B;
  }
  .Dreq {
	background-color:#333c5e;
  }
  .Dres {
	background-color:#cd5c5c;
  }
  .dock2-btn i {
    display: block;
    font-size: 18px;
	margin:6px auto;
    text-shadow: 1px 1px #666;
  }
  .dock2-btn span{
	font-size:1.0rem;
	font-weight:bold;
  }
}

/* ▼ オーバーレイ（背景） ▼ */
.dock2-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  opacity: 0;
  visibility: hidden;
  transition: .3s;
  z-index: 999;
}

/* ▼ ボトムシート本体 ▼ */
.dock2-sheet {
  position: fixed;
  bottom: -100%;
  left: 0;
  width: 100%;
  background: #fff;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.2);
  transition: bottom .4s ease;
  z-index: 999;
  max-height: 80%;
  overflow-y: auto;
	padding-top: 20px;
    padding-bottom: 60px;
}
.dock2-header {
	display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 10px 0px;
}
.dock2-header h3 {
  font-size: 1.8rem;
    margin: 0;
    font-weight: bold;
    border-bottom: 1px solid #333;
    padding-bottom: 7px;
    width: 80%;
    padding-left: 5px;
}
.dock2-close {
  font-size: 1.6rem;
  cursor: pointer;
}
.dock2-body {
  padding: 1.2rem;
}
.dock2-body ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.dock2-body li {
  margin: 8px 0;
  color:#fff;
}
.dock2-body li a{
  display:block;
  color:#fff;
  padding:10px;
  border-radius: 4px;
}
.dock2-body ul.DtelBox li a{
	background-color: #008080;
    font-size: 1.2rem;
}
.dock2-body ul.DlineBox li a{
	background-color:#0BB43B;
}
.dock2-body ul.DreqBox li a{
	background-color:#333c5e;
}
.dock2-body ul.DresBox li a{
	background-color:#cd5c5c;
}
.dock2-body a {
	color: #fff;
	text-decoration: none;
	font-size:1.8rem;
}
.dock2-body a.Dtel {
	float: right;
    vertical-align: top;
    font-size: 1.8rem;
    margin-top: -5px;
}
.DtelBox a span.Ttex {
	font-size:2.2rem;
	float: right;
    margin-top: -5px;
}
.DtelBox a i{
	font-size:1.4rem;
}
/* ▼ 開閉制御（CSSラジオトリック） ▼ */
#dock2Phone:checked ~ #dock2SheetPhone,
#dock2Line:checked ~ #dock2SheetLine,
#dock2Request:checked ~ #dock2SheetRequest,
#dock2Visit:checked ~ #dock2SheetVisit {
  bottom: 0;
}

#dock2Phone:checked ~ .dock2-overlay,
#dock2Line:checked ~ .dock2-overlay,
#dock2Request:checked ~ .dock2-overlay,
#dock2Visit:checked ~ .dock2-overlay {
  opacity: 1;
  visibility: visible;
}

/* ▼ PCでは非表示 ▼ */
@media (min-width: 769px) {
  .dock2-bar,
  .dock2-sheet,
  .dock2-overlay {
    display: none !important;
  }
}

body.page-eac #foot_top{
	bottom: 50px;
}