.visit-content{max-width:1100px;margin:52px auto 80px;padding:0 36px;overflow-wrap:break-word}
.visit-content>h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:34px;font-weight:600;line-height:1.6;margin:0 0 38px}
.visit-about .visit-content{max-width:1000px}.access-map{margin-bottom:34px}.access-map iframe{display:block;width:100%;height:350px;border:1px solid var(--line);background:#edf1e8}.access-map p{font-size:14px;margin:12px 0}
.shop-table{width:100%;border-collapse:collapse}.shop-table th,.shop-table td{border-bottom:1px solid var(--line);padding:23px 20px;text-align:left;vertical-align:top;font-size:16px;line-height:2}
.shop-table th{width:175px;font-weight:600}.shop-table td{overflow-wrap:anywhere}.shop-table tr:first-child{border-top:1px solid var(--line)}
.shop-table a{font-weight:600}.visit-related{display:flex;flex-wrap:wrap;gap:12px 30px;font-size:15px;margin-top:35px}
.album-nav{display:flex;flex-wrap:wrap;gap:10px 28px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:35px;font-size:15px}
.album-nav a{text-decoration:none}.album-nav a[aria-current=page]{font-weight:650;text-decoration:underline}
.album-section{padding:0 0 42px;margin:0 0 36px;border-bottom:1px solid var(--line)}.album-section h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:26px;margin:0 0 22px}.album-section h2 a{text-decoration:none}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery-item{margin:0;min-width:0}.photo-open{display:block}.photo-open img{display:block;width:100%;height:auto;transition:opacity .15s}.photo-open:hover img{opacity:.9}
.album-photos{max-width:900px;margin:0 auto}.album-photos .gallery-item{margin:0 0 38px}.album-photos .gallery-item:last-child{margin:0}.gallery-item figcaption{font-size:14px;margin-top:12px}
.photo-dialog{max-width:calc(100vw - 40px);width:1100px;max-height:calc(100dvh - 30px);padding:18px 22px;background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.photo-dialog::backdrop{background:rgba(18,32,25,.88)}.photo-toolbar,.photo-controls{display:flex;gap:20px;align-items:center;justify-content:space-between}.photo-toolbar p{margin:0;font-size:14px}.photo-dialog button{background:transparent;border:1px solid #bac5b5;min-height:44px;padding:8px 14px;font:inherit}.photo-controls{margin-top:14px}.photo-full{display:block;width:100%;height:calc(100dvh - 200px);object-fit:contain;margin:16px auto 0}.photo-dialog button:disabled{opacity:.35;cursor:default}
body.photo-viewing{overflow:hidden}
@media(max-width:760px){
 .visit-content{margin:30px auto 55px;padding:0 22px}.visit-content>h1{font-size:26px;margin-bottom:26px}.access-map iframe{height:300px}
 .shop-table,.shop-table tbody,.shop-table tr,.shop-table th,.shop-table td{display:block}.shop-table tr{padding:18px 0;border-bottom:1px solid var(--line)}.shop-table th{width:auto;border:0;padding:0 0 8px;font-size:15px}.shop-table td{border:0;padding:0;font-size:15px;line-height:2}
 .album-nav{gap:8px 20px;font-size:14px;margin-bottom:28px}.album-section h2{font-size:23px}.album-section{padding-bottom:28px;margin-bottom:26px}
 .photo-grid{grid-template-columns:1fr;gap:18px}.album-photos .gallery-item{margin-bottom:25px}.visit-related{font-size:14px;gap:12px 23px}
 .photo-dialog{padding:12px;max-width:calc(100vw - 16px);width:100%;max-height:calc(100dvh - 16px)}.photo-toolbar p{font-size:12px}.photo-dialog button{font-size:14px;padding:8px 10px}.photo-full{height:calc(100dvh - 190px)}
}
@media(prefers-reduced-motion:reduce){.photo-open img{transition:none}}
.visit-page .visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
