/* デジタルシティえひめ イルミネーション特集 2026-2027 */
:root{
  --night:#1a2244;      /* 冬の夜空 */
  --night-2:#26305c;
  --bulb:#f5c35b;       /* 電球の暖色 */
  --frost:#a9d6dc;      /* 冷たい光 */
  --paper:#f5f6fa;
  --ink:#1f2638;
  --muted:#5b6377;
  --line:#d9dce6;
  --tbd:#8a5a00;
  --tbd-bg:#fff4dc;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  font-size:16px;line-height:1.85}
a{color:#2a4fa8}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--bulb);outline-offset:2px}

.crumb{background:var(--night);color:#c9cde0;font-size:13px;padding:10px 20px}
.crumb a{color:#e4e7f3}

/* ヒーロー */
.hero{position:relative;background:radial-gradient(120% 90% at 50% 0%,var(--night-2) 0%,var(--night) 70%);
  color:#fff;padding:64px 20px 56px;text-align:center;overflow:hidden}
.hero.small{padding:52px 20px 40px}
.garland{position:absolute;top:0;left:0;width:100%;height:60px}
.garland path{fill:none;stroke:#0e1430;stroke-width:2}
.garland .b{fill:#4a4f6b;animation:light .5s ease-out forwards;animation-delay:calc(var(--i) * 70ms + 200ms)}
.garland .b:nth-child(3n){--c:var(--frost)}
@keyframes light{to{fill:var(--c,var(--bulb));filter:drop-shadow(0 0 6px var(--c,var(--bulb)))}}
@media (prefers-reduced-motion:reduce){.garland .b{animation:none;fill:var(--bulb)}}
.season{margin:28px 0 8px;color:var(--frost);letter-spacing:.2em;font-size:15px}
.hero h1{font-family:"Shippori Mincho B1",serif;font-weight:800;margin:0;line-height:1.25;
  font-size:clamp(40px,8vw,76px);letter-spacing:.04em;text-shadow:0 0 28px rgba(245,195,91,.35)}
.hero.small h1{font-size:clamp(24px,4.6vw,38px);max-width:22em;margin:0 auto;text-wrap:balance;word-break:auto-phrase}
.intro{max-width:34em;margin:22px auto 0;color:#dfe3f1}
.checked{margin:16px 0 0;font-size:13px;color:#aab0c8}

.wrap{max-width:960px;margin:0 auto;padding:40px 20px 24px}
h2{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:26px;margin:48px 0 18px;
  padding-left:14px;border-left:4px solid var(--bulb)}
section:first-child h2{margin-top:8px}

/* 絞り込み */
.filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.filter button{font:inherit;font-size:15px;padding:6px 18px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--ink);cursor:pointer}
.filter button[aria-pressed="true"]{background:var(--night);border-color:var(--night);color:#fff}

/* 一覧 */
.spots{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.spot a{display:grid;grid-template-columns:7.5em 1fr auto;gap:20px;align-items:start;padding:22px 4px;
  border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.spot a:hover .nm{text-decoration:underline}
.where{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:20px;line-height:1.3}
.where small{display:block;font-family:inherit;font-weight:400;font-size:13px;color:var(--muted);margin-top:4px}
.nm{display:block;font-weight:700;font-size:18px;line-height:1.5;color:#1d3a86}
.lead{display:block;color:var(--muted);font-size:15px;margin-top:6px;max-width:40em}
.facts{display:flex;flex-direction:column;gap:2px;margin-top:10px;font-size:15px}
.facts b{display:inline-block;min-width:3.2em;color:var(--muted);font-weight:400}
.st{font-size:13px;padding:3px 10px;border-radius:4px;white-space:nowrap;align-self:start}
.st.ok{background:#e3f3e8;color:#1e6b38}
.st.plan{background:#e6efff;color:#2a4fa8}
.st.tbd{background:var(--tbd-bg);color:var(--tbd)}
.hero .st{display:inline-block;margin:16px 0 0}

/* 表 */
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;background:#fff;font-size:15px}
th,td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.quick{min-width:720px}
.quick thead th{background:var(--night);color:#fff;font-weight:700}
.quick tbody th,.quick td:nth-child(2){white-space:nowrap}
.info th{width:9em;background:#eef0f6;font-weight:700;white-space:nowrap}
td.tbd{color:var(--tbd);background:var(--tbd-bg)}

.leadtxt{font-size:17px;max-width:40em;margin:0 0 8px}
.note{font-size:14px;color:var(--muted);margin-top:12px}

/* FAQ */
.faq details{border-bottom:1px solid var(--line);padding:14px 4px}
.faq summary{cursor:pointer;font-weight:700}
.faq p{margin:10px 0 0;color:var(--muted)}

/* 前後リンク */
.pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:40px 0 16px}
.pn a{display:block;padding:14px 16px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink)}
.pn a small{display:block;color:var(--muted);font-size:13px}
.pn .next{text-align:right}
.back{text-align:center}

.foot{background:var(--night);color:#c9cde0;font-size:14px;padding:28px 20px;text-align:center;margin-top:40px}
.foot p{max-width:46em;margin:0 auto 8px}
.foot a{color:#fff}

@media (max-width:640px){
  .spot a{grid-template-columns:1fr;gap:8px}
  .where{font-size:18px}
  .where small{display:inline;margin-left:8px}
  .st{justify-self:start}
  .info th{width:6.5em}
}

/* 写真 */
.spot a{grid-template-columns:170px 7em 1fr auto}
.th{display:block;width:170px;height:auto;aspect-ratio:34/26;align-self:start;object-fit:cover;border-radius:3px;background:var(--night)}
.th.noimg{background:radial-gradient(circle at 30% 35%,rgba(245,195,91,.55) 0 3px,transparent 4px),
  radial-gradient(circle at 62% 55%,rgba(169,214,220,.6) 0 3px,transparent 4px),
  radial-gradient(circle at 45% 75%,rgba(245,195,91,.45) 0 2px,transparent 3px),var(--night)}
.mainph{margin:0 0 24px}
.mainph img{display:block;width:100%;height:auto;border-radius:4px}
.mainph figcaption,.gal+.note{font-size:13px;color:var(--muted);margin-top:6px}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.gal img{display:block;width:100%;height:auto;border-radius:4px}
@media (max-width:640px){
  .spot a{grid-template-columns:1fr}
  .th{width:100%;max-width:340px}
}
