:root { --ink:#211e19; --muted:#817a70; --gold:#a7864e; --line:#ddd7cb; --ivory:#f7f5ef; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--ink); font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { height:82px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid rgba(167,134,78,.22); }
.wordmark { font-family:Georgia,"Times New Roman",serif; font-size:19px; letter-spacing:.23em; }
.wordmark span { color:var(--gold); }
.site-header p { margin:0; color:var(--gold); font-family:Georgia,serif; font-size:11px; letter-spacing:.28em; }
.hero { background:#eef6f9; padding-bottom:20px; }
.map-wrap { position:relative; width:100%; margin:0 auto; overflow:hidden; line-height:0; }
.map-wrap picture,.map-wrap img { width:100%; height:auto; display:block; }
.spot { position:absolute; z-index:2; border:1px solid transparent; border-radius:10px; transition:background .25s ease,border-color .25s ease,box-shadow .25s ease; }
.spot span { position:absolute; width:1px; height:1px; overflow:hidden; }
.spot:hover,.spot:focus-visible { background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.85); box-shadow:0 0 0 5px rgba(255,255,255,.18); outline:none; }
.spot-01 { left:5.6%; top:36%; width:15.3%; height:14%; }
.spot-02 { left:33%; top:3.5%; width:14%; height:13%; }
.spot-03 { left:68.2%; top:6%; width:15.5%; height:13%; }
.spot-04 { left:81%; top:49%; width:16%; height:14%; }
.spot-05 { left:41.8%; top:59%; width:17%; height:13%; }
.map-hint { display:flex; align-items:center; justify-content:center; gap:12px; margin:18px 0 0; color:#59717b; font-size:10px; letter-spacing:.19em; }
.map-hint span { display:block; width:26px; height:1px; background:var(--gold); }
.intro { max-width:1180px; margin:0 auto; padding:clamp(100px,13vw,190px) 36px clamp(72px,9vw,120px); }
.section-label { margin:0 0 28px; color:var(--gold); font-family:Georgia,"Times New Roman",serif; font-size:12px; letter-spacing:.28em; }
.intro h2,.closing h2 { margin:0; font-family:Georgia,"Yu Mincho",serif; font-weight:400; letter-spacing:.02em; }
.intro h2 { font-size:clamp(42px,6vw,82px); line-height:1.28; }
.intro-copy { margin:44px 0 0; color:var(--muted); font-family:"Yu Mincho",YuMincho,serif; font-size:clamp(15px,1.6vw,19px); line-height:2.2; }
.mobile-break { display:none; }
.guide-grid { max-width:1180px; margin:0 auto; padding:0 36px clamp(110px,14vw,190px); display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.guide-card { min-height:510px; padding:clamp(38px,5vw,70px); display:flex; flex-direction:column; justify-content:space-between; background:#fff; border-bottom:1px solid var(--line); transition:background .3s ease; }
.guide-card:nth-child(odd) { border-right:1px solid var(--line); }
.guide-card:last-child { grid-column:1/-1; min-height:390px; }
.guide-card:hover { background:var(--ivory); }
.card-top { display:flex; justify-content:space-between; align-items:flex-start; }
.card-number,.card-arrow { color:var(--gold); font-family:Georgia,serif; }
.card-number { font-size:15px; letter-spacing:.12em; }
.card-arrow { font-size:25px; font-weight:300; transition:transform .3s ease; }
.guide-card:hover .card-arrow { transform:translate(4px,-4px); }
.card-eyebrow { margin:0 0 20px; color:var(--gold); font-family:Georgia,serif; font-size:11px; letter-spacing:.24em; }
.guide-card h3 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(28px,3vw,44px); font-weight:400; line-height:1.25; }
.card-copy { margin:30px 0 0; color:var(--muted); white-space:pre-line; font-family:"Yu Mincho",YuMincho,serif; font-size:15px; line-height:2; }
.card-cta { padding-top:36px; font-size:13px; letter-spacing:.04em; }
.card-cta b { padding-left:8px; color:var(--gold); font-weight:400; }
.closing { padding:clamp(110px,15vw,210px) 36px; text-align:center; background:var(--ivory); }
.closing h2 { font-size:clamp(42px,6.5vw,88px); line-height:1.35; }
.closing>p:not(.section-label) { margin:42px 0 0; color:var(--muted); font-family:"Yu Mincho",YuMincho,serif; font-size:15px; letter-spacing:.08em; }
.closing a { display:inline-block; margin-top:66px; padding:18px 4px; border-bottom:1px solid var(--gold); font-size:13px; letter-spacing:.08em; }
.closing a span { padding-left:34px; color:var(--gold); }
.business-summary { max-width:1180px; margin:0 auto; padding:72px 36px; }
.business-summary p { max-width:940px; margin:0; color:var(--muted); font-size:12px; line-height:2.25; letter-spacing:.035em; }
.business-summary a { color:#5f5547; border-bottom:1px solid rgba(167,134,78,.45); }
footer { min-height:150px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); font-family:Georgia,serif; letter-spacing:.2em; }
footer span { font-size:14px; }
footer small { color:var(--muted); font-size:9px; }

@media (max-width:700px) {
  .site-header { height:66px; padding:0 20px; }
  .wordmark { font-size:15px; }
  .site-header p { font-size:8px; }
  .hero { padding-bottom:14px; }
  .map-wrap { overflow:hidden; }
  .map-wrap img { width:100%; max-width:100%; }
  .spot-01 { left:59.5%; top:18.2%; width:23.5%; height:6.8%; }
  .spot-02 { left:8.5%; top:33.7%; width:24%; height:6.2%; }
  .spot-03 { left:75%; top:53.2%; width:23%; height:6.7%; }
  .spot-04 { left:6%; top:62.7%; width:24%; height:7%; }
  .spot-05 { left:69%; top:73.8%; width:25.5%; height:6.5%; }
  .map-hint { margin-top:14px; }
  .intro { padding:98px 25px 72px; }
  .mobile-break { display:block; }
  .intro-copy { margin-top:32px; }
  .guide-grid { padding:0 20px 100px; grid-template-columns:1fr; border-top:1px solid var(--line); }
  .guide-card,.guide-card:last-child { grid-column:auto; min-height:410px; padding:42px 25px; border-right:0!important; }
  .card-copy { margin-top:24px; }
  .closing { padding:110px 25px; }
  .closing>p:not(.section-label) { line-height:2; }
  .closing a { margin-top:50px; }
  .business-summary { padding:58px 25px; }
  .business-summary p { font-size:11px; line-height:2.2; }
  footer { min-height:120px; padding:0 22px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; } }
