

/* キャンペーンページ限定フォント */
body.campaign-page {
  font-family: 'Zen Maru Gothic', 'M PLUS Rounded 1c',
               'Hiragino Maru Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif !important;
}
body.campaign-page :where(p, a, li, h1, h2, h3, h4, h5, h6, .btn_04, .yoyaku-box){
  font-family: inherit !important;
}

/* 通常コンテンツボックス */
.normal-box5 {
  padding: 1em;
  margin: 30px 100px;
  background-color: #fff;
  border-radius: 10px;
  box-shadow: 4px 4px 6px gray;
}
@media (max-width: 768px) {
  .normal-box5 { margin: 20px 10px; }
}

/* 段落 */
.campaign-page .normal-box5 p,
.campaign-page p {
  font-size: 16px;
  line-height: 1.8;
}
@media (min-width: 1024px) {
  .campaign-page .normal-box5 p,
  .campaign-page p { font-size: 20px !important; }
}

/* 注釈 */
p.note {
  font-size: 12px !important;
  line-height: 1.4;
  color: #666;
  margin-top: 5px;
}
@media (max-width: 768px) {
  p.note { font-size: 8px !important; }
}

/* ボタンコンテナ */
.button-container {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  width: 80%;
  margin: 0 auto;
}
a.btn_04 {
  display: block;
  text-align: center;
  text-decoration: none;
  width: 400px;
  margin: 5px;
  padding: 1rem;
  font-weight: bold;
  border: 2px solid #D70413;
  background: #D70413;
  color: #fff;
  border-radius: 30px;
  transition: .3s;
  box-sizing: border-box;
}
a.btn_04:hover {
  background: #F08080;
  border-color: #F08080;
}
@media (min-width: 1024px) {
  .button-container a.btn_04 { font-size: 20px; margin: 5px 10px; }
}
@media (max-width: 768px) {
  .button-container { width: 100%; padding: 0 10px; }
  .button-container .btn_04 { width: 100%; margin: 0; }
}

/* TOPへボタン */
#toTopBtn {
  background-color: #8B0000;
  color: #fff;
  border: none;
  padding: 10px 20px;
  border-radius: 2px;
  font-size: 16px;
  cursor: pointer;
}

/* 予約ボックス */
.yoyaku-box {
  display: inline-block;
  padding: 10px;
  margin: 10px;
  width: 480px;
  color: #5d627b;
  background: #fff;
  border-top: solid 5px #5d627b;
  box-shadow: 0 3px 5px rgba(0,0,0,0.22);
}
@media (max-width: 768px) {
  .yoyaku-box { width: auto; max-width: 100%; margin: 10px 0; }
}
.yoyaku-box a { color: #004386; }
.yoyaku-box2 a { color: #191919; }
.yoyaku-box2 a:hover { color: red; }

/* ルームカード（ポップ版） */
.room-card {
  max-width: 960px;
  margin: 24px auto 48px;
  position: relative;
}
.room-card--pop {
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(135deg,#fffbf2 0%,#fff3fb 50%,#f2f7ff 100%);
  box-shadow: 0 16px 28px rgba(0,0,0,.12);
  border: 3px dotted rgba(255,182,193,.8);
}
.room-card--pop .room-card__media {
  background:#fff;
  padding: 14px;
  border-radius: 14px;
  box-shadow: 0 8px 18px rgba(255,105,180,.2);
}
.room-card--pop .room-card__media img {
  display:block; width:100%; border-radius:12px;
}
.room-card--pop .room-card__title {
  margin: 0 0 12px;
  padding: 10px 16px;
  text-align: center;
  font-weight: 900;
  color:#444;
  border-radius: 9999px;
  background: linear-gradient(90deg,#ffe4ec,#ffe8a3,#d9f7ff);
}
.room-card--pop .room-card__tag {
  position:absolute; right:16px; bottom:16px;
  padding: 6px 10px;
  font-size: 13px;
  font-weight:700;
  color:#fff;
  background: rgba(255,105,180,.75);
  border-radius: 999px;
}
.room-card--pop .room-card__bubble {
  margin-top: 12px;
  padding: 18px 16px;
  font-weight: 700;
  color: #555;
  background: #fff;
  border-radius: 16px;
  line-height: 1.8;
  box-shadow: 0 6px 12px rgba(0,0,0,.08);
}
.tape {
  position:absolute; width:110px; height:22px;
  background: repeating-linear-gradient(90deg,#ffd1e6 0 10px,#d8f1ff 10px 20px,#fff2b8 20px 30px);
  opacity:.9;
}
.tape--lt { left:-6px; top:-10px; transform: rotate(-8deg); }
.tape--rt { right:-6px; top:-14px; transform: rotate(10deg); }
@media (max-width: 768px){
  .room-card--pop { margin:16px 10px; padding:12px; }
  .room-card--pop .room-card__title { font-size:14px; }
  .room-card--pop .room-card__bubble { font-size:13px; padding:8px 12px; }
  .tape{ width:80px; height:18px; }
}



/* --- 壁紙ダウンロードカード --- */
.dl-card{
  max-width: 900px;
  width: 100%;              /* スマホではみ出さない */
  box-sizing: border-box;
  margin: 8px auto 16px;
  padding: 14px;
  border-radius: 14px;
  background:#fff;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  display:flex; gap:16px; align-items:center;
}
.dl-thumb{
  flex:0 0 220px;
  aspect-ratio: 9/16;
  border-radius:12px;
  overflow:hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,.12);
}
.dl-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.dl-body{ flex:1 1 auto; }
.dl-title{ font-weight:700; font-size:1.15rem; margin:2px 0 6px; }
.dl-meta{ color:#666; font-size:.9rem; margin:0 0 10px; }

.dl-actions{
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
}

.dl-actions .btn_04{
  width: clamp(220px, 60vw, 400px);
  box-sizing: border-box;
}

.dl-note{
  color:#777;
  font-size:.85rem;
  margin: 8px 0 0;
  text-align: center;
  flex-basis: 100%;
  word-break: break-word;
}

@media (max-width:600px){
  .dl-card{ flex-direction:column; text-align:center; padding: 12px; }
  .dl-thumb{ width:70%; max-width:320px; }
  .dl-actions{ width: 100%; padding: 0 8px; }
  .dl-actions .btn_04{
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
  }
  .dl-note{ padding: 0 4px; }
}
