/* Owner-selected gallery: upright photos and width-responsive arched halves. */
.hero-visual .arch{width:min(100%,300px);height:auto;aspect-ratio:5/9;margin-inline:auto;padding:0;border:0;border-radius:150px 150px 0 0;overflow:visible;perspective:1800px}
.hero-visual .photo-aperture{position:absolute;inset:0;border-radius:inherit;overflow:hidden}
.hero-visual .arch .gallery-photo{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;opacity:0;transition:opacity 800ms ease;pointer-events:none}
.hero-visual .arch .gallery-photo.is-current{opacity:1}
.hero-visual .window-shutters{overflow:visible;perspective:none;transform-origin:50% 50%;transform-style:preserve-3d;backface-visibility:visible}
.hero-visual .window-pane{top:0;display:block!important;visibility:visible!important;opacity:var(--wing-opacity,0);backface-visibility:visible;transition:none;animation:none!important}
.hero-visual .window-left,.hero-visual .window-right{transform:scaleX(var(--wing-scale,0))}
.hero-visual .window-pane .frame{stroke-width:5}
.hero-visual .window-surround{transform-origin:center}
.hero-visual.frame-turn .window-surround{animation:gallery-frame-turn 3.2s cubic-bezier(.45,0,.55,1) both}
@keyframes gallery-frame-turn{from{transform:rotateY(0)}to{transform:rotateY(360deg)}}
.photo-credit{font-size:11px;line-height:1.5;min-height:33px;padding-top:15px;color:#555}
.photo-credit a{text-decoration:underline;text-underline-offset:3px}
.hero-visual .photo-caption{margin-top:7px}
.gallery-controls{display:flex;align-items:center;gap:12px;margin-top:25px;font-size:11px}
.gallery-controls[hidden]{display:none}
.gallery-controls button{border:1px solid #ccc;background:white;color:#111;font:inherit;border-radius:30px;padding:7px 12px;cursor:pointer}
.gallery-controls button:disabled{opacity:.4;cursor:default}
.gallery-controls button:focus-visible{outline:2px solid #111;outline-offset:3px}
.gallery-controls .gallery-pause{margin-left:auto}
.window-replay{margin-top:6px}
.opening-hours{margin-top:24px;padding-top:18px;border-top:1px solid #ccc}
.opening-hours h3{font-size:16px;margin:0 0 12px}
.opening-hours dl{font-size:14px;margin:0 0 12px;max-width:330px}
.opening-hours dl>div{display:flex;justify-content:space-between;gap:20px;padding:3px 0}
.opening-hours dd{margin:0}
.guest-notes{padding-bottom:85px}.guest-notes h2{font-size:42px}
.guest-quotes{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:32px}
.guest-quotes blockquote{margin:0;padding-top:20px;border-top:1px solid #ccc}
.guest-quotes p{font-size:22px;line-height:1.5;margin:0 0 18px;max-width:440px}
.guest-quotes cite{font-style:normal;font-size:12px;color:#555}
.guest-quotes cite a{text-decoration:underline;text-underline-offset:3px}
.window-replay{display:none!important}
@media(max-width:800px){.guest-quotes{gap:30px}.photo-credit{min-height:48px}}
@media(max-width:580px){.guest-quotes{grid-template-columns:1fr;gap:28px}.guest-notes{padding-bottom:50px}.guest-notes h2{font-size:36px}.photo-credit{min-height:33px}.hero-visual .photo-caption{font-size:7px;gap:8px}}
.motion-off .hero-visual.frame-turn .window-surround{animation:none;transform:none}
@media(prefers-reduced-motion:reduce){.hero-visual.frame-turn .window-surround{animation:none!important;transform:none!important}}
