.guide-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2vw,32px); padding-bottom:28px; }
.guide-card a { display:block; }
.card-visual { aspect-ratio:1.55; overflow:hidden; background:#e5e9dd; }
.card-visual img,.article-photo img { width:100%; height:100%; object-fit:cover; }
.guide-card-copy { padding:18px 0 12px; }
.guide-card h2 { font-size:clamp(27px,2.7vw,37px); line-height:1.06; margin:10px 0; }
.guide-card h2 svg { width:17px; height:17px; }
.guide-card a:hover h2 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.guide-card-copy > p:last-child { font-size:15px; line-height:1.5; color:var(--body); }
.venue-addresses { display:grid; grid-template-columns:1fr 1fr; margin:0; color:#fbf7eb; }
.venue-addresses > div { background:#1e534c; padding:clamp(14px,3.5vw,48px); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.venue-addresses > div+div { background:#90472e; }
.venue-addresses strong { font:500 clamp(28px,4.6vw,70px)/1.03 var(--serif); margin:9px 0; }
.venue-addresses span,.venue-addresses small { font-size:clamp(12px,1.2vw,16px); }
.card-visual .venue-addresses { height:100%; }
.card-visual .venue-addresses > div { padding:clamp(9px,1.5vw,22px); }
.card-visual .venue-addresses strong { font-size:clamp(22px,2.4vw,36px); }
.card-visual .venue-addresses span,.card-visual .venue-addresses small { font-size:clamp(10px,.95vw,13px); }
.article-wrap { padding-block:28px 55px; }
.article-intro { max-width:900px; }
.article-intro h1 { font-size:clamp(44px,5.8vw,82px); letter-spacing:-.041em; line-height:1.02; margin:13px 0 16px; }
.article-intro > p:last-child,.article-text p { font-size:clamp(16px,1.22vw,18px); line-height:1.64; color:var(--body); }
.article-intro > p:last-child { max-width:780px; }
.article-photo,.article-wrap article > .venue-addresses { margin:24px 0 26px; }
.article-photo img { height:clamp(225px,31vw,425px); }
.article-photo figcaption { font-size:12px; color:var(--body); padding-top:7px; }
.article-columns { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(220px,.8fr); gap:clamp(32px,7vw,100px); }
.article-text section { margin:0 0 25px; }
.article-text h2 { font-size:clamp(28px,3vw,42px); line-height:1.07; margin:0 0 10px; }
.article-text p + p { margin-top:12px; }
.article-links { border-top:2px solid var(--ink); align-self:start; }
.article-links section { border-bottom:1px solid var(--line); padding:14px 0; }
.article-links h2 { font:600 15px var(--sans); }
.article-links ul { margin:7px 0 0; padding:0; list-style:none; }
.article-links a { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; font-size:14px; }
.article-links svg { width:14px; height:14px; }
.article-links a:hover { text-decoration:underline; }
@media (max-width:760px) {
 .guide-cards,.article-columns { grid-template-columns:1fr; }
 .guide-cards { gap:26px; }
 .guide-card-copy { padding:13px 0 0; }
 .card-visual .venue-addresses strong { font-size:clamp(29px,6vw,42px); }
 .card-visual .venue-addresses > div { padding:14px; }
 .card-visual .venue-addresses span,.card-visual .venue-addresses small { font-size:12px; }
 .article-wrap { padding-block:22px 36px; }
 .article-intro h1 { font-size:clamp(37px,9vw,58px); }
 .article-columns { gap:2px; }
 .article-photo img { height:clamp(190px,56vw,310px); }
 .article-wrap article > .venue-addresses > div { min-height:135px; }
}
.guide-card { border-bottom:1px solid var(--line); }
.guide-card .card-visual img { transition:transform .35s; }
.guide-card a:hover .card-visual img { transform:scale(1.025); }
.venue-addresses > div { position:relative; overflow:hidden; }
.venue-addresses > div::after { content:""; pointer-events:none; position:absolute; width:65%; height:130%; right:-41%; bottom:-70%; border:3px double #fff4ce36; border-radius:50%; box-shadow:0 0 0 9px #fff4ce18,0 0 0 12px #fff4ce22,0 0 0 24px #fff4ce15; }
.venue-addresses > div + div::after { border-radius:0; transform:rotate(25deg); box-shadow:-12px 0 0 #fff4ce12,-18px 0 0 #fff4ce20,-37px 0 0 #fff4ce12; }
@media(prefers-reduced-motion: reduce) { .guide-card .card-visual img { transition:none; } }
