/* Existing brand: cream #faf8f3, burgundy #790b0b, Pretendard, rounded photos.
   Preservation mode. DESIGN_VARIANCE 5 / MOTION_INTENSITY 3 / VISUAL_DENSITY 4.
   The original compiled CSS is retained; these rules add accessible static UI. */
:root { color-scheme:light; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { background:var(--background); color:var(--foreground); }
[hidden] { display:none !important; }
a, button, summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible, button:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline:3px solid #790b0b; outline-offset:5px; }
.hero-content a:focus-visible { outline-color:white; }
button, summary { cursor:pointer; }
.skip-link { position:fixed; top:8px; left:8px; transform:translateY(-160%); padding:12px 20px; z-index:100; background:#fff; color:#790b0b; }
.skip-link:focus { transform:none; }
.site-header > div { padding-top:14px; padding-bottom:14px; min-height:70px; }
.site-header img { width:50px; height:auto; }
.mobile-menu { display:none; }
.mobile-menu summary { list-style:none; padding:12px; border:1px solid var(--color-stone-dark); border-radius:8px; font-size:14px; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu nav { position:absolute; right:16px; top:66px; min-width:220px; padding:10px; background:var(--background); border:1px solid var(--color-stone-dark); border-radius:12px; box-shadow:0 8px 20px #2a242015; }
.mobile-menu nav a { display:block; padding:12px 16px; border-radius:6px; }
.mobile-menu nav a:hover { background:var(--color-stone); }
.hero-photo { position:relative; width:100%; height:min(590px,72svh); min-height:450px; }
.hero-content { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; gap:20px; padding:48px; }
.hero-heading { color:#faf8f3; font-size:clamp(30px,4.7vw,58px); letter-spacing:-.055em; font-weight:800; line-height:1.2; word-break:keep-all; }
.hero-heading > span { display:block; }
.hero-description { color:#faf8f3; font-size:18px; line-height:1.65; white-space:pre-line; max-width:40ch; }
.hero-content > span { text-shadow:0 1px 8px #0008; }
.hero-content a { white-space:nowrap; min-height:46px; }
.hero-content a:first-child { background:#790b0b; }
.hero-content a:last-child { background:#2a242070; }
.quick-facts { max-width:1152px; margin:0 auto; padding:0 24px 36px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.quick-facts > div { border-top:1px solid var(--color-stone-dark); padding:20px 0; }
.quick-facts strong { display:block; font-size:25px; font-weight:750; letter-spacing:-.03em; margin:7px 0; }
.quick-facts p { color:var(--color-muted); font-size:13px; line-height:1.7; }
.section-title { font-size:clamp(27px,3vw,36px); font-weight:750; letter-spacing:-.04em; line-height:1.3; word-break:keep-all; }
.section-intro { color:var(--color-muted); margin-top:14px; line-height:1.8; max-width:70ch; }
.text-link { color:#790b0b; text-decoration:underline; text-underline-offset:4px; }
.hours-note { margin:24px 0; padding:18px 0; border-block:1px solid var(--color-stone-dark); line-height:1.9; font-size:15px; }
.hours-note strong { color:#790b0b; }
.plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:30px; }
.plan { padding:26px; border-radius:12px; background:var(--background); border:1px solid var(--color-stone-dark); display:flex; flex-direction:column; }
.plan h3 { font-size:21px; font-weight:750; letter-spacing:-.03em; }
.plan p { color:var(--color-muted); font-size:14px; line-height:1.8; margin:8px 0; }
.plan .plan-access { color:#790b0b; font-weight:650; }
.plan-list { margin:16px 0 22px; }
.plan-row { padding:13px 0; border-top:1px solid var(--color-stone); }
.plan-row > div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.plan-row dt { font-size:14px; }
.plan-row dd { font-weight:750; font-size:18px; white-space:nowrap; }
.plan-row dd small { font-size:12px; font-weight:400; }
.plan-row p { font-size:12px; text-align:right; margin-bottom:0; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 22px; border-radius:999px; background:#790b0b; color:#faf8f3; font-size:14px; font-weight:600; white-space:nowrap; text-decoration:none; }
.button:hover { background:#5c0808; }
.plan .button { margin-top:auto; align-self:flex-start; }
.plan-notes { margin-top:24px; font-size:14px; line-height:1.9; }
.benefit-note { margin-top:28px; padding:24px; background:var(--background); border-radius:12px; }
.benefit-note h3 { font-size:18px; font-weight:700; }
.benefit-note p { font-size:14px; line-height:1.9; margin-top:12px; }
.faq-list { margin-top:28px; }
.faq-list details { border-bottom:1px solid var(--color-stone-dark); }
.faq-list summary { padding:20px 32px 20px 0; font-weight:600; line-height:1.6; }
.faq-list details p { padding:0 0 24px; color:var(--color-muted); font-size:15px; line-height:1.85; }
.original-faq summary { list-style:none; }
.original-faq summary::-webkit-details-marker { display:none; }
.original-faq[open] summary svg { transform:rotate(180deg); }
.review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:40px; }
.gallery-photo-link { display:block; position:absolute; inset:0; }
.gallery-photo-link ~ div { pointer-events:none; }
.carousel-next,.carousel-prev { position:absolute; top:45%; width:44px; height:44px; z-index:2; border-radius:50%; background:#faf8f3; color:#790b0b; box-shadow:0 3px 12px #2a242020; font-size:30px; line-height:1; }
.carousel-next { right:8px; }.carousel-prev { left:8px; }
.carousel-next:disabled,.carousel-prev:disabled { opacity:.4; cursor:default; }
.guide-links { margin-top:30px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.guide-links a { border-top:2px solid #790b0b; padding-top:20px; display:block; }
.guide-links strong { display:block; font-size:20px; line-height:1.5; font-weight:700; }
.guide-links p { color:var(--color-muted); font-size:14px; line-height:1.8; margin:12px 0; }
.guide-links span { color:#790b0b; font-size:14px; }
.footer-guides { display:flex; flex-wrap:wrap; gap:14px 24px; max-width:1152px; padding:20px 24px 30px; margin:auto; font-size:13px; color:#790b0b; }
.footer-guides a:hover { text-decoration:underline; }
.footer-main { display:grid; grid-template-columns:1.05fr 1fr 1fr 1.8fr; gap:36px; }
.footer-main h4 { margin-bottom:16px; }
.footer-logo { width:84px; height:auto; }
.footer-hours { color:var(--color-muted); font-size:12px; line-height:1.9; margin-top:18px; }
.footer-link-list { display:grid; gap:10px; color:var(--color-muted); font-size:14px; }
.footer-link-list a:hover { color:var(--color-burgundy); text-decoration:underline; text-underline-offset:4px; }
.footer-contact a[href^="tel:"] { white-space:nowrap; }
.map-frame { position:relative; aspect-ratio:4/3; width:100%; overflow:hidden; border-radius:12px; background:var(--color-stone); }
.map-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.map-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-top:14px; font-size:13px; }
.map-actions a { color:#790b0b; font-weight:600; }
.map-actions button { text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.map-actions button[hidden] { display:none; }
.map-actions button:disabled { opacity:.6; cursor:wait; }
.map-help { margin-top:8px; color:var(--color-muted); font-size:12px; line-height:1.7; }
.map-help:empty { display:none; }
.footer-business dd { overflow-wrap:anywhere; }
@media(max-width:1023px) { .footer-main { grid-template-columns:1fr 1fr; gap:32px; } }
@media(max-width:639px) { .footer-brand,.footer-business { grid-column:1 / -1; }.footer-brand { display:grid; grid-template-columns:90px 1fr; column-gap:24px; align-items:center; }.footer-brand .footer-hours { margin-top:0; }.footer-brand > a { grid-column:2; justify-self:start; margin-top:12px; } }
.detail-page { max-width:1050px; margin:auto; padding:42px 24px 80px; width:100%; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:10px; font-size:13px; color:var(--color-muted); margin-bottom:36px; }
.breadcrumbs a { text-decoration:underline; text-underline-offset:3px; }
.page-heading { max-width:850px; margin-bottom:32px; }
.page-heading h1 { font-size:clamp(32px,4vw,48px); font-weight:780; letter-spacing:-.05em; line-height:1.25; word-break:keep-all; }
.page-heading > p { font-size:17px; line-height:1.8; color:var(--color-muted); margin-top:18px; max-width:66ch; }
.updated { font-size:12px !important; }
.prose { max-width:760px; }
.prose h2 { font-size:25px; line-height:1.4; font-weight:720; margin:40px 0 14px; letter-spacing:-.035em; }
.prose h3 { font-size:19px; font-weight:700; margin:28px 0 12px; }
.prose p,.prose li { font-size:16px; line-height:1.95; color:var(--foreground); margin-bottom:14px; }
.prose ul,.prose ol { padding-left:24px; margin-top:16px; }.prose ul { list-style:disc; }.prose ol { list-style:decimal; }
.prose a:not(.button) { color:#790b0b; text-decoration:underline; text-underline-offset:4px; }
.prose img { border-radius:12px; width:100%; height:auto; margin:28px 0 12px; }
.article-list { margin-top:32px; }.article-list article { border-top:1px solid var(--color-stone-dark); padding:28px 0; }.article-list h2 { font-size:24px; font-weight:700; line-height:1.45; }.article-list p { margin-top:12px; line-height:1.8; color:var(--color-muted); }
.closing-cta { margin-top:48px; padding-top:28px; border-top:1px solid var(--color-stone-dark); display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
.lightbox { width:min(1100px,94vw); max-height:92dvh; margin:auto; padding:20px; background:var(--background); border-radius:12px; color:var(--foreground); }
.lightbox::backdrop { background:#171310d9; }.lightbox img { width:100%; height:auto; max-height:73dvh; object-fit:contain; }.lightbox button { display:block; margin:0 0 16px auto; padding:8px 20px; min-height:44px; background:#790b0b; color:#fff; border-radius:999px; }.lightbox p { margin-top:16px; font-size:14px; }
@media(max-width:767px) { .mobile-menu{display:block}.hero-content{padding:25px;gap:16px}.hero-photo{height:520px;min-height:0;max-height:calc(100svh - 120px)}.hero-heading{font-size:clamp(27px,6.6vw,40px)}.hero-description{font-size:15px}.quick-facts{grid-template-columns:1fr;gap:0}.quick-facts > div{padding:14px 0}.quick-facts strong{font-size:21px}.plan-grid,.review-grid,.guide-links{grid-template-columns:1fr}.plan{padding:22px}.detail-page{padding-top:28px}.breadcrumbs{margin-bottom:28px}.page-heading h1{font-size:32px}.hero-content a{padding:12px 16px;font-size:13px}.carousel-next,.carousel-prev{width:38px;height:38px}.guide-links{gap:28px} }
@media(prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important} }
