.cxa-event-calendar {
  max-width: 100%;
  margin: 1.5rem 0;
}

.cxa-event-calendar__title {
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}

.cxa-event-calendar__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 0.9rem;
}

.cxa-event-calendar__table th,
.cxa-event-calendar__table td {
  border: 1px solid #ddd;
  padding: 4px;
  vertical-align: top;
}

.cxa-event-calendar__cell.is-empty {
  background-color: #fafafa;
}

.cxa-event-calendar__date-num {
  font-weight: bold;
  margin-bottom: 2px;
  font-size: 0.8rem;
}

.cxa-event-calendar__events {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cxa-event-calendar__event-item {
  margin: 0 0 2px;
}

.cxa-event-calendar__event-item a {
  text-decoration: none;
  font-size: 0.8rem;
}

.event-detail__map-embed {
  margin: 12px 0;
}

.event-detail__map-frame {
  position: relative;
  width: 100%;
  padding-top: 100%;
  /* 正方形 */
}

.event-detail__map-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ギャラリー：スマホ2カラム */
.event-detail .cxa-ec-gallery-front {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 0;
  margin: 0;
}

.event-detail .cxa-ec-gallery-front__item {
  list-style: none;
}

.event-detail .cxa-ec-gallery-front__link {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 4px;
  /* 好みで */
}

.event-detail .cxa-ec-gallery-front__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.event-detail__meta {
  margin: 0;
}

.event-detail__meta dl {
  margin-bottom: 2rem;
}


.event-detail__meta h3 {
  margin: 0 0 1rem;
  font-size: 1.6rem;
}

.event-addition__meta h3 {
  padding: 1rem 0;
  border-bottom: 3px solid rgb(var(--primary-color) / .1);
}

.event-detail__meta-row:first-child {
  border-top: 1px solid rgb(var(--primary-color) / .08);
}

.event-detail__meta-row {
  display: grid;
  grid-template-columns: 6rem 1fr;
  /* 左：項目名 */
  gap: 1rem;
  border-bottom: 1px solid rgb(var(--primary-color) / .08);
}

.event-detail__meta-row dt {
  font-weight: 600;
  margin: 0;
  padding: .5rem 1rem;
  text-align: justify;
  text-align-last: justify;
  /* 対応ブラウザで最終行も両端揃え */

  background-color: rgb(var(--primary-color) / .02);
}


.event-detail__meta-row dd {
  padding: .5rem 0;
  margin: 0;
  min-width: 0;
}

.event-label {
  text-align: center;
  padding: 1rem;
}

.event-label span.event-tag {
  display: inline-block;
  background-color: #f0f0f0;
  color: #333;
  font-size: 0.75rem;
  padding: 0 .2rem;
  border-radius: 3px;
  margin-top: 4px;
}

button.event-tag-toggle {
  font-size: 0.75rem;
  color: #fff;
  background: rgb(var(--primary-color) / .5);
  border-radius: 3px;
  padding: 0 .5rem;
}

.laplab-event-list {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 16px;
  margin-bottom: 1rem;
}

/* 一覧のサムネ枠を正方形に */
.laplab-event-list .thumb {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

/* 画像を枠いっぱいにトリミング */
.laplab-event-list .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.event-archive__item .meta h3.title {
  font-size: 1.4rem;
  margin: 1rem 0 0.5rem;
}

/*カレンダー表示ここから*/
/* ===== カレンダー：縦流し→2カラム（PC） ===== */
.cxa-event-list-calendar{
  /* display:grid をやめる */
  display: block;

  column-count: 2;
  column-gap: 1rem; /* 真ん中の隙間。必要なら 24px とかに */
}

/* 1日分（カラム内で割れない） */
.cxa-event-list-calendar .cxa-ec-day{
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;

  /* ここは“行”の見た目なので grid のままでOK */
  display: grid;
  grid-template-columns: auto auto 1fr;

  border-bottom: 1px solid #ddd;
  align-items: center;
  min-height: 48px;

  /* columns環境だと余白が必要になることがある */
  width: 100%;
}

/* 数字と曜日 */
.day-num {
  padding-left: 1rem;
}

.day-week {
  padding: 0.5rem;
  font-size: 0.9rem;
}

.day-num,
.day-week{
  text-align: center;
  font-weight: 600;
}

/* イベント名 */
.day-events {
}

.day-events a{
  display: grid;
  grid-template-columns: 1em 1fr;
  text-decoration: none;
  line-height: 1.4;
  padding-block: .3rem; /* top+bottom をまとめる */
}

.day-events a::before{
  content: "●";
  font-size: .8em;
  line-height: 1;      /* マーカー自体の行高を固定 */
  translate: 0 .2em;   /* “ちょい下げ”はこれでOK（対応ブラウザも実用域） */
}

/* 最初だけ上を増やしたいなら */
.day-events a:first-child{
  padding-top: 0.5rem;
}



.no-event{ color:#aaa; }

/* 日曜日 */
.cxa-ec-day .week-0{
  background: #fff0f0; /* 薄い赤 */
}

/* 土曜日 */
.cxa-ec-day .week-6{
  background: #f0f4ff; /* 薄い青 */
}

/* 日付行全体を色付けしたい場合 */
.cxa-ec-day:has(.week-0){
  background: #fff7f7;
}
.cxa-ec-day:has(.week-6){
  background: #f6f8ff;
}
.cxa-ec-day.is-sun { background:#fff7f7; }
.cxa-ec-day.is-sat { background:#f6f8ff; }
.cxa-ec-day.is-holiday { background:#ffecec; }


/*カレンダー表示ここまで*/

/*絞込み検索用ここから*/
.cxa-ec-filter__row{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  align-items:center!important;
  margin: 1rem 0;
}

.cxa-ec-filter select,
.cxa-ec-filter input,
.cxa-ec-filter button,
.cxa-ec-filter a.button {
  font-size: 0.8rem;
  border: rgb(var(--accent-color) / .1) 1px solid;
  border-radius: 0.2rem;
}

.cxa-ec-filter select{
  padding: 0.5rem;
  background-color: rgb(var(--accent-color) / .01);
  cursor: pointer;
}

.cxa-ec-filter input {
  padding: 0.22rem 0.5rem;
}

.cxa-ec-filter button,
.cxa-ec-filter a.button{
  padding: 0.2rem 0.5rem;
}

.cxa-ec-filter button {
  background-color: rgb(var(--accent-color) / .8);
  color: #fff;
  font-weight: 600;
}
.cxa-ec-filter a.button{
  background-color: #f3f4f6;
  color: #555;
  font-weight: 600;
}

/*絞込み検索用ここまで*/

/*期間トグルここから*/
.cxa-ec-archive-controls {
  font-size: 0.8rem;
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  align-items: center;
  margin: 1rem auto!important;
}

.cxa-ec-archive-controls a.button {
  background-color: rgb(var(--accent-color) / .01);
  border: rgb(var(--accent-color) / .1) 1px solid;
  text-align: center;
  min-width: 9rem;
  padding: 0.2rem;
  border-radius: 0.2rem;
  cursor: pointer;
}

/*期間トグルここまで*/




@media (width <=36rem) {
  .event-addition__meta h3 {
    padding-bottom: 0.5rem;
  }

  /*カレンダー表示ここから*/
  
  .cxa-event-list-calendar{
    column-count: 1;
  }

  /*カレンダー表示ここまで*/

  .cxa-ec-filter__row select{
    box-sizing: border-box;
    width: calc(50% - .25rem); /* gap .5rem の半分を引く */
  }

.cxa-ec-archive-controls a.button {
    box-sizing: border-box;
    min-width: none;
    width: calc(50% - .25rem); /* gap .5rem の半分を引く */
}
}
@media (width >=36rem) {
  /* >= sm */
}

@media (width >=48rem) {
}

@media (width >=64rem) {
  .event-detail .columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    /* 好きな余白 */
  }

  .event-detail__map-frame {
    position: relative;
    width: 100%;
    padding-top: 60%;
    /* 4:3 */
  }

  .event-detail .cxa-ec-gallery-front {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }

  .laplab-event-list {
    grid-template-columns: repeat(3, 1fr);
  }

  .event-archive__item .meta h3.title {
    font-size: 1.8rem;
    margin: 1rem 0 0.5rem;
  }
}