@charset "UTF-8";
/* CSS Document  ------------------
 * 170528
 * /brand/coopmirai_festa/tokyo/css/style.css
 * -------------------------------- */
/* 基本 */
body{
	font-family:'Meiryo','メイリオ','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','MS PGothic',sans-serif;
}

/* 調整用 */
.mb00 {	margin-bottom: 0 !important;}
.mb10 {	margin-bottom: 10px !important;}
.mb20 {	margin-bottom: 20px !important;}
.mb30 {	margin-bottom: 30px !important;}
.mb40 {	margin-bottom: 40px !important;}
.mb50 {	margin-bottom: 50px !important;}
.mt00 {	margin-top: 0 !important;}
.mt05 {	margin-top: 5px !important;}
.mt3 {	margin-top: 3em !important;}

.mr22 {	margin-right: 2.2em !important;}
.ml22 {	margin-left: 2.2em !important;}
.mr00 {margin-right: 0 !important;}

.line { margin-left:8px !important;}

.flL { float: left !important;}
.flR { float: right !important;}
.flR { margin: 0 0 1em 1.5em; }

.fs12em { font-size: 1.2em !important;}
img.w80{
	width: 80%;
}
.mod__textMiddle{
	font-size: 1.2em;
	margin: 0 2px;
}
.taC{
	text-align: center;
}
.vaT { vertical-align: top !important;}

.theme {
	width: 85%;
    margin: 0 auto;
	position: relative;
}
p.mod__brandBlockText.idt{
	text-indent: -1em;
	margin-left: 1em;
}
.mod__imgblockLeft.mod__imgblockLeft--50{
	width: 49%;
}
@media screen and (max-width: 640px) {
	.mod__imgblockLeft.mod__imgblockLeft--50{
		width: 100%;
	}
	img.w80{
		width: 100%;
	}
}
/* スマホで改行しない */
@media screen and (max-width: 640px) {
	br.pc{
		display: none;
	}
}
/*見出し*/
h1{
	line-height: 0;
	margin-top: 0;
}
h2{
	width: auto;
	margin: 0 0 10px;
}
h2.h2_ttl {
	padding: 0.25em 0.5em;/*上下 左右の余白*/
	color: #333;/*文字色*/
	background: transparent;/*背景透明に*/
	border-left: solid 5px #72a529;/*左線*/
	font-size: 1.2em;
}
@media screen and (max-width: 640px) {
	h2{
		width: 93.5%;
		padding: 0 !important;
		margin: 0 3.125% 10px;
		
	}
	h2.h2_ttl {
		padding-left: 0.5em !important;
	}
	h2 img{
		max-width: 100%;
		width: auto;
	}
}
/* リード文 */
.Event_dtl {
	clear: both;
	margin: 0;
	overflow: hidden;
}
.Event_dtl p.lead {
	text-align: center;
	font-weight: bold;
	font-size:1.4em;
	margin: 0px 0 20px;
	color: #333;
	line-height: 1.8em;
}
.mod__list > li {
    text-align: center;
    font-size: 1.1em;
}
.warm-event-detail a.singleLink_n {
    background: url(/common2016/img/main/commonLinkIcon.png) no-repeat !important;
    background-size: 19px 19px !important;
    background-position: 0% .5em !important;
    padding: 0px 0 5px 25px !important;
}
.commonPage__h2 {
    border-bottom: 2px solid #72a529;
	font-weight:bold;
    clear: both;
    font-weight: normal;
    margin: 35px 0 20px;
    padding-bottom: 7px;
}
@media screen and (max-width: 640px) {
	/*.Event_dtl p.lead {
		text-align: left;
	}*/
}

/* ボタンエリア */
.mod__imgblockInner.btn_area{
	/* 公開前・公開終了後　width: 862px;・会場なし　width: 778px; */
	width: 766px; /*開催会場なし*/
	margin: auto;
}
.mod__imgblockInner .colMain,
.mod__imgblockInner .colSub{
	float: left;
}
.mod__imgblockInner .colMain.mr14,
.mod__imgblockInner .colSub.mr14{
	margin-right: 14px;
}
/* .mod__imgblockInner .colMain{
	width: 400px;
}*/
/* 開催2会場用 */
.mod__imgblockInner .colMain{
	width: 342px;
}
.mod__imgblockInner .colSub{
	width: 246px;
	/* margin-top: 49px;  メインボタンとサイズ揃え用 */
	margin-top: 27px; /* メインボタンとサイズ揃え用（2開催用） */
}
/* ボタンをマウスオーバーで半透明 */
.btnover {
    -webkit-transition: opacity 1s;
    transition: opacity 0.5s ease-out 0.2s;
}
.btnover:hover {
    filter:Alpha(opacity=50); /* 旧IE */
    opacity: 0.5;
}
@media screen and (max-width: 640px) {
	/* ボタンエリア */
	.mod__imgblockInner.btn_area{
		width: 100%;
	}
	.mod__imgblockInner{
		margin-left: 0;
		max-width: 100%;
	}
	.mod__imgblockInner img{
		max-width: auto;
	}
	.mod__imgblockInner .colMain,
	.mod__imgblockInner .colSub{
		float: none;
		width: 100%;
		margin: 0 0 15px 0;
	}
}

/* 開催中のフェスタが無い場合のボタン */
	/* .mod__imgblockInner{
		margin-left: 65px !important;
	}
	@media screen and (max-width: 640px){
		/* width: 100%; */
		/* .mod__imgblockInner{
			margin-left: 0 !important;
		}
	}/* 

/* お知らせ欄 */
.top__middle__info__lists__minor > dl > dd .new{
	padding-left: 0.7em;
	color: #FF8800;
}
.top__middle__important a{
	display: inline-block;
}

@media screen and (max-width: 640px) {
	.top__middle__info__lists__minor{
		padding: 15px 10px 5px;
	}
	.top__middle__info__lists__minor > dl > dt,
	.top__middle__info__lists__minor > dl > dd {
		display: block;
	}
	.top__middle__info__lists__minor > dl > dt {
	    position: relative;
	    margin: 0;
	    padding: 0;
	    font-weight: bold;
	}
	.top__middle__info__lists__minor > dl > dd {
	    position: relative;
	    margin: 0 0 10px;
	    padding: 0;
	    overflow: hidden;
	}
		.top__middle__info__lists__minor > dl > dd:last-child {
			    margin-bottom: 0 !important;
			}
		.top__middle__info__lists__minor > dl > dd > span:first-child{
			width: 100%;
		}
}

/*nagano kumagai add 250825*/

.mod__listwrap.mod__listwrap--bdn.dtlbox_wabi {
 border: 1px solid #a5a5a5; 
padding: 0 14px; 
max-width: 80%;
}

/*ボランティアボタン表示対応*/
.top__middle__important a {
    display: inline-block;
color: deepskyblue;
	background: none;
    padding: 0 0.25em;
}
.top__middle__important a:hover {
color: deepskyblue;
transition : 1s;
opacity: 0.7;
}

.mod__btn__notes {
	position: relative;
}
.mod__brandBlockCenter > .mod__btn__notes > a {
    background-color: #72a529;
    background-image: url(/common2016/img/main/event_arrow.png);
    background-position: 93% 50%;
    background-repeat: no-repeat;
    background-size: 17px 14px;
    border-radius: 5px;
    color: #fff;
    display: inline-block;
    padding: 20px 60px 20px 20px;
    text-align: center;
    text-decoration: none;
    min-width: 290px;
    position: absolute;
	top: -5em;
    right: 1em;
    font-size: 1.6em;
    line-height: 1.3;
}
.mod__brandBlockCenter > .mod__btn__notes > a:hover {
    text-decoration: underline;
}
.top__middle__important .mod__btn__notes > a{
	background-color: #FFF;
	background-image: url(/brand/festa/img/event_arrow.png);
	background-position: 95% 50%;
	background-repeat: no-repeat;
	background-size: 17px 14px;
	border-radius: 5px;
	color: #fff;
	padding: 20px 40px 20px 30px !important;
	text-decoration: none;
	font-weight: bold;
	letter-spacing: 0.05em;
	width: 80%;
	border: 3px solid #ff6666;
	color: #ff6666;
}
.btn_fest {
    display: block;
}
a .btn_festa:hover {
transition : 1s;
opacity: 0.7;
}
.wrap-festa{
display: flex; 
flex-wrap: wrap;
/*border: 3px solid #ff6600;*/
/*border-radius: 8px;*/
margin-bottom: 3em;
}
.wrap-festa.green{
/*border: 3px solid #07913A;*/
}

.wrap-festa.bdno {
border: none;
margin-bottom: 0;
}
.dtl-box{
padding: 1em; 
flex: 1 0 200px; 
margin: 0.5em 1em;
}
.wrap-festa .dtl-box h2 {
margin-top: 0; 
margin: 0 0 10px; 
padding: 0; 
font-family: sans-serif; 
line-height: 1.3; 
color: #333; 
background: linear-gradient(transparent 50%, #C0DB8E 50%); 
font-size: 2em;
    width: auto;
}
.wrap-festa.bdno .dtl-box {
padding: 1em; 
flex: 1 0 200px; 
margin: 0em 1em 1em 0;
border: 5px solid #07913a; 
border-radius: 8px;
}
.wrap-festa.bdno .dtl-box:nth-of-type(2) {
margin-right:0;
}
.wrap-festa.bdno .dtl-box h3 {
text-align:center;
margin-top: 0; 
margin: 0 0 10px; 
padding: 0; 
font-family: sans-serif; 
line-height: 1.3; 
color: #333; 
background: linear-gradient(transparent 70%, #C0DB8E 70%);
}
.mod__listwrap--bdn {
    margin: 0 auto;
    border: none;
}
.wrap-festa .dtl-box p {
margin-bottom: 5px; 
font-size: 1.2em; 
font-family: sans-serif; 
line-height: 1.5em;
}
.wrap-festa.bdno .dtl-box.pnk {
border: 3px solid #ff6666;
}
.wrap-festa.bdno .dtl-box.pnk h3 {
    background: linear-gradient(transparent 70%, #ff99997a 70%);
}
.dtl_ft{
    background: #faf6f0;
border-radius: 1.5em;
    padding: 4em;
}
.dtl_ft_inner{
    background: #fff;
    padding: 3em;
border-radius: 1.5em;
}
.dtl_ft h2 {
    font-weight: 700;
    font-size: 1.8em;
    /* margin-top: 90px; */
    text-align: center;
    line-height: 1.5;
    width: auto;
}
.dtl_ft h2::after {
    content: "";
    display: block;
    width: 40px;
    height: 5px;
    background: #fcc800;
    margin: 20px auto;
}
.dtl_ft p.brandTxt {
    text-align: center;
font-size: 1.4rem;
    line-height: 1.5;
margin-bottom: 3em;
}
@media screen and (max-width: 640px) {
.mod__listwrap.mod__listwrap--bdn.dtlbox_wabi {
max-width: 100%;
}

.wrap-festa .dtl-box .flR{
    float: none  !important;
    text-align: center;
    margin: 0;
}
.wrap-festa .dtl-box p {
    display: inline-block;
}
h2{
	width: 100%;
        padding: 0 !important;
        margin: 0 0 0.25em;
}
.wrap-festa.bdno .dtl-box {
margin: 0em 0 1em 0;
}
.dtl_ft {
    padding: 2em;
}
.dtl_ft_inner {
    padding: 1.5em;
}
.dtl_ft p.brandTxt {
    font-size: 1.2rem;
}
}

/* 印刷用CSS */
@media print{
	.spOnly{
		display: none;
	}
}

  /* イベントエリア全体のカード */
  .warm-event-card {
/*    max-width: 600px;*/
    margin: 0px auto;
    background-color: #ffffff;
    padding: 40px;
    border-radius: 24px; /* 大きめの角丸 */
/*     box-shadow: 0 10px 30px rgba(138, 122, 106, 0.06); 柔らかい影 */
/*     border: 1px solid #f0e6dc; 細いベージュの線 */
    box-sizing: border-box;
    font-family: 'Noto Sans JP', sans-serif;
  }

  .warm-event-card * {
    box-sizing: border-box; /* レイアウト崩れ防止 */
  }

  /* タイトル */
  .warm-event-title {
    font-family: 'Quicksand', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #c08261; /* テラコッタカラー */
    margin-top: 0;
    margin-bottom: 35px;
    text-align: center;
  }

  /* リスト構造 */
  .warm-event-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  /* 各項目のボックス */
  .warm-event-row {
    display: flex;
    align-items: center;
    background-color: #faf6f0; /* 内側の薄いベージュ */
    padding: 25px;
    border-radius: 16px; /* 中くらいの角丸 */
border: 1px solid #f0e6dc;
  }

  /* ラベル */
  .warm-event-label {
    width: 120px;
    font-size: 20px;
    font-weight: 700;
    color: #8a7a6a; /* 上品なブラウンベージュ */
    flex-shrink: 0;
  }

  /* 詳細内容 */
  .warm-event-detail {
    font-size: 22px;
    line-height: 1.6;
    color: #3e3a36; /* ダークブラウンの文字色 */
  }

  /* 日時の数字強調 */
  .warm-time-highlight {
    font-family: 'Quicksand', sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #3e3a36;
/*    display: block;*/
    margin-bottom: 4px;
  }
.week {font-size: 20px; font-weight:500; color: #8a7a6a;}

  .warm-address-text {
    font-style: normal;
    /*display: block;*/
  }

  /* レスポンシブ対応（スマホ表示） */
  @media (max-width: 600px) {
    .warm-event-card {
      padding: 25px 20px;
    }
    .warm-event-row {
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
      padding: 20px;
    }
    .warm-event-label {
      width: 100%;
      border-bottom: 2px solid #eaddd0;
      padding-bottom: 6px;
	font-size: 18px;
    }
    .warm-time-highlight,.week {
      font-size: 18px;
    }

  }

/* タイトルタグ */

.splitContent__second >  h2 {
    border-bottom: none;
  padding: 1rem 2rem;
  color: #fff;
  border-radius: 10px;
  background-image: linear-gradient(to right, #f83600 0%, #f9d423 100%);
}
.splitContent__second > h2.ttlgrn {
background-image: linear-gradient(to right, #07913A 0%, #6EB92C 100%);
}
.splitContent__second > h2.ttlpnk {
background-image: linear-gradient(90deg, rgba(246, 90, 90, 1), rgba(253, 194, 194, 1) 98%);
}
.flR img {
    max-width: 380px;
}
h3.ttl_prst {
  display: flex;
  padding-left: 1.2em;/*アイコン分のスペース*/
  line-height: 1.4;/*行高*/
  color: #7b6459;/*文字色*/
font-size: 1.6em;
align-items: center !important;       /* アイコンとテキストの縦幅を中央で揃える */
  justify-content: center !important;   /* 全体を左右中央（センタリング）に配置する */
  width: 100% !important;
  text-align: center !important;
}

h3.ttl_prst:before {
  content: "";
  display: block; /* inline-blockからblockに変更 */
  width: 24px;
  height: 28px;
  background-image: url('/brand/festa/img/icn_present.png');
  background-size: cover;
  margin-right: 8px;
  margin-top: 0 !important;    /* 余計な上の余白を消す */
  margin-bottom: 0 !important; /* 余計な下の余白を消す */
}

/* ===== アクセス ===== */
.access{
  --access-brown:#8a7a6a;
  --access-text:#3e3a36;
  --access-bg:#faf6f0;
  --access-line:#f0e6dc;
  --access-accent:#fcc800;
}

/* 既存 .dtl_ft p.brandTxt の中央寄せ継承を断ち切る */
.access p{ text-align:left; margin:0; }

.access__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); /* ← 幅が足りなければ自動で1列 */
  gap:24px;
  margin:0 0 32px;
  text-align:left;
}

.access__card{
  background:var(--access-bg);
  border:1px solid var(--access-line);
  border-radius:16px;
  padding:clamp(20px, 3vw, 28px);
  box-sizing:border-box;
}

.access__card__head{
  display:flex;
  align-items:center;
  gap:10px;
  padding-bottom:12px;
  margin-bottom:16px;
  border-bottom:2px dotted #e0d3c4;
}
.access__icon{ font-size:1.6rem; line-height:1; }
.access__card__ttl{
  margin:0;
  font-size:clamp(1.15rem, 2.2vw, 1.35rem);
  font-weight:700;
  color:var(--access-brown);
  background:none;   /* 既存 h3 の下線グラデを無効化 */
  text-align:left;
}

/* 出発地 → 所要時間 の行 */
.access__route{ list-style:none; margin:0 0 14px; padding:0; }
.access__route li{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid #ece2d6;
}
.access__route li:last-child{ border-bottom:none; }

.access__from{
  position:relative;
  padding-left:1.1em;
  font-size:1.05rem;
  color:var(--access-text);
  font-weight:600;
}
.access__from::before{
  content:"";
  position:absolute; left:0; top:.45em;
  width:8px; height:8px; border-radius:50%;
  background:var(--access-accent);
}
.access__time{
  flex-shrink:0;
  font-size:clamp(1.35rem, 3vw, 1.6rem);
  font-weight:700;
  color:#c08261;
  white-space:nowrap;
}
.access__time .u{ font-size:.7em; margin-left:2px; }

.access__desc{ font-size:1rem; line-height:1.7; color:var(--access-text); margin-bottom:10px !important; }

/* バッジ */
.access__badge{
  display:inline-block;
  margin:4px 6px 0 0;
  padding:5px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid #e3b7a0;
  color:#c08261;
  font-size:.9rem;
  font-weight:700;
}

/* 停留所 */
.access__stops{ display:flex; flex-wrap:wrap; gap:8px; }
.access__stop{
  flex:1 1 auto;
  padding:8px 12px;
  background:#fff;
  border:1px solid var(--access-line);
  border-radius:8px;
  font-size:.95rem;
  line-height:1.5;
  counter-increment:stop;
}
.access__stops{ counter-reset:stop; }
.access__stop::before{
  content:counter(stop);
  display:inline-grid; place-items:center;
  width:1.5em; height:1.5em; margin-right:6px;
  border-radius:50%;
  background:var(--access-brown); color:#fff;
  font-size:.8rem;
}

/* 地図ボタン */
.access__actions{ text-align:center !important; }
.access__map{
  display:inline-flex;
  align-items:center; justify-content:center;
  gap:8px;
  min-height:56px;                 /* タップ領域確保 */
  padding:14px 32px;
  border-radius:999px;
  background:#07913a;
  color:#fff !important;
  font-size:1.1rem;
  font-weight:700;
  text-decoration:none;
  transition:opacity .3s;
}
.access__map:hover{ opacity:.75; text-decoration:none; }
.access__blank{ font-size:.8em; font-weight:400; }

/* スマホ（既存サイトの 640px ブレイクポイントに合わせる） */
@media screen and (max-width:640px){
  .access__grid{ grid-template-columns:1fr; gap:16px; }
  .access__route li{
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
  }
  .access__time{ font-size:1.5rem; }
  .access__stop{ flex:1 1 100%; }
  .access__map{ width:100%; box-sizing:border-box; padding:14px 16px; }
}

/* 印刷時はカード枠だけ残す */
@media print{
  .access__card{ background:#fff; }
  .access__map{ display:none; }
}

.access__icon{
  font-size:1.6rem;
  line-height:1;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
}

/* ===== フェスタ用ボタン ===== */

/* 親の幅制限（style_top.css の width:85% !important）を解除 */
.top__middle__important .mod__btn__notes{
  width:100% !important;
  margin:0 auto 80px !important;
}

/* --- 共通ベース --- */
.top__middle__important .mod__btn__notes > .btn-festa{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;

  width:auto;
  max-width:660px;          /* ← 見出し帯より明確に狭く */
  min-height:76px;
  margin:0 auto;
  padding:20px 68px 20px 36px !important;
  box-sizing:border-box;

  border:none;
  border-radius:999px;      /* ← ピル形。見出しの角丸10pxと差をつける */
  background-image:none;

  font-size:1.3rem;
  font-weight:700;
  line-height:1.45;
  letter-spacing:.03em;
  text-align:center;
  text-decoration:none;

  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.btn-festa__eyebrow{
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.12em;
  opacity:.85;
}
.btn-festa__sub{
  font-size:.8rem;
  font-weight:400;
  opacity:.9;
}

/* 矢印（円の中に配置して「進む」感を出す） */
.btn-festa__arrow{
  position:absolute;
  top:50%;
  right:20px;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:50%;
  background:rgba(255,255,255,.28);
  font-size:1.15rem;
  line-height:1;
  transition:transform .18s ease, background-color .18s ease;
}
.btn-festa:hover .btn-festa__arrow{
  transform:translateY(-50%) translateX(5px);
  background:rgba(255,255,255,.45);
}

/* --- ① 主役ボタン：ソリッドグリーン＋厚み --- */
.top__middle__important .mod__btn__notes > a.btn-festa--primary{
  background-color:#07913a !important;
  color:#fff !important;
  box-shadow:0 6px 0 #056129, 0 12px 20px rgba(7,145,58,.26);
}
.top__middle__important .mod__btn__notes > a.btn-festa--primary:hover{
  background-color:#0aa746 !important;
  transform:translateY(3px);                             /* 押し込まれる */
  box-shadow:0 3px 0 #056129, 0 6px 12px rgba(7,145,58,.22);
  text-decoration:none;
}
.top__middle__important .mod__btn__notes > a.btn-festa--primary:active{
  transform:translateY(6px);
  box-shadow:0 0 0 #056129, 0 2px 5px rgba(7,145,58,.2);
}

/* --- ② 過去ページ誘導：白地＋テラコッタ。主役より一段軽く --- */
.top__middle__important .mod__btn__notes > a.btn-festa--past{
  background-color:#fff !important;
  color:#b4644a !important;
  max-width:720px;
  min-height:88px;
  font-size:1.1rem;
  box-shadow:0 5px 0 #e8d3c8, 0 10px 18px rgba(138,122,106,.14),
             inset 0 0 0 2px #e3b7a0;
}
.top__middle__important .mod__btn__notes > a.btn-festa--past .btn-festa__arrow{
  background:#c08261;
  color:#fff;
}
.top__middle__important .mod__btn__notes > a.btn-festa--past:hover{
  background-color:#fffaf6 !important;
  transform:translateY(3px);
  box-shadow:0 2px 0 #e8d3c8, 0 5px 10px rgba(138,122,106,.12),
             inset 0 0 0 2px #e5701c;
  text-decoration:none;
}
.top__middle__important .mod__btn__notes > a.btn-festa--past:hover .btn-festa__arrow{
  background:#e5701c;
}

/* --- ①(準備中)：押せないことが分かる見た目。影も動きも無し --- */
.top__middle__important .mod__btn__notes > .btn-festa--soon{
  background-color:#f4f1ec !important;
  color:#9a9088 !important;
  box-shadow:inset 0 0 0 2px #e4ddd2;
  padding:20px 36px !important;
  font-size:1.15rem;
  cursor:default;
}
.btn-festa--soon .btn-festa__badge{
  display:inline-block;
  margin-top:4px;
  padding:4px 16px;
  border-radius:999px;
  background:#8a7a6a;
  color:#fff;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.1em;
}

/* --- キーボード操作時のフォーカス表示 --- */
.top__middle__important .mod__btn__notes > a.btn-festa:focus-visible{
  outline:3px solid #fcc800;
  outline-offset:4px;
}

/* --- スマホ --- */
@media screen and (max-width:640px){
  .top__middle__important .mod__btn__notes > .btn-festa{
    width:100%;
    max-width:100%;
    min-height:66px;
    padding:16px 56px 16px 18px !important;
    font-size:1.02rem;
    border-radius:14px;      /* 2行折り返し時にピルは間延びするので角丸へ */
  }
  .top__middle__important .mod__btn__notes > a.btn-festa--past{
    max-width:100%;
    min-height:78px;
    font-size:.95rem;
  }
  .top__middle__important .mod__btn__notes > .btn-festa--soon{
    padding:16px 18px !important;
  }
  .btn-festa__arrow{ width:30px; height:30px; right:12px; font-size:1rem; }
}

/* --- アニメーション抑制設定の端末に配慮 --- */
@media (prefers-reduced-motion: reduce){
  .btn-festa, .btn-festa__arrow{ transition:none; }
  .btn-festa:hover{ transform:none; }
}

/* --- 印刷 --- */
@media print{
  .btn-festa{ box-shadow:none !important; border:1px solid #999 !important; }
  .btn-festa__arrow{ display:none; }
}


/* ============================================================
   フェスタ2026 カラー統一 & レスポンシブ調整   2026-08-21
   ※必ず style.css の最後に追記（後勝ちで既存を上書き）
   ============================================================ */
:root{
  --f-green:#07913A;  --f-green-d:#056129;
  --f-orange:#f77111; --f-yellow:#FCC800;
  --f-cream:#FDF8F0;  --f-line:#EADFD2;
  --f-brown:#8A7A6A;  --f-text:#3E3A36;
}

/* --- ① セクション見出し：グラデ3種 → フラット2色 --- */
.splitContent__second > h2,
.splitContent__second > h2.ttlgrn,
.splitContent__second > h2.ttlpnk{
  background-image:none !important;
  background-color:var(--f-green);
  color:#fff;
  border:none;
  border-left:8px solid var(--f-yellow);
  border-radius:8px;
  padding:.8em 1.1em;
  font-size:clamp(1.12rem, 2.6vw, 1.45rem);
  letter-spacing:.04em;
  line-height:1.4;
}
/* 「その他にも！」だけオレンジ＝ここが別カテゴリだと伝える */
.splitContent__second > h2.ttlpnk{ background-color:var(--f-orange); }

/* --- ② カード枠を1種類に統一（緑5px枠・ピンク3px枠を廃止）--- */
.wrap-festa.bdno .dtl-box,
.wrap-festa.bdno .dtl-box.pnk{
  border:1px solid var(--f-line) !important;
  border-radius:16px;
  background:#fff;
  box-shadow:0 4px 14px rgba(138,122,106,.07);
  padding:20px;
}
/* カード見出し：マーカー下線 → ドット罫に統一 */
.wrap-festa .dtl-box h2,
.wrap-festa .dtl-box h3,
.wrap-festa.bdno .dtl-box h3,
.wrap-festa.bdno .dtl-box.pnk h3{
  background:none !important;
  color:var(--f-text);
  text-align:center;
  font-size:clamp(1rem, 2.2vw, 1.16rem);
  line-height:1.5;
  margin:0 0 .7em;
  padding:0 0 .6em;
  border-bottom:2px dotted var(--f-line);
}
/* HTML内の style="font-size:1.2em" 等を無効化（本来はHTML側から削除推奨）*/
.wrap-festa .dtl-box h3 span[style]{ font-size:1em !important; }

/* 「出展者一覧」など本文内の小見出しは左バー型 */
.wrap-festa:not(.bdno) .dtl-box h3{
  text-align:left;
  border-bottom:none;
  border-left:5px solid var(--f-yellow);
  padding:0 0 0 .6em;
}

/* --- ③ リンク色 deepskyblue を廃止 --- */
.top__middle__important a{ color:var(--f-green); }
.top__middle__important a:hover{ color:var(--f-green-d); opacity:1; }

/* --- ④ アクセス／情報ブロックのテラコッタをオレンジへ統合 --- */
.access__time,
.access__badge,
.warm-event-title{ color:var(--f-orange) !important; }
.access__badge{ border-color:#E8C7A8; }
.dtl_ft{ background:var(--f-cream); }

/* --- ⑤ 過去フェスタボタンもオレンジ系に統一 --- */
.top__middle__important .mod__btn__notes > a.btn-festa--past{
  color:var(--f-orange) !important;
  box-shadow:0 5px 0 #EFDCCB, 0 10px 18px rgba(138,122,106,.12),
             inset 0 0 0 2px var(--f-orange);
}
.top__middle__important .mod__btn__notes > a.btn-festa--past .btn-festa__arrow{
  background:var(--f-orange);
}

/* --- ⑥ 「後日公開／順次公開」を共通タグ化 --- */
.tag-soon{
  display:inline-block;
  padding:5px 16px;
  border-radius:999px;
  background:#fff;
  border:1px dashed #C9B9A6;
  color:var(--f-brown);
  font-size:.9rem;
  font-weight:700;
  letter-spacing:.08em;
}

/* ============================================================
   レスポンシブ（既存の 600px 指定を 640px に揃える）
   ============================================================ */
@media screen and (max-width:640px){

  /* 日時・会場ボックス：インラインstyleを上書き */
  .warm-event-card{ padding:18px 14px; border-radius:16px; }
  .warm-event-row{ padding:16px; gap:8px; }
  .warm-event-label{ font-size:16px; }
  .warm-event-detail{ font-size:17px; line-height:1.7; }
  .warm-time-highlight{ font-size:19px !important; }
  .week{ font-size:15px; }
  .warm-address-text{ font-size:15px !important; }

  /* リード文が大きすぎるのを抑える */
  .Event_dtl p.lead{
    font-size:clamp(1.02rem, 4vw, 1.35rem);
    line-height:1.75em;
    margin-bottom:36px;
    padding:0 4%;
  }

  /* 画像の回り込み解除＋全幅化 */
  .wrap-festa .dtl-box .flR{
    float:none !important;
    margin:0 0 14px !important;
    text-align:center;
  }
  .flR img, .wrap-festa .dtl-box img{ max-width:100%; width:100%; height:auto; }

  /* カードの余白圧縮／p の inline-block を解除 */
  .wrap-festa{ margin-bottom:2em; }
  .wrap-festa .dtl-box{ padding:0; margin:0 0 14px; }
  .wrap-festa.bdno .dtl-box{ padding:16px; }
  .wrap-festa .dtl-box p{ display:block; font-size:1rem; line-height:1.7em; }

  /* 下部の情報ブロック：4em+3em の余白は狭い画面で致命的 */
  .dtl_ft{ padding:14px; border-radius:16px; }
  .dtl_ft_inner{ padding:18px 14px; border-radius:12px; }
  .dtl_ft h2{ font-size:1.28em; }
  .dtl_ft h2::after{ margin:12px auto; height:4px; }
  .dtl_ft p.brandTxt{ font-size:1.05rem; margin-bottom:2em; }

  /* プレゼント見出しのアイコン位置 */
  h3.ttl_prst{ font-size:1.2em; padding-left:0; }

  /* 過去フェスタボタン：長文なので一段小さく */
  .top__middle__important .mod__btn__notes > a.btn-festa--past{
    font-size:.9rem; line-height:1.55; padding:16px 52px 16px 16px !important;
  }

  /* 横スクロール防止の保険 */
  .splitContent__second img{ max-width:100%; height:auto; }
  .mod__table_2rows{ width:100%; font-size:1em; }
  .theme{ width:100%; }
}

/* グリッドが親より広くなって横スクロールするのを防止 */
.access__grid{
  grid-template-columns:repeat(auto-fit, minmax(min(320px,100%), 1fr));
}

.splitContent__second > h2,
.splitContent__second > h2.ttlgrn,
.splitContent__second > h2.ttlpnk{
  padding: .8em 1.1em !important;
}

/* ===== 駐車場＆シャトルバスのご案内 ===== */
.shuttle{ margin-bottom:3em; }

/* .dtl_ft p{text-align:center} 等の継承を断ち切る */
.shuttle p,
.shuttle ul{ text-align:left; margin:0; }

/* --- テキストブロック --- */
.shuttle__box{
  background:var(--f-cream, #FDF8F0);
  border:1px solid var(--f-line, #EADFD2);
  border-radius:16px;
  padding:clamp(20px, 3vw, 28px);
  margin-bottom:24px;
  box-sizing:border-box;
}

.shuttle__main{
  font-size:clamp(1.05rem, 2.4vw, 1.25rem);
  line-height:1.9;
  color:var(--f-text, #3E3A36);
  padding-bottom:16px;
  margin-bottom:16px !important;
  border-bottom:2px dotted #E0D3C4;
}
.shuttle__main strong{
  color:var(--f-green, #07913A);
  font-weight:700;
}
.shuttle__main b{ font-weight:700; }

/* 赤／緑のチップ＝地図の色と対応させる */
.shuttle__chip{
  display:inline-block;
  padding:3px 12px;
  margin:2px 2px;
  border-radius:6px;
  color:#fff;
  font-size:.95em;
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
}
.shuttle__chip--red{ background:#E5352B; }
.shuttle__chip--green{ background:var(--f-green, #07913A); }

/* --- 箇条書き --- */
.shuttle__list{ list-style:none; padding:0 !important; }
.shuttle__list li{
  position:relative;
  padding-left:1.4em;
  margin-bottom:10px;
  font-size:1.05rem;
  line-height:1.85;
  color:var(--f-text, #3E3A36);
}
.shuttle__list li:last-child{ margin-bottom:0; }
.shuttle__list li::before{
  content:"";
  position:absolute;
  left:0; top:.62em;
  width:9px; height:9px;
  border-radius:50%;
  background:var(--f-yellow, #FCC800);
}

/* --- 禁止事項（赤の注意） --- */
.shuttle__caution{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:18px !important;
  padding:14px 18px;
  background:#FFF4F2;
  border:1px solid #F3C9C3;
  border-radius:10px;
  color:#C0332A;
  font-size:1.02rem;
  font-weight:700;
  line-height:1.7;
}
.shuttle__caution__mark{
  flex-shrink:0;
  display:grid; place-items:center;
  width:1.5em; height:1.5em;
  margin-top:.1em;
  border-radius:50%;
  background:#E5352B;
  color:#fff;
  font-size:.85em;
}

/* --- 地図 --- */
.shuttle__map{ margin:0; }
.shuttle__map__scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:none;          /* ← 枠線を削除 */
  border-radius:0;
  background:transparent;
  padding:0;            /* ← 枠がなくなるので内側余白も不要 */
  box-sizing:border-box;
}
.shuttle__map__scroll img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0 auto;
}

.shuttle__map__cap{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  margin-top:14px;
  text-align:center;
}
.shuttle__map__hint{ display:none; }   /* PCでは非表示 */

.shuttle .shuttle__map__cap > a.shuttle__map__zoom{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:420px;
  min-height:64px;
  padding:0 40px !important;
  box-sizing:border-box;
  border-radius:999px;
  background:#fff !important;
  background-image:none !important;
  border:2px solid var(--f-green, #07913A);
  color:var(--f-green, #07913A) !important;
  font-size:1.05rem;
  font-weight:700;
  line-height:1;
  text-decoration:none !important;
  vertical-align:middle;
  transition:background-color .2s ease, color .2s ease;
}
.shuttle .shuttle__map__cap > a.shuttle__map__zoom:hover,
.shuttle .shuttle__map__cap > a.shuttle__map__zoom:focus{
  background:var(--f-green, #07913A) !important;
  color:#fff !important;
  text-decoration:none !important;
}
.shuttle .shuttle__map__cap > a.shuttle__map__zoom::before{
  content:"\1F50D";
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  line-height:1;
}
.shuttle__blank{ font-size:.82em; font-weight:400; line-height:1; }
/* --- スマホ --- */
@media screen and (max-width:640px){
  .shuttle__box{ padding:18px 16px; border-radius:12px; }
  .shuttle__main{ font-size:1.02rem; line-height:1.8; }
  .shuttle__list li{ font-size:.98rem; line-height:1.8; }
  .shuttle__caution{ font-size:.95rem; padding:12px 14px; }

  /* 地図は縮小すると読めないので、横スクロールで原寸に近い表示に */
  .shuttle__map__scroll img{
    width:auto;
    max-width:none;
    height:auto;
    min-width:820px;              /* ← 文字が読める最小幅 */
  }
  .shuttle__map__hint{
    display:inline-block;
    padding:4px 14px;
    border-radius:999px;
    background:#F2ECE3;
    color:var(--f-brown, #8A7A6A);
    font-size:.82rem;
    font-weight:700;
  }
  .shuttle__map__hint::before{ content:"\2194\FE0E  "; }   /* ↔ */
  .shuttle .shuttle__map__cap > a.shuttle__map__zoom{
    width:100%;
    min-width:0;
    min-height:56px;
    padding:0 16px !important;
    font-size:.95rem;
  }
}

/* --- 印刷 --- */
@media print{
  .shuttle__map__scroll{ overflow:visible; border:none; }
  .shuttle__map__scroll img{ width:100%; min-width:0; }
  .shuttle__map__cap{ display:none; }
}
