:root { --ink:#17303d; --muted:#65777f; --line:#dce4e5; --paper:#f8faf9; --white:#fff; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Noto Sans JP",system-ui,-apple-system,sans-serif; font-size:16px; line-height:1.8; }
a { color:inherit; }
.hero { position:relative; min-height:76vh; height:min(880px,82vw); overflow:hidden; background:#94bbd0; }
.hero > img { width:100%; height:100%; object-fit:cover; object-position:center center; display:block; }
.shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,38,57,.52) 0%,rgba(8,38,57,.18) 52%,rgba(8,38,57,.04) 100%),linear-gradient(0deg,rgba(9,31,43,.18),transparent 38%); }
.hero-content { position:absolute; top:6%; left:max(4.5vw,28px); width:min(800px,86vw); color:var(--white); text-shadow:0 2px 24px rgba(9,31,43,.28); }
.place { display:grid; gap:1px; margin:0 0 14px; font-size:.78rem; font-weight:600; letter-spacing:.22em; line-height:1.55; }
h1 { margin:0; font-family:"Shippori Mincho",serif; font-size:clamp(2.7rem,6vw,5.2rem); font-weight:500; line-height:1.05; letter-spacing:-.035em; }
.message { position:absolute; top:50%; left:50%; width:min(90vw,900px); margin:0; color:var(--white); font-family:"Shippori Mincho",serif; font-size:clamp(1.15rem,2.5vw,1.8rem); font-weight:500; letter-spacing:.08em; text-align:center; text-shadow:0 2px 24px rgba(9,31,43,.34); transform:translate(-50%,-50%); }
.scroll-hint { position:absolute; right:max(3vw,20px); bottom:28px; margin:0; color:rgba(255,255,255,.9); font-size:.68rem; font-weight:600; letter-spacing:.2em; writing-mode:vertical-rl; }
.information { max-width:1120px; margin:0 auto; padding:92px 34px 70px; }
.intro { display:grid; grid-template-columns:.42fr 1.58fr; gap:50px; align-items:start; margin-bottom:72px; }
.section-label { color:#50758a; font-size:.76rem; font-weight:600; letter-spacing:.19em; }
.intro > p:last-child { margin:0; font-family:"Shippori Mincho",serif; font-size:clamp(1rem,1.7vw,1.35rem); line-height:1.8; white-space:nowrap; }
.details { margin:0; border-top:1px solid var(--line); }
.details > div { display:grid; grid-template-columns:.42fr 1.58fr; gap:50px; padding:24px 0; border-bottom:1px solid var(--line); }
.details dt { color:var(--muted); font-size:.9rem; }
.details dd { margin:0; font-weight:500; }
.location-line { display:block; }
.details a { text-underline-offset:5px; text-decoration-thickness:1px; }
.details a:hover { color:#367293; }
.links { display:flex; flex-wrap:wrap; gap:12px 30px; margin-top:48px; }
.links a { padding-bottom:3px; border-bottom:1px solid #9bafb7; font-size:.9rem; text-decoration:none; }
.links a:hover { border-color:var(--ink); }
footer { display:flex; justify-content:space-between; max-width:1120px; margin:0 auto; padding:24px 34px 34px; color:var(--muted); font-size:.78rem; }
footer a { text-decoration:none; }
@media (max-width:700px) {
  .hero { min-height:620px; height:88vh; }
  .hero > img { object-position:58% center; }
  .shade { background:linear-gradient(90deg,rgba(7,31,46,.46),rgba(7,31,46,.06)); }
  .hero-content { top:5%; left:24px; width:calc(100% - 48px); }
  h1 { font-size:clamp(2.45rem,12vw,3.9rem); line-height:1.08; }
  .message { top:51%; width:calc(100% - 48px); line-height:1.7; }
  .information { padding:40px 24px 30px; }
  .intro,.details > div { grid-template-columns:1fr; gap:8px; }
  .intro { gap:4px; margin-bottom:30px; }
  .intro > p:last-child { width:calc(100vw - 32px); margin-left:-8px; font-size:clamp(.8rem,3.6vw,1rem); line-height:1.45; letter-spacing:-.02em; }
  .details > div { gap:2px; padding:13px 0; }
  .details dd { line-height:1.5; }
  .details dt { font-size:.78rem; }
  .links { align-items:flex-start; flex-direction:column; gap:8px; margin-top:24px; }
  footer { align-items:flex-start; flex-direction:column; gap:8px; padding:20px 24px 30px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
