*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#0b0b0d;color:#eee;font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","MS PMincho",serif;line-height:1.8}
a{color:inherit;text-decoration:none}
.wrap{width:min(1120px,calc(100% - 40px));margin:auto}

header{position:sticky;top:0;z-index:50;background:rgba(8,8,10,.92);backdrop-filter:blur(12px);border-bottom:1px solid #29292e}
.nav{height:72px;width:min(1120px,calc(100% - 40px));margin:auto;display:flex;align-items:center;justify-content:space-between}
.logo{font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","MS PMincho",serif;font-size:18px;letter-spacing:.16em}
.logo b{font-size:32px;font-style:italic}
nav{display:flex;gap:26px;font-size:13px;color:#ccc}
nav a:hover{color:#fff}

.hero{min-height:720px;display:flex;align-items:center;position:relative;overflow:hidden;background:
radial-gradient(circle at 72% 28%,rgba(170,170,180,.16),transparent 28%),
radial-gradient(circle at 20% 80%,rgba(255,255,255,.06),transparent 32%),
linear-gradient(135deg,#17171b,#08080a 68%)}
.hero:before{content:"M";position:absolute;right:-3vw;bottom:-12vw;font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","MS PMincho",serif;font-size:55vw;font-weight:bold;font-style:italic;line-height:.8;color:rgba(255,255,255,.025)}
.hero .wrap{position:relative;z-index:1}
.eyebrow{font-size:11px;letter-spacing:.25em;font-weight:800;margin:0 0 12px;color:#aaa}
.eyebrow.dark{color:#555}
.hero h1{font-size:clamp(45px,7vw,84px);line-height:1.08;letter-spacing:-.045em;margin:0 0 28px}
.hero h1 i{font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","MS PMincho",serif;font-weight:normal}
.hero p:not(.eyebrow){font-size:18px;color:#c7c7cb}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 23px;margin:18px 9px 0 0;border-radius:3px;font-weight:700;font-size:14px;transition:.2s}
.btn:hover{transform:translateY(-2px)}
.white{background:#fff;color:#111}
.outline{border:1px solid #666;color:#fff}
.black{background:#111;color:#fff}

.section{padding:92px 0;background:#f1efeb;color:#171719}
.section.dark{background:#101012;color:#fff}
.section h2{font-size:clamp(32px,4.2vw,50px);line-height:1.15;letter-spacing:-.03em;margin:0 0 14px}
.section> .wrap>p:not(.eyebrow){color:#777}
.dark> .wrap>p:not(.eyebrow){color:#aaa}

.today{margin-top:34px;padding:32px 36px;background:#fff;color:#111;border:1px solid #e3e0db;border-left:6px solid #222;border-radius:5px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 16px 40px rgba(0,0,0,.08)}
.today.closed{border-left-color:#999;background:#f7f7f7}
.today small{font-size:10px;letter-spacing:.2em;font-weight:900}
.today h3{font-size:28px;line-height:1.25;margin:4px 0}
.today p{margin:0;color:#666}
.today strong{font-size:18px}
.note{font-size:12px!important;color:#777!important;margin-top:13px}

.about{display:grid;grid-template-columns:1.35fr .75fr;gap:80px;align-items:center}
.lead{font-size:27px;line-height:1.55}
.features{border:1px solid #303034}
.features div{padding:19px 23px;border-bottom:1px solid #303034;display:flex;justify-content:space-between}
.features div:last-child{border-bottom:0}
.features b{font-size:12px;letter-spacing:.16em}
.features span{font-size:13px;color:#aaa}

#calendarGrid{margin-top:30px;border-radius:6px;overflow:hidden;box-shadow:0 14px 35px rgba(0,0,0,.07)}
.month{background:#fff;padding:22px 25px;font-size:25px;font-weight:800}
.week,.grid{display:grid;grid-template-columns:repeat(7,1fr)}
.week span{text-align:center;padding:9px;background:#e9e6e1;color:#555;font-size:12px;font-weight:700}
.day{min-height:110px;background:#fff;color:#222;border-right:1px solid #eee;border-bottom:1px solid #eee;padding:10px}
.day.empty{background:#f8f7f5}
.day.closed{background:#e8e8e8;color:#888}
.day.today{box-shadow:inset 0 0 0 2px #222}
.day b,.day small{display:block}
.day b{font-size:18px}
.day small{font-size:10px}
.day em{display:block;margin-top:5px;padding:2px 5px;background:#dedbd5;border-radius:2px;font-size:10px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend{font-size:12px;color:#777!important;margin-top:12px}

.dark #eventsList{margin-top:28px}
.dark #eventsList article{display:grid;grid-template-columns:170px 1fr;gap:20px;background:#17171a;border:1px solid #303035;padding:23px 26px;margin:10px 0;border-radius:5px}
.dark article strong{font-size:21px}
.dark article small{display:block;color:#999;font-size:12px}
.dark article h3{margin:0;font-size:21px}
.dark article p{margin:2px 0 0;color:#999;font-size:13px}
.empty{padding:35px;text-align:center;border:1px dashed #444;background:#17171a;color:#999;border-radius:5px}

.hours{background:#dedbd5}
.two{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.hoursbox{background:#fff;color:#171719;padding:8px 28px;border-radius:5px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.hoursbox div{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid #eee}
.hoursbox div:last-child{border-bottom:0}

.access{display:grid;grid-template-columns:1.55fr .7fr;gap:35px;align-items:stretch}
.access iframe{width:100%;height:285px;border:0;border-radius:5px}
.access>div:last-child{background:#fff;padding:28px;border-radius:5px}
.access h3{font-size:25px;margin-top:0}

.social{background:#fff;text-align:center}
.socialgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:32px}
.socialgrid a{padding:25px;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;transition:.2s}
.socialgrid a:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.08)}
.socialgrid b{font-size:18px}
.socialgrid span{font-size:12px;color:#777}

footer{background:#070708;color:#999;padding:34px 0}
footer .wrap{display:flex;flex-direction:column}
footer b{color:#fff;letter-spacing:.14em}
footer span{font-size:12px}
footer small{margin-top:13px}

.setup{padding:35px;text-align:center;background:#fff;border:1px dashed #bbb;color:#777}

@media(max-width:760px){
 /* スマホではナビを2段目に横スクロール表示 */
 header .nav{
   height:auto;
   min-height:62px;
   width:calc(100% - 28px);
   flex-wrap:wrap;
   padding:8px 0 7px;
 }
 header nav{
   display:flex;
   order:2;
   width:100%;
   gap:22px;
   margin-top:5px;
   padding:4px 0 2px;
   overflow-x:auto;
   overflow-y:hidden;
   white-space:nowrap;
   -webkit-overflow-scrolling:touch;
   scrollbar-width:none;
 }
 header nav::-webkit-scrollbar{display:none}
 header nav a{
   flex:0 0 auto;
   font-size:12px;
 }
 .wrap{width:calc(100% - 28px)}
 .hero{min-height:610px}
 .section{padding:65px 0}
 .today,.about,.two,.access{display:block}
 .today strong{display:block;margin-top:15px}
 .features,.hoursbox{margin-top:28px}
 .dark #eventsList article{grid-template-columns:1fr;gap:5px}
 .socialgrid{grid-template-columns:1fr}
 .day{min-height:82px;padding:6px}
 .day em{display:none}
 .week span{font-size:10px}
}
/* =========================================
   Live Bar M - 営業カレンダー
   ========================================= */

#calendarNav {
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  max-width: 720px;
  margin: 0 auto 18px;
  border-bottom: 1px solid rgba(255,255,255,.15);
  padding-bottom: 14px;
}

#calendarNav strong {
  text-align: center;
  font-family:
    "Noto Serif JP",
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: .08em;
}

#calendarNav button {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

#calendarNav button:hover:not(:disabled) {
  background: #fff;
  color: #111;
  border-color: #fff;
  transform: scale(1.05);
}

#calendarNav button:disabled {
  opacity: .22;
  cursor: default;
}


/* カレンダー本体 */

#calendarGrid {
  max-width: 720px;
  margin: 0 auto;
}


/* 曜日 */

#calendarGrid .week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-bottom: 1px solid rgba(255,255,255,.12);
  margin-bottom: 4px;
}

#calendarGrid .week span {
  text-align: center;
  padding: 9px 0;
  font-size: .72rem;
  letter-spacing: .08em;
  opacity: .65;
}


/* 日付グリッド */

#calendarGrid .grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}


/* 各日 */

#calendarGrid .day {
  position: relative;
  min-height: 88px;
  padding: 8px 6px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.025);
  border-radius: 4px;
  overflow: hidden;
  transition:
    background .2s ease,
    border-color .2s ease;
}

#calendarGrid .day:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.2);
}


/* 日付 */

#calendarGrid .day b {
  display: block;
  font-size: .9rem;
  font-weight: 500;
  margin-bottom: 5px;
}


/* 営業時間 */

#calendarGrid .day small {
  display: block;
  font-size: .58rem;
  line-height: 1.4;
  opacity: .48;
}


/* 休業 */

#calendarGrid .day.closed {
  opacity: .42;
}

#calendarGrid .day.closed small {
  opacity: .8;
}


/* 今日 */

#calendarGrid .day.today {
  border: 1px solid rgba(255,255,255,.75);
  background: rgba(255,255,255,.08);
}

#calendarGrid .day.today b::after {
  content: " TODAY";
  font-size: .48rem;
  letter-spacing: .08em;
  opacity: .7;
}


/* イベント */

#calendarGrid .day em {
  display: block;
  margin-top: 5px;
  padding: 3px 4px;
  border-left: 2px solid #fff;
  background: rgba(255,255,255,.09);
  font-size: .58rem;
  line-height: 1.3;
  font-style: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* 空白 */

#calendarGrid .day.empty {
  border-color: transparent;
  background: transparent;
}


/* 土曜日 */

#calendarGrid .week span:nth-child(6),
#calendarGrid .grid .day:nth-child(7n + 6) b {
  opacity: .8;
}


/* 日曜日 */

#calendarGrid .week span:nth-child(7),
#calendarGrid .grid .day:nth-child(7n) b {
  opacity: .75;
}


/* =========================================
   スマートフォン
   ========================================= */

@media (max-width: 600px) {

  #calendarNav {
    grid-template-columns: 40px 1fr 40px;
    margin-bottom: 12px;
    padding-bottom: 11px;
  }

  #calendarNav strong {
    font-size: 1.1rem;
  }

  #calendarNav button {
    width: 34px;
    height: 34px;
    font-size: 16px;
  }

  #calendarGrid .week span {
    padding: 7px 0;
    font-size: .62rem;
  }

  #calendarGrid .grid {
    gap: 2px;
  }

  #calendarGrid .day {
    min-height: 72px;
    padding: 6px 3px;
    border-radius: 3px;
  }

  #calendarGrid .day b {
    font-size: .78rem;
    margin-bottom: 3px;
  }

  #calendarGrid .day small {
    font-size: .48rem;
  }

  #calendarGrid .day em {
    margin-top: 4px;
    padding: 2px 3px;
    font-size: .46rem;
  }

  #calendarGrid .day.today b::after {
    display: none;
  }
}


/* かなり小さいスマホ */

@media (max-width: 380px) {

  #calendarGrid .day {
    min-height: 66px;
  }

  #calendarGrid .day small {
    font-size: .43rem;
  }

  #calendarGrid .day em {
    font-size: .42rem;
  }

}

/* 臨時営業 */
#calendarGrid .day.special-open {
  background: #fff;
  border: 2px solid #555;
}
#calendarGrid .day.special-open small {
  font-weight: 700;
  opacity: .9;
}

/* カレンダー操作性 */
#calendarGrid {
  touch-action: pan-y;
}
#calendarNav button {
  position: relative;
  z-index: 2;
}


/* イベントの実施時間 */
#calendarGrid .day em .event-time {
  display: block;
  margin-bottom: 1px;
  font-size: .54rem;
  font-weight: 700;
  line-height: 1.25;
  color: #555;
}

#calendarGrid .day.special-open small {
  line-height: 1.45;
}

@media (max-width: 600px) {
  #calendarGrid .day em .event-time {
    font-size: .43rem;
  }
}


/* =========================================
   カレンダーイベント全文表示 + 詳細ポップアップ
   ========================================= */

#calendarGrid .day {
  overflow: visible;
  height: auto;
}

#calendarGrid .calendar-event {
  display: block;
  width: 100%;
  margin: 5px 0 0;
  padding: 5px 6px;
  border: 0;
  border-left: 2px solid #333;
  border-radius: 2px;
  background: #f0eeea;
  color: #333;
  font: inherit;
  text-align: left;
  cursor: pointer;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  word-break: break-word;
  transition: background .15s ease, transform .15s ease;
}

#calendarGrid .calendar-event:hover {
  background: #e5e2dc;
  transform: translateY(-1px);
}

#calendarGrid .calendar-event .event-time {
  display: block;
  margin-bottom: 2px;
  font-size: .56rem;
  font-weight: 700;
  line-height: 1.3;
  color: #666;
}

#calendarGrid .calendar-event .event-title {
  display: block;
  font-size: .6rem;
  line-height: 1.45;
  white-space: normal;
}

body.modal-open {
  overflow: hidden;
}

.event-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.event-modal.is-open {
  display: flex;
}

.event-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(5px);
}

.event-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(680px, 100%);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  padding: 34px;
  border: 1px solid #333;
  border-radius: 8px;
  background: #111113;
  color: #eee;
  box-shadow: 0 24px 70px rgba(0,0,0,.45);
}

.event-modal-close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 38px;
  height: 38px;
  border: 1px solid #555;
  border-radius: 50%;
  background: transparent;
  color: #fff;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.event-modal-date {
  padding-right: 45px;
  color: #aaa;
  font-size: .78rem;
  letter-spacing: .04em;
}

.event-modal-date span {
  margin-left: 10px;
  color: #fff;
}

.event-modal-dialog h3 {
  margin: 8px 0 20px;
  font-size: clamp(24px, 4vw, 34px);
  line-height: 1.35;
}

.event-modal-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 68vh;
  object-fit: contain;
  margin: 0 auto 22px;
  border-radius: 5px;
  background: #080809;
}

.event-modal-description {
  margin: 18px 0 0;
  color: #ccc;
  line-height: 1.8;
}

.event-modal-location {
  margin: 14px 0 0;
  color: #aaa;
  font-size: .86rem;
}

@media (max-width: 600px) {
  #calendarGrid .day {
    min-height: 78px;
  }

  #calendarGrid .calendar-event {
    padding: 4px 3px;
  }

  #calendarGrid .calendar-event .event-time {
    font-size: .44rem;
  }

  #calendarGrid .calendar-event .event-title {
    font-size: .47rem;
    line-height: 1.4;
  }

  .event-modal {
    padding: 10px;
  }

  .event-modal-dialog {
    width: 100%;
    max-height: calc(100vh - 20px);
    padding: 28px 18px 20px;
  }

  .event-modal-image {
    max-height: 72vh;
  }

  .event-modal-date span {
    display: block;
    margin: 3px 0 0;
  }
}

.dark #eventsList article.event-list-item{cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.dark #eventsList article.event-list-item:hover{transform:translateY(-2px);border-color:#666;background:#1d1d20}
.dark #eventsList article.event-list-item:focus-visible{outline:2px solid #fff;outline-offset:3px}
.dark #eventsList article.event-list-item h3::after{content:"  詳細を見る";font-size:.62rem;font-weight:normal;color:#888;white-space:nowrap}
@media(max-width:600px){.dark #eventsList article.event-list-item h3::after{display:block;margin-top:3px}}
.features .eqbtn{width:100%;padding:19px 23px;border:0;border-bottom:1px solid #303034;background:transparent;color:inherit;display:flex;justify-content:space-between;font:inherit;cursor:pointer}.features .eqbtn:hover{background:#1b1b1e}.features .eqbtn b{font-size:12px;letter-spacing:.16em}.features .eqbtn span{font-size:13px;color:#aaa}.eqmodal{display:none;position:fixed;inset:0;z-index:1200;align-items:center;justify-content:center;padding:20px}.eqmodal.on{display:flex}.eqback{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(6px)}.eqdialog{position:relative;z-index:1;width:min(850px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#111113;color:#eee;border:1px solid #38383d;border-radius:8px;padding:36px}.eqclose{position:absolute;right:14px;top:14px;width:40px;height:40px;border-radius:50%;border:1px solid #555;background:transparent;color:#fff;font-size:24px}.eqtag{font-size:10px;letter-spacing:.22em;color:#777}.eqdialog h3{font-size:40px;margin:0 0 22px}.eqgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.eqgrid section{background:#18181b;border:1px solid #303035;border-radius:5px;padding:18px}.eqgrid .wide{grid-column:1/-1}.eqgrid h4{margin:0 0 8px;color:#aaa;font-size:12px;letter-spacing:.12em;border-bottom:1px solid #333;padding-bottom:8px}.eqgrid p{display:flex;justify-content:space-between;gap:15px;margin:0;padding:7px 0;border-bottom:1px solid #29292d;color:#888;font-size:12px}.eqgrid p:last-child{border:0}.eqgrid b{color:#eee;text-align:right;font-size:13px}@media(max-width:600px){.eqmodal{padding:8px}.eqdialog{padding:28px 16px;max-height:calc(100vh - 16px)}.eqgrid{grid-template-columns:1fr}.eqgrid .wide{grid-column:auto}.eqdialog h3{font-size:32px}.eqgrid p{display:block}.eqgrid b{display:block;text-align:left;margin-top:2px}}
/* 機材名クリック → 実機写真 */
.equipment-photo-link{
  padding:0;border:0;background:none;color:#eee;font:inherit;font-weight:700;
  text-align:right;cursor:pointer;border-bottom:1px dotted #777;
}
.equipment-photo-link:hover{color:#fff;border-bottom-color:#fff}
.equipment-photo-link::after{content:" ↗";font-size:9px;color:#777}
.equipment-photo-modal{position:fixed;inset:0;z-index:1400;display:none;align-items:center;justify-content:center;padding:20px}
.equipment-photo-modal.is-open{display:flex}
.equipment-photo-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(7px)}
.equipment-photo-dialog{position:relative;z-index:1;width:min(820px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:24px;background:#101012;border:1px solid #3a3a3e;border-radius:8px;color:#eee;text-align:center}
.equipment-photo-close{position:absolute;right:12px;top:12px;z-index:2;width:40px;height:40px;border:1px solid #666;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font-size:25px;cursor:pointer}
#equipmentPhotoImage{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain;border-radius:5px;background:#080809}
.equipment-photo-dialog h3{margin:15px 0 0;font-size:22px}
.equipment-photo-dialog p{margin:8px 0 0;color:#aaa;font-size:13px}
@media(max-width:600px){
 .equipment-photo-link{text-align:left}
 .equipment-photo-modal{padding:8px}
 .equipment-photo-dialog{padding:16px;max-height:calc(100vh - 16px)}
 #equipmentPhotoImage{max-height:75vh}
}

.hero{min-height:720px;background-image:url("images/livebar-m-exterior.jpg");background-size:cover;background-position:center;background-repeat:no-repeat}
.hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(5,5,7,.90),rgba(5,5,7,.68) 32%,rgba(5,5,7,.25) 70%,rgba(5,5,7,.12)),linear-gradient(0deg,rgba(5,5,7,.35),transparent 45%)}
.hero:before{display:none}.hero .wrap{position:relative;z-index:2}.hero h1{text-shadow:0 3px 24px rgba(0,0,0,.6)}.hero p:not(.eyebrow){color:#e1e1e3;text-shadow:0 2px 14px rgba(0,0,0,.7)}
@media(max-width:760px){.hero{min-height:660px;background-position:38% center;align-items:flex-end}.hero::after{background:linear-gradient(0deg,rgba(5,5,7,.92),rgba(5,5,7,.68) 44%,rgba(5,5,7,.22) 78%)}.hero .wrap{padding-bottom:62px}.hero p:not(.eyebrow){font-size:15px}}

/* HERO v2: 右側の木目壁にコピーを配置 */
.hero{
  min-height:720px;
  background-image:url("images/livebar-m-exterior.jpg");
  background-size:cover;
  background-position:center center;
  display:flex;
  align-items:center;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(90deg,
      rgba(5,5,7,.05) 0%,
      rgba(5,5,7,.08) 38%,
      rgba(5,5,7,.36) 58%,
      rgba(5,5,7,.72) 78%,
      rgba(5,5,7,.82) 100%),
    linear-gradient(0deg,rgba(5,5,7,.24),transparent 45%,rgba(5,5,7,.08));
}
.hero .wrap{
  position:relative;
  z-index:2;
  width:min(1180px,calc(100% - 48px));
  margin:0 auto;
  padding:40px 0;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:left;
}
.hero .wrap > *{
  width:min(500px,43%);
}
.hero h1{
  max-width:none;
  text-shadow:0 3px 24px rgba(0,0,0,.72);
}
.hero p:not(.eyebrow){
  max-width:none;
  color:#eee;
}
.hero .actions{
  display:flex;
  flex-wrap:wrap;
}

/* スマホでは右壁が狭くなるため、写真を残しつつ下部全面にコピー */
@media(max-width:760px){
  .hero{
    min-height:660px;
    background-position:43% center;
    align-items:flex-end;
  }
  .hero::after{
    background:
      linear-gradient(0deg,
        rgba(5,5,7,.94) 0%,
        rgba(5,5,7,.78) 38%,
        rgba(5,5,7,.28) 68%,
        rgba(5,5,7,.08) 100%);
  }
  .hero .wrap{
    width:min(100% - 34px,1180px);
    padding:0 0 54px;
    display:block;
    text-align:left;
  }
  .hero .wrap > *{
    width:100%;
  }
  .hero h1{
    max-width:520px;
  }
  .hero p:not(.eyebrow){
    max-width:520px;
  }
}

.header-logo-image{display:block;width:auto;height:40px;max-width:210px;object-fit:contain}
header .logo{display:flex;align-items:center;padding:5px 0}
@media(max-width:600px){.header-logo-image{height:32px;max-width:170px}}

/* EQUIPMENT PAGE */
.equipment-page{background:#0b0b0d;color:#eee}.eq-header{height:72px;padding:0 max(24px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #29292d;background:#101012}.eq-header img{height:38px;width:auto}.eq-header nav{display:flex;gap:24px}.eq-header nav a{color:#aaa;text-decoration:none;font-size:11px;letter-spacing:.12em}.eq-hero{min-height:310px;display:flex;align-items:flex-end;padding:55px max(24px,calc((100% - 1180px)/2));background:linear-gradient(90deg,#0c0c0e,#18181b)}.eq-hero p{margin:0;color:#777;font-size:11px;letter-spacing:.28em}.eq-hero h1{margin:4px 0 8px;font-size:clamp(42px,7vw,76px);line-height:1}.eq-hero span{color:#aaa}.eq-page-wrap{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:54px 0 80px}.eq-intro{padding:24px;border:1px solid #303035;background:#141416;margin-bottom:42px}.eq-intro p{margin:0 0 8px;line-height:1.8}.eq-intro small{color:#888}.equip-section{margin:0 0 42px}.equip-section h2{margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid #333;font-size:15px;letter-spacing:.14em;color:#aaa}.equip-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.equip-card{min-height:130px;padding:18px;border:1px solid #303035;border-radius:5px;background:#151518;color:#eee;text-align:left;cursor:pointer;display:flex;flex-direction:column;transition:.18s}.equip-card:hover{background:#1d1d21;border-color:#555;transform:translateY(-2px)}.equip-type{min-height:17px;color:#777;font-size:10px;letter-spacing:.08em}.equip-card strong{font-size:15px;line-height:1.45}.equip-spec{margin:5px 0 0;color:#888;font-size:11px}.view-photo{margin-top:auto;padding-top:15px;color:#777;font-size:9px;letter-spacing:.15em}.eq-footer{padding:35px;text-align:center;border-top:1px solid #29292d}.eq-footer a{color:#aaa;text-decoration:none;font-size:12px}
@media(max-width:760px){.eq-header{height:62px;padding:0 17px}.eq-header img{height:30px}.eq-header nav{gap:12px}.eq-header nav a:nth-child(2){display:none}.eq-hero{min-height:240px;padding:38px 20px}.eq-page-wrap{width:calc(100% - 30px);padding:35px 0 60px}.equip-cards{grid-template-columns:1fr 1fr}.equip-card{min-height:115px;padding:14px}.equip-card strong{font-size:13px}}
@media(max-width:420px){.equip-cards{grid-template-columns:1fr}.equip-card{min-height:105px}}

.equip-card{min-height:112px;display:grid;grid-template-columns:82px minmax(0,1fr);gap:15px;align-items:center}
.equip-thumb-wrap{width:82px;height:82px;border-radius:4px;overflow:hidden;background:#0b0b0d;border:1px solid #2c2c31;position:relative}
.equip-thumb-wrap.no-photo::after{content:"NO PHOTO";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#555;font-size:8px;letter-spacing:.08em}
.equip-thumb{display:block;width:100%;height:100%;object-fit:cover}
.equip-card-info{min-width:0;display:flex;flex-direction:column;justify-content:center}
.equip-card .view-photo{margin-top:8px;padding-top:0}
@media(max-width:760px){.equip-card{grid-template-columns:70px minmax(0,1fr);gap:12px}.equip-thumb-wrap{width:70px;height:70px}}
@media(max-width:420px){.equip-card{grid-template-columns:82px minmax(0,1fr)}.equip-thumb-wrap{width:82px;height:82px}}


/* =========================================
   Live Bar M - カレンダー視認性 v4
   本日＝白背景 / 臨時休業＝定休日 / 臨時営業＝通常営業
   ========================================= */

/* 通常営業 ＋ 臨時営業：同じ見た目 */
#calendarGrid .day.open,
#calendarGrid .day.special-open {
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.08);
  color: inherit;
  opacity: 1;
}

#calendarGrid .day.special-open small {
  display: block;
  margin-top: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font-weight: normal;
  opacity: .48;
}

/* 定休日 ＋ 臨時休業：同じグレーアウト */
#calendarGrid .day.closed,
#calendarGrid .day.special-closed {
  background: rgba(110,110,110,.16);
  border: 1px solid rgba(120,120,120,.12);
  color: #777;
  opacity: .42;
}

#calendarGrid .day.closed b,
#calendarGrid .day.closed small,
#calendarGrid .day.special-closed b,
#calendarGrid .day.special-closed small {
  color: #777;
}

#calendarGrid .day.special-closed small {
  display: block;
  margin-top: 0;
  padding: 0;
  background: transparent;
  font-weight: normal;
  opacity: .8;
}

/* イベントは目立たせる */
#calendarGrid .calendar-event {
  border-left: 3px solid #222;
  background: #f3f1ed;
  color: #222;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
  font-weight: 700;
}

#calendarGrid .calendar-event .event-time {
  color: #555;
}

#calendarGrid .calendar-event:hover {
  background: #fff;
}

/* 本日：マス全体を白背景にする */
#calendarGrid .day.today,
#calendarGrid .day.today.closed,
#calendarGrid .day.today.special-open,
#calendarGrid .day.today.special-closed {
  background: #fff;
  color: #111;
  opacity: 1;
  border: 2px solid #222;
  box-shadow: 0 5px 16px rgba(0,0,0,.18);
  z-index: 3;
}

/* 日付だけの白丸は解除 */
#calendarGrid .day.today b {
  display: block;
  min-width: 0;
  height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #111;
  font-weight: 700;
}

/* TODAY は黒系で表示 */
#calendarGrid .day.today b::after {
  content: " TODAY";
  margin-left: 4px;
  color: #555;
  font-size: .48rem;
  letter-spacing: .08em;
  opacity: 1;
}

/* 本日の営業時間・休業表示も黒系 */
#calendarGrid .day.today small,
#calendarGrid .day.today.closed small,
#calendarGrid .day.today.special-open small,
#calendarGrid .day.today.special-closed small {
  color: #555;
  opacity: .85;
  background: transparent;
}

/* 本日内のイベントは白背景の中でも区別できるように */
#calendarGrid .day.today .calendar-event {
  background: #ece9e3;
}

/* スマホ */
@media (max-width: 600px) {
  #calendarGrid .day.today,
  #calendarGrid .day.today.closed,
  #calendarGrid .day.today.special-open,
  #calendarGrid .day.today.special-closed {
    border-width: 2px;
    box-shadow: 0 4px 12px rgba(0,0,0,.16);
  }

  #calendarGrid .day.today b::after {
    content: " 今日";
    display: inline;
    margin-left: 2px;
    font-size: .40rem;
    letter-spacing: 0;
  }
}

/* PARKING GUIDE */
.parking-guide{margin-top:58px;padding-top:42px;border-top:1px solid #d5d1cb}
.parking-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:24px}
.parking-heading h3{margin:0;font-size:clamp(27px,3vw,38px)}
.parking-heading>p{margin:0;color:#777}
.parking-photos{display:grid;grid-template-columns:1.45fr .75fr;gap:12px}
.parking-photos figure{position:relative;margin:0;overflow:hidden;border-radius:5px;background:#ddd}
.parking-photos img{display:block;width:100%;height:360px;object-fit:cover}
.parking-photos figure:nth-child(2) img{object-position:center}
.parking-photos figcaption{position:absolute;left:12px;bottom:12px;padding:6px 10px;background:rgba(0,0,0,.78);color:#fff;font-size:12px;border-radius:3px}
.parking-facts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px;background:#fff;border:1px solid #ddd}
.parking-facts div{padding:20px 22px;border-right:1px solid #ddd}
.parking-facts div:last-child{border-right:0}
.parking-facts small,.parking-facts strong{display:block}
.parking-facts small{color:#777;font-size:11px}.parking-facts strong{font-size:22px}
.parking-warning{margin:18px 0 0;padding:14px 16px;border-left:4px solid #222;background:#e6e2dc}
.coin-parking{margin-top:44px}.coin-parking h4{margin:0;font-size:25px}.coin-parking>p{margin:4px 0 18px;color:#777}
.parking-links{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.parking-links a{display:flex;min-height:145px;padding:18px;border:1px solid #d6d2cc;background:#fff;border-radius:5px;flex-direction:column;transition:.18s}
.parking-links a:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.parking-links b{font-size:16px}.parking-links span{margin-top:6px;color:#777;font-size:12px}.parking-links em{margin-top:auto;color:#555;font-size:11px;font-style:normal}
.parking-note{display:block;margin-top:12px;color:#777}
@media(max-width:760px){
 .parking-guide{margin-top:42px;padding-top:32px}.parking-heading{display:block}.parking-heading>p{margin-top:8px}
 .parking-photos{grid-template-columns:1fr}.parking-photos img{height:auto;aspect-ratio:4/3}
 .parking-photos figure:nth-child(2) img{aspect-ratio:16/10}
 .parking-facts{grid-template-columns:1fr}.parking-facts div{border-right:0;border-bottom:1px solid #ddd;padding:14px 16px}.parking-facts div:last-child{border-bottom:0}
 .parking-links{grid-template-columns:1fr}.parking-links a{min-height:115px}
}

/* PARKING AREA MAP - actual map */
.parking-photos figure:nth-child(2){background:#eee;display:flex;align-items:center;justify-content:center}
.parking-photos figure:nth-child(2) img{height:360px;object-fit:contain;object-position:center;background:#eee}
.parking-area-map{margin-top:34px;padding:26px;background:#fff;border:1px solid #d9d5cf;border-radius:6px}
.parking-map-head{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:18px}
.parking-map-head small{display:block;color:#777;font-size:10px;font-weight:800;letter-spacing:.22em}
.parking-map-head h4{margin:2px 0 0;font-size:24px}.parking-map-head p{margin:0;max-width:430px;color:#777;font-size:12px}
.parking-real-map{width:100%;height:500px;border:1px solid #d8d5d0;border-radius:5px;background:#eee;z-index:1}
.parking-map-note{margin:10px 0 0;color:#777;font-size:10px}
.parking-leaflet-icon{background:transparent;border:0}
.parking-leaflet-icon span{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border:3px solid #fff;border-radius:50% 50% 50% 0;background:#333;color:#fff;font-family:Arial,sans-serif;font-size:15px;font-weight:800;box-shadow:0 2px 7px rgba(0,0,0,.35);transform:rotate(-45deg)}
.parking-leaflet-icon span::first-letter{transform:rotate(45deg)}
.parking-leaflet-icon.shop span{background:#111;font-size:17px}
.parking-leaflet-icon.free span{background:#555}
.leaflet-popup-content{font-family:"Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif;line-height:1.6}
.leaflet-popup-content b{font-size:14px}.leaflet-popup-content span{font-size:11px;color:#666}.leaflet-popup-content a{display:inline-block;margin-top:5px;font-size:11px;font-weight:700;text-decoration:underline}
@media(max-width:760px){
 .parking-photos figure:nth-child(2) img{height:auto;width:100%;aspect-ratio:auto;object-fit:contain}
 .parking-area-map{padding:18px 14px}.parking-map-head{display:block}.parking-map-head p{margin-top:6px}.parking-real-map{height:430px}
}


/* ===== PARKING v4 fixes ===== */
/* Leafletの基本画像挙動を明示。サイト共通CSSの影響でタイルが巨大化するのを防止 */
#parkingMap.leaflet-container{
  position:relative;
  overflow:hidden;
  width:100%;
  height:460px;
  max-width:100%;
  background:#e7e4de;
  touch-action:pan-x pan-y;
}
#parkingMap .leaflet-pane,
#parkingMap .leaflet-tile,
#parkingMap .leaflet-marker-icon,
#parkingMap .leaflet-marker-shadow,
#parkingMap .leaflet-tile-container,
#parkingMap .leaflet-map-pane,
#parkingMap .leaflet-overlay-pane,
#parkingMap .leaflet-shadow-pane,
#parkingMap .leaflet-marker-pane,
#parkingMap .leaflet-tooltip-pane,
#parkingMap .leaflet-popup-pane{
  position:absolute;
  left:0;
  top:0;
}
#parkingMap .leaflet-tile{
  width:256px !important;
  height:256px !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:fill !important;
}
#parkingMap img.leaflet-tile,
#parkingMap img.leaflet-marker-icon,
#parkingMap img.leaflet-marker-shadow{
  display:block;
}
#parkingMap .leaflet-control-container{font-family:Arial,sans-serif}
#parkingMap .leaflet-control-zoom a{
  display:block;
  width:30px;
  height:30px;
  line-height:30px;
  text-align:center;
  background:#fff;
  border-bottom:1px solid #ccc;
  font-family:Arial,sans-serif;
  font-size:20px;
}
#parkingMap .leaflet-control-zoom{
  border:1px solid #bbb;
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 1px 5px rgba(0,0,0,.25);
}
#parkingMap .leaflet-control-attribution{
  position:absolute;
  right:0;
  bottom:0;
  z-index:800;
  padding:2px 5px;
  background:rgba(255,255,255,.85);
  font-size:9px;
}
#parkingMap .leaflet-popup{
  position:absolute;
  text-align:center;
}
#parkingMap .leaflet-popup-content-wrapper{
  background:#fff;
  border-radius:5px;
  box-shadow:0 3px 14px rgba(0,0,0,.25);
  padding:1px;
}
#parkingMap .leaflet-popup-content{margin:12px 14px;text-align:left}
#parkingMap .leaflet-popup-tip{
  width:12px;height:12px;background:#fff;transform:rotate(45deg);margin:-6px auto 0;
}
.parking-leaflet-icon span i{
  display:block;
  transform:rotate(45deg);
  font-style:normal;
}
.parking-photos figure:nth-child(2){
  background:#e7e4de;
}
.parking-photos figure:nth-child(2) img{
  object-fit:contain !important;
  object-position:center center !important;
  background:#e7e4de;
}

@media(max-width:600px){
  #parkingMap.leaflet-container{
    height:340px;
    touch-action:pan-x pan-y;
  }
  .parking-area-map{padding:14px 10px}
  .parking-map-head h4{font-size:20px}
  .parking-map-head p{font-size:11px}
  .parking-photos figure:nth-child(2) img{
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
  }
}
