@charset "UTF-8";
body { -webkit-background-size: cover; background-size: cover; background-position: center; background-attachment: fixed; background-color: #f9f8f4; }

body::before { position: fixed; top: 0; left: 0; z-index: -1; width: 100vw; height: 100vh; background-image: url("../../images/event/stamprally2025/bg_sp.jpg"); background-repeat: no-repeat; -webkit-background-size: cover; background-size: cover; background-color: #f9f8f4; background-position: center; content: ""; }

h1, .h1 { font-size: 28px; font-size: 1.75rem; }

h2, .h2 { font-size: 24px; font-size: 1.5rem; }

h3, .h3 { font-size: 22px; font-size: 1.375rem; }

h4, .h4 { font-size: 20px; font-size: 1.25rem; }

h5, .h5 { font-size: 18px; font-size: 1.125rem; }

h6, .h6 { font-size: 16px; font-size: 1rem; }

img { max-width: 100% !important; height: auto; }

.text-truncate { overflow: inherit; text-overflow: inherit; white-space: nowrap; }

.lp-header { min-height: 100vh; position: relative; }

.lp-header .container { min-height: 100vh; position: relative; }

.lp-header .main-catch { position: absolute; left: 50%; top: 50%; min-width: 340px; transform: translate(-50%, -50%); }

.lp-header .main-catch h1 img { max-height: 60vh !important; }

.lp-header-sm { height: 600px; position: relative; }

.lp-header-sm .main-catch { margin: auto; }

.bl-date { background-color: rgba(0, 0, 0, 0.3); border-radius: 9999px; border: solid 1px #fff; padding: 0 10px; text-align: center; }

.bl-date img { max-width: 240px !important; }

.section { padding-top: 3rem; padding-bottom: 3rem; padding-left: 1rem; padding-right: 1rem; }

.bg-main { background-color: #ea6100; }

.bg-sub { background-color: #ffc603; }

.bg-accent { background-color: #78b138; }

.bg-b50 { background-color: rgba(0, 0, 0, 0.5); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }

.bg-b75 { background-color: rgba(0, 0, 0, 0.75); }

.bg-main30 { background-color: rgba(234, 97, 0, 0.3); }

.bg-main50 { background-color: rgba(234, 97, 0, 0.5); }

.bg-main80 { background-color: rgba(234, 97, 0, 0.8); color: #fff; backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }

.bg-sub75 { background-color: rgba(255, 198, 3, 0.75); color: #000; }

.bg-yellow50 { background-color: rgba(255, 193, 7, 0.5); }

.bg-accent75 { background-color: rgba(120, 177, 56, 0.75); }

.btn-white { background: #fff; border: solid 1px #333; color: #333; border-radius: 999px; }

.badge-num { font-size: 2rem; background: #78b138; margin-right: 10px; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); }

.fukidashi { position: relative; padding: 0.5em 0.75em; background-color: #fff; border: 1px solid #ccc; border-radius: 6px; }

.fukidashi.bl::before, .fukidashi.bl::after { position: absolute; top: 100%; left: 30px; content: ""; height: 0; width: 0; border: 10px solid transparent; }

.fukidashi.bl::before { border-top: 15px solid #ccc; }

.fukidashi.bl::after { margin-top: -2px; border-top: 15px solid #fff; }

.list-recipe { list-style: none; padding-left: 0; }

.list-recipe li { padding-left: 2em; position: relative; padding-bottom: 0.5em; border-bottom: dashed 1px #efefef; margin-bottom: 0.5em; }

.list-recipe li .lm { background-color: #ea6100; display: block; text-align: center; width: 1.5em; line-height: 1.5; border-radius: 50%; position: absolute; left: 0; top: 0; }

.lp-footer { background-color: #ffc603; }

.table-schedule img { height: 90vh; width: auto !important; max-width: 1600px !important; }

.table-recipe td { text-align: right; }

/* タイトル 罫囲 */
.ttl-border { position: relative; padding: 0.25em 1em 0.25em 1.5em; border: 2px solid #ffc603; border-radius: 1rem; }

/* タイトル 罫囲プラス */
.ttl-border-ac { position: relative; padding: 0.25em 1em 0.25em 1.5em; border: 1px solid #ccc; }

.ttl-border-ac::after { position: absolute; top: 0.25em; left: 0.5em; content: ""; width: 6px; height: -webkit-calc(100% - 0.5em); height: calc(100% - 0.5em); background-color: #78b138; border-radius: 4px; }

/* タイトル 左右ライン */
.ttl-line-side { overflow: hidden; text-align: center; }

.ttl-line-side span { position: relative; display: inline-block; margin: 0 2.5em; padding: 0 1em; text-align: left; }

.ttl-line-side span::before, .ttl-line-side span::after { position: absolute; top: 50%; content: ""; width: 400%; height: 1px; background-color: #78b138; }

.ttl-line-side span::before { right: 100%; }

.ttl-line-side span::after { left: 100%; }

/* タイトル 左罫 */
.ttl-border-l { padding: 0.25em 0 0.25em 0.5em; border-left: 5px solid #78b138; }

/* タイトル 下罫 */
.ttl-border-btm { padding: 0.25em 0 0.25em; border-bottom: 2px solid #ea6100; }

.list-lm { list-style: none; padding: 0; }

.list-lm li { padding-left: 1.1em; position: relative; }

.list-lm li .lm { color: crimson; position: absolute; left: 0; top: 0; }

.list-links-icn { list-style: none; padding: 0; display: flex; }

.list-links-icn li { flex: 0 0 calc(40px + 2rem); padding-left: 1rem; padding-right: 1rem; }

.spot { display: flex; }

.spot-img { width: 486px; }

.spot-text h3 { color: #fff; font-weight: normal; font-size: 24px; }

.spot-text p { color: #fff; font-size: 18px; }

a { text-decoration: none; }

a .spot-button { background-color: #fff; font-size: 16px; color: black; width: 110px; height: 40px; padding: 7px; }

a .spot-button:hover { color: #898989; }

a { text-decoration: none; }

a .access-button { background-color: #fff; padding: 15px 15px; font-size: 16px; color: black; text-decoration: none; text-align: center; border-radius: 50px; border: solid 1px #000; border-bottom: solid 3px #000; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3); }

a .access-button:hover { color: #898989; }

.gift-text p { color: red; font-weight: bold; max-width: fit-content; }

.gift-contener { display: flex; }

.gift-contener div img { width: 255px; aspect-ratio: 1.3; object-fit: cover; }

/*  右サイド固定リンクボタン */
.sidemenu-link { position: fixed; bottom: 0; left: 0; right: 0; width: 100%; display: flex; flex-direction: row; gap: 12px; padding: 8px; background: rgba(255, 255, 255, 0.9); /* 背景を半透明にして見やすく */ box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.1); z-index: 9999; }

.side-linkbtn { flex: 1; /* 横並びで均等幅 */ display: inline-block; padding: 12px 8px; background-color: #ff7f27; /* オレンジ */ color: #fff; text-decoration: none; font-size: 13px; font-weight: bold; border-radius: 9999px; text-align: center; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); transition: background-color 0.3s; }

.side-linkbtn:hover { background-color: #e56b1f; }

.Linebtn { background-color: #06c755; /* LINEカラー */ }

.Linebtn:hover { background-color: #05a745; }

/* === PC（768px以上で右下に縦並び）=== */

@media screen and (min-width: 992px) { body::before { background-image: url("../../images/event/stamprally2025/stamprally2025_bg.jpg"); background-position: center; background-size: auto 100%; -webkit-background-size: cover; background-size: cover; } h1, .h1 { font-size: 32px; font-size: 2rem; } h2, .h2 { font-size: 32px; font-size: 2rem; } h3, .h3 { font-size: 24px; font-size: 1.5rem; } h4, .h4 { font-size: 22px; font-size: 1.375rem; } h5, .h5 { font-size: 20px; font-size: 1.25rem; } h6, .h6 { font-size: 18px; font-size: 1.125rem; } .bl-date img { max-width: 320px !important; } .lg-lead { font-size: 1.25rem; font-weight: 300; } .section { padding-left: 2rem; padding-right: 2rem; } .table-schedule img { max-width: 100% !important; height: auto !important; } }

@media (min-width: 768px) { .sidemenu-link { flex-direction: column; bottom: 20px; right: 20px; left: auto; width: auto; padding: 0; background: none; box-shadow: none; }
  .side-linkbtn { width: 200px; /* 固定幅にしてボタン感を強める */ font-size: 14px; border-radius: 9999px; margin-top: 10px; font-size: 20px; }
  .side-linkbtn:first-child { margin-top: 0; } }
