
:root{--ink:#241c22;--paper:#f5f0ec;--card:#fbf6f2;--shade:#ede5e1;--olive:#55603f;--gold:#a98552}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:300 16px/1.7 'Pretendard Variable',Pretendard,'Noto Sans KR',system-ui,sans-serif}header,main,footer{max-width:1180px;margin:auto;padding:22px}header{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}.brand{font:600 23px Georgia,serif;border-block:1px solid #a89994;letter-spacing:.05em;padding:5px 15px;text-align:center}.brand small{display:block;font:700 9px sans-serif;letter-spacing:.3em}.lang,select,input,button{font:inherit}select,input{background:#fffdfa;border:1px solid #cbbcb5;padding:10px;color:var(--ink);width:100%}.lang{width:auto}.notice{padding:12px 18px;background:#e9dfd8;font-size:13px;text-align:center}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;padding:55px 0;align-items:end}.eyebrow{font:700 11px sans-serif;letter-spacing:.18em;color:var(--olive)}h1,h2,h3{font-family:'Noto Serif KR',Georgia,serif;line-height:1.3;font-weight:600}h1{font-size:clamp(34px,5vw,58px);margin:12px 0}h2{font-size:27px}h3{font-size:20px}.lead{max-width:510px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{background:var(--card);border:1px solid #ded2ca;padding:26px;min-width:0}.card p{line-height:1.7}.pill{display:inline-block;background:var(--shade);padding:3px 10px;font-size:12px}.large{font:600 34px Georgia,serif;color:var(--olive)}.muted{font-size:13px;color:#756967}.sections{margin-top:48px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fields label{font-size:14px;display:grid;gap:6px}.wide{grid-column:1/-1}.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tier{border:1px solid #ddd0c8;background:#fffdfa;padding:18px}.tier strong{display:block;font:600 30px Georgia,serif;color:var(--olive)}.addresses{background:var(--shade);padding:18px;margin-top:16px}.addresses code{display:block;overflow-wrap:anywhere;font-size:14px;font-weight:600}.button{display:inline-block;background:var(--olive);color:white;border:0;padding:11px 20px;text-decoration:none}.button:disabled{opacity:.55}.buttons{display:flex;gap:10px;flex-wrap:wrap}.button.secondary{background:transparent;color:var(--olive);border:1px solid var(--olive)}footer{border-top:1px solid #d9cec8;font-size:13px}a{color:#55603f} @media(max-width:700px){.hero,.grid,.tiers{grid-template-columns:1fr}.hero{padding:30px 0}.card{padding:20px}.fields{grid-template-columns:1fr}}
.gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px}.gallery img{width:100%;height:180px;object-fit:cover;display:block}.gallery a{min-width:0}button,select,.button{min-height:44px}code{word-break:break-all}@media(max-width:700px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery img{height:160px}.fields .wide{grid-column:auto}}@media(max-width:360px){header,main,footer{padding:16px}.brand{font-size:18px}.card{padding:16px}}
.venue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.venue-card{background:var(--card);border:1px solid #ded2ca;padding:20px;min-width:0}.venue-card.selected{border:2px solid var(--olive)}.venue-card h3{margin:8px 0;font-size:19px}.venue-card p{min-height:3em}.venue-card .button{width:100%;min-height:44px}.bankflow{background:#f0e9e2;margin:16px 0;padding:16px}.qr-image{background:white;padding:9px;width:min(208px,100%);height:auto;display:block;margin:0 0 14px}.chat-error{padding:10px;background:#fff6e8}@media(max-width:760px){.venue-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.venue-grid{grid-template-columns:1fr}.venue-card p{min-height:0}}

html{scroll-behavior:smooth;scroll-padding-top:20px}body{overflow-wrap:anywhere}button{cursor:pointer}button:disabled{cursor:not-allowed}input,select,textarea{max-width:100%;min-width:0;border-radius:0}textarea{font:inherit;padding:10px;border:1px solid #cbbcb5;background:#fffdfa;color:var(--ink);width:100%;resize:vertical}.page-nav{max-width:1180px;margin:auto;display:flex;gap:8px 22px;padding:12px 22px;border-block:1px solid #ded2ca;flex-wrap:wrap;font-size:14px}.page-nav a{text-decoration:none}.status{min-height:1.5em}.fields{margin-bottom:18px}.result{min-height:160px}.budget-total{font:600 clamp(22px,3vw,34px) Georgia,serif;color:var(--olive);line-height:1.35}.result dl{display:grid;grid-template-columns:minmax(80px,1fr) minmax(0,1.5fr);gap:10px;margin:24px 0}.result dd{margin:0;text-align:right}.request-row{padding:15px 0;border-bottom:1px solid #ded2ca;font-size:14px}.request-row code{font-size:12px;display:block;overflow-wrap:anywhere}.wallet-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.wallet-row span{background:var(--shade);padding:8px 12px;font-size:13px}#guideContent{border-top:1px solid #ded2ca;margin-top:22px;padding-top:10px}#guideContent p{font-size:14px}.payment-review{margin-top:16px;padding:18px;background:#fff5e8;border:1px solid #dac5aa}.payment-review summary{cursor:pointer;font-weight:600}.qr-warning{font-weight:600;font-size:14px;color:#7b3b24}.payment-review .addresses{border:2px dashed #a98552}.bank-routes{margin:18px 0}.copy-review{margin-top:10px}.service-steps{margin:16px 0;padding:16px;border:1px solid #ded2ca;background:var(--card);font-size:14px}.service-steps ol{padding-inline-start:22px}.button{white-space:normal;text-align:center}.notice{font-weight:500}details[open] summary{margin-bottom:12px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px;border-bottom:1px solid #ded2ca;vertical-align:top}.admin-layout{max-width:1200px;margin:auto;padding:24px}.admin-layout section{margin:30px 0}.admin-layout input{min-width:80px}.admin-layout .login-box{max-width:480px}.admin-layout pre{white-space:pre-wrap;overflow-wrap:anywhere}#funding{scroll-margin-top:24px}.admin-layout button{margin:5px 0} [hidden]{display:none!important}@media(max-width:400px){.page-nav{padding:12px 16px;gap:8px 14px}.result dl{grid-template-columns:1fr}.result dd{text-align:left}.buttons>.button{flex:1 1 100%}.admin-layout{padding:16px}}

html[lang=ko] h1{word-break:keep-all;text-wrap:balance}

/* The photography layer intentionally uses only images supplied by its manifest. */
.vpk-hero { display: block; padding: 38px 0 46px; }
.vpk-hero-copy { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: end; min-width: 0; }
.vpk-hero.vpk-has-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 36px; align-items: center; }
.vpk-has-hero .vpk-hero-copy { display: block; }
.vpk-has-hero h1 { font-size: clamp(34px, 4.5vw, 57px); line-height: 1.25; margin: 18px 0 24px; letter-spacing: -.035em; }
.vpk-has-hero .lead { font-size: 16px; line-height: 1.85; color: #665954; margin: 0 0 26px; }
.vpk-has-hero .eyebrow { margin: 0; max-width: 100%; line-height: 1.8; font-size: 10px; letter-spacing: .2em; }
.vpk-has-hero .buttons { align-items: stretch; }
.vpk-has-hero .buttons .button { text-align: center; min-height: 48px; font-size: 14px; }
.vpk-hero-media { position: relative; margin: 0; min-width: 0; height: clamp(400px, 43vw, 535px); overflow: hidden; background: #28251e; border-radius: 2px 80px 2px 2px; box-shadow: 0 14px 36px #241c2212; }
.vpk-hero-media::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, #0b0a08cc); pointer-events: none; }
.vpk-photo-open { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; color: white; cursor: zoom-in; overflow: hidden; }
.vpk-photo { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; transition: transform .5s ease; }
.vpk-photo-open:hover .vpk-photo { transform: scale(1.025); }
.vpk-photo-open:focus-visible { outline: 3px solid #e0bb72; outline-offset: -4px; z-index: 1; }
.vpk-expand { position: absolute; right: 14px; top: 14px; display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid #ffffff70; background: #19170e52; border-radius: 50%; pointer-events: none; }
.vpk-expand svg { width: 14px; height: 14px; }
.vpk-hero-caption { position: absolute; z-index: 1; left: 28px; right: 28px; bottom: 26px; display: grid; gap: 7px; color: #fff9ef; pointer-events: none; }
.vpk-photo-kicker { font: 600 9px/1.5 system-ui, sans-serif; letter-spacing: .21em; }
.vpk-photo-title { font: 500 clamp(20px, 2.4vw, 29px)/1.3 Georgia, 'Noto Serif KR', serif; overflow-wrap: anywhere; }
.vpk-editorial-order { display: flex; justify-content: space-between; gap: 8px 22px; align-items: baseline; padding: 14px 0; margin-bottom: 4px; border-top: 1px solid #d8cabe; }
.vpk-order-title { color: #55603f; font-size: 12px; font-weight: 600; letter-spacing: .025em; }
.vpk-order-note { color: #756967; font-size: 11px; line-height: 1.7; }
.venue-grid { gap: 22px; align-items: stretch; }
.venue-card.vpk-venue-card { position: relative; display: flex; flex-direction: column; padding: 0; background: #fbf6f2; border: 1px solid #d9cec5; overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease; }
.venue-card.vpk-venue-card.selected { border: 1px solid #55603f; box-shadow: 0 0 0 1px #55603f; }
.venue-card.vpk-recommendation { border-color: #b4905a; }
.venue-card.vpk-recommendation.selected { border-color: #55603f; }
.vpk-venue-media { position: relative; aspect-ratio: 16 / 10; margin: 0; background: #28251e; overflow: hidden; flex: 0 0 auto; }
.vpk-rank-strip { display: flex; align-items: center; gap: 7px; margin: 20px 21px 0; min-width: 0; }
.vpk-venue-media > .vpk-rank-strip { position: absolute; left: 13px; top: 13px; right: 50px; margin: 0; flex-wrap: wrap; pointer-events: none; }
.vpk-rank { display: inline-flex; align-items: center; min-height: 29px; padding: 3px 10px; background: #fbf6f2; color: #241c22; font: 500 18px/1.2 Georgia, serif; box-shadow: 0 2px 12px #0000000d; white-space: nowrap; }
.vpk-recommended { display: inline-flex; align-items: center; gap: 5px; background: #a98552; color: #fffdf7; min-height: 29px; max-width: 100%; padding: 5px 9px; font-size: 11px; line-height: 1.5; font-weight: 600; }
.vpk-recommended svg { width: 11px; height: 11px; flex-shrink: 0; }
.venue-card.vpk-venue-card > h3 { margin: 23px 21px 10px; font-size: 21px; letter-spacing: -.015em; }
.venue-card.vpk-venue-card > p { margin: 0 21px 22px; min-height: 3.4em; font-size: 14px; line-height: 1.75; color: #665954; }
.venue-card.vpk-venue-card > .button { width: calc(100% - 42px); margin-right: 21px; margin-left: 21px; min-height: 46px; font-size: 13px; padding: 11px 12px; line-height: 1.7; }
.venue-card.vpk-venue-card > .button.secondary { margin-top: auto; }
.venue-card.vpk-venue-card > .button:last-child { margin-bottom: 21px; }
.venue-card.vpk-venue-card .venue-meta { margin: 20px 21px 19px; padding-top: 12px; border-top: 1px solid #e4d9d0; font-size: 11px; line-height: 1.75; }
.venue-card.vpk-venue-card .venue-meta p { min-height: 0; margin: 4px 0; line-height: 1.75; }
.venue-card.vpk-venue-card .venue-meta a { display: inline-block; margin-top: 5px; text-underline-offset: 3px; }
.vpk-floating-chat { position: fixed; right: max(22px, env(safe-area-inset-right)); bottom: max(22px, env(safe-area-inset-bottom)); z-index: 9000; display: flex; align-items: center; gap: 12px; max-width: calc(100vw - 32px); min-height: 61px; border: 1px solid #ffffff70; border-radius: 40px; background: #55603f; color: #fffdf7; padding: 9px 21px 9px 15px; cursor: pointer; box-shadow: 0 8px 30px #241c2238; font: inherit; transition: transform .2s ease, box-shadow .2s ease; }
.vpk-floating-chat:hover { transform: translateY(-2px); box-shadow: 0 11px 32px #241c2247; }
.vpk-floating-chat:focus-visible { outline: 3px solid #a98552; outline-offset: 4px; }
.vpk-floating-chat:disabled { opacity: .85; cursor: wait; }
.vpk-chat-icon { display: grid; place-items: center; width: 31px; height: 31px; flex: 0 0 auto; }
.vpk-chat-icon svg { width: 28px; height: 28px; }
.vpk-chat-copy { display: grid; gap: 1px; text-align: start; min-width: 0; }
.vpk-chat-title { font-size: 12px; font-weight: 600; line-height: 1.5; }
.vpk-chat-venue { font: 500 10px/1.6 system-ui, sans-serif; letter-spacing: .04em; opacity: .78; }
.vpk-photo-modal-open { overflow: hidden; }
.vpk-lightbox { width: min(1100px, calc(100vw - 28px)); max-width: calc(100vw - 28px); max-height: calc(100dvh - 28px); padding: 0; border: 0; background: #f5f0ec; color: #241c22; box-shadow: 0 18px 70px #0000004a; overflow: auto; }
.vpk-lightbox::backdrop { background: #16130fe0; }
.vpk-lightbox-top { display: flex; gap: 20px; align-items: center; justify-content: space-between; padding: 13px 17px; }
.vpk-lightbox-title { font-size: 17px; line-height: 1.5; margin: 0; }
.vpk-lightbox-close { display: grid; place-items: center; width: 40px; height: 40px; min-width: 40px; border: 1px solid #cbbcb5; border-radius: 50%; color: #241c22; background: transparent; cursor: pointer; }
.vpk-lightbox-close svg { width: 20px; height: 20px; }
.vpk-lightbox-close:focus-visible { outline: 2px solid #55603f; outline-offset: 3px; }
.vpk-lightbox-image { display: block; width: 100%; height: auto; max-height: 75dvh; object-fit: contain; background: #171512; }
.vpk-lightbox-credit { padding: 11px 17px; font-size: 11px; line-height: 1.7; overflow-wrap: anywhere; }
.vpk-lightbox-credit a { color: #55603f; text-underline-offset: 3px; }
.vpk-simple-layout header { padding-top: 27px; padding-bottom: 25px; }
.vpk-simple-layout footer { padding-bottom: max(96px, calc(env(safe-area-inset-bottom) + 78px)); }
.vpk-simple-layout .page-nav { gap: 10px 28px; border-bottom: 0; font-size: 12px; font-weight: 500; }
.vpk-simple-layout main > .notice { display: none; }
.vpk-simple-layout .sections { margin-top: 58px; scroll-margin-top: 24px; }
.vpk-simple-layout .sections > h2 { font-size: clamp(25px, 3.1vw, 35px); letter-spacing: -.025em; margin: 12px 0; }
.vpk-simple-layout .sections > p:not(.eyebrow):not(.muted) { font-size: 14px; color: #756967; }
.vpk-simple-layout .button { border-radius: 2px; }
.vpk-zalo-link { display: inline-block; margin-top: 15px; color: #756967; font-size: 12px; text-underline-offset: 4px; }
.vpk-visit-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 23px 0; border-block: 1px solid #d9cec5; }
.vpk-visit-steps li { display: flex; align-items: center; gap: 14px; min-width: 0; padding-inline: 15px; }
.vpk-visit-steps li + li { border-inline-start: 1px solid #d9cec5; }
.vpk-step-number { color: #a98552; font: 500 25px/1.2 Georgia, serif; flex-shrink: 0; }
.vpk-visit-steps a { font-size: 13px; line-height: 1.5; font-weight: 500; text-decoration: none; color: #4c493b; }
.venue-card.vpk-venue-card > .vpk-price-preview { margin: -9px 21px 10px; min-height: 0; color: #55603f; font-size: 12px; line-height: 1.6; }
.vpk-card-facts { margin: 0 21px 20px; font-size: 11px; }
.vpk-card-facts > summary { display: inline-block; cursor: pointer; color: #8c7a6d; text-decoration: underline; text-underline-offset: 4px; font-size: 11px; }
.vpk-card-facts > summary::after { content: ' +'; display: inline; text-decoration: none; }
.vpk-card-facts[open] > summary::after { content: ' −'; }
.venue-card.vpk-venue-card .vpk-card-facts .venue-meta { margin: 13px 0 0; font-size: 11px; }
.venue-card.vpk-venue-card > .vpk-choose { margin-top: auto; }
.venue-card.vpk-venue-card > .vpk-card-chat { margin-top: 8px; }
.vpk-services { padding-top: 32px; border-top: 1px solid #d9cec5; }
.vpk-services-intro { margin-bottom: 24px; }
.vpk-services-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.vpk-service-panel { min-width: 0; background: #fbf6f2; border: 1px solid #ded2ca; }
.vpk-service-panel > summary { position: relative; list-style: none; display: grid; gap: 5px; padding: 22px 49px 22px 23px; cursor: pointer; }
.vpk-service-panel > summary::-webkit-details-marker { display: none; }
.vpk-service-panel > summary::after { content: '+'; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); color: #a98552; font: 300 25px/1 system-ui, sans-serif; }
.vpk-service-panel[open] { grid-column: 1 / -1; }
.vpk-service-panel[open] > summary { border-bottom: 1px solid #ded2ca; background: #f0e9e1; }
.vpk-service-panel[open] > summary::after { content: '−'; }
.vpk-service-name { font-size: 16px; color: #3b382f; font-weight: 500; }
.vpk-service-description { font-size: 11px; color: #8c7a6d; line-height: 1.6; }
.vpk-service-content { padding: 0 22px 22px; }
.vpk-simple-layout .vpk-service-content > .sections { margin-top: 28px; }
.vpk-simple-layout .vpk-service-content > .sections > h2 { font-size: 23px; }
.vpk-service-content > section.grid:not(.sections) { margin-top: 22px; }
.vpk-service-content .card { padding: 21px; }
.vpk-service-content .eyebrow { font-size: 9px; letter-spacing: .12em; }
.vpk-simple-layout #estimate > .grid { gap: 23px; align-items: start; }
.vpk-simple-layout #estimateForm, .vpk-simple-layout #estimate > .grid > article { border-color: #d9cec5; padding: 26px; }
.vpk-simple-layout #estimateForm > .fields { gap: 16px; }
.vpk-simple-layout #estimateForm label { font-size: 12px; gap: 7px; }
.vpk-simple-layout #estimateForm input, .vpk-simple-layout #estimateForm select, .vpk-simple-layout #estimateForm textarea { min-height: 45px; font-size: 14px; border-color: #d8cabe; background: #fffcf8; }
.vpk-simple-layout #estimateForm > .buttons > .button { width: 100%; min-height: 48px; }
.vpk-estimate-options, .vpk-booking-request { border-top: 1px solid #e0d6cd; padding: 16px 0; margin-top: 7px; font-size: 13px; }
.vpk-estimate-options > summary, .vpk-booking-request > summary { cursor: pointer; color: #55603f; line-height: 1.7; font-weight: 500; }
.vpk-estimate-options > summary small { display: block; color: #8c7a6d; font-weight: 400; font-size: 11px; margin-top: 3px; }
.vpk-estimate-options > .fields, .vpk-booking-request > .fields { margin: 20px 0 10px; }
.vpk-estimate-options:not([open]) { margin-bottom: 9px; }
.vpk-booking-request { padding-bottom: 0; margin-top: 20px; }
.vpk-booking-request .status:empty { margin: 0; min-height: 0; }
.vpk-simple-layout #estimateResult { min-height: 0; }
.vpk-simple-layout #estimateResult .budget-total { font-size: clamp(25px, 3.25vw, 37px); font-weight: 500; letter-spacing: -.02em; margin-top: 18px; }
.vpk-simple-layout #estimateResult > .muted { font-size: 12px; }
.vpk-result-details { font-size: 12px; border-block: 1px solid #ded2ca; padding: 13px 0; margin-top: 18px; }
.vpk-result-details > summary { cursor: pointer; color: #756967; font-size: 12px; }
.vpk-result-details dl { font-size: 12px; }
.vpk-simple-layout #estimate > .grid > article > .muted { font-size: 11px; line-height: 1.8; }
.vpk-simple-layout #estimateChat { width: 100%; margin-top: 10px; background: #55603f; color: #fffdf7; min-height: 47px; }
@media (max-width: 950px) { .vpk-visit-steps li { padding-inline: 4px; gap: 10px; } .vpk-step-number { font-size: 22px; } .vpk-visit-steps a { font-size: 12px; } }
@media (min-width: 761px) { .venue-card.vpk-venue-card:hover { box-shadow: 0 8px 22px #241c220a; } }
@media (max-width: 1000px) { .vpk-hero.vpk-has-hero { gap: 26px; } .vpk-has-hero h1 { font-size: clamp(34px, 4.8vw, 50px); } .vpk-hero-media { height: 470px; border-top-right-radius: 64px; } .vpk-has-hero .buttons .button { flex: 1 1 160px; } }
@media (max-width: 760px) { .venue-grid { gap: 16px; } .venue-card.vpk-venue-card > h3 { font-size: 20px; margin-top: 19px; } .vpk-editorial-order { flex-direction: column; gap: 3px; } }
@media (max-width: 700px) {
  .vpk-hero, .vpk-hero.vpk-has-hero { display: flex; flex-direction: column; align-items: stretch; gap: 26px; padding: 28px 0 34px; }
  .vpk-hero-copy { display: block; }
  .vpk-has-hero h1 { font-size: clamp(34px, 7vw, 47px); line-height: 1.28; margin: 13px 0 18px; }
  .vpk-has-hero .lead { font-size: 15px; line-height: 1.8; margin-bottom: 21px; }
  .vpk-hero-media { height: clamp(260px, 64vw, 400px); border-top-right-radius: 54px; }
  .vpk-hero-caption { left: 21px; right: 21px; bottom: 20px; }
  .vpk-photo-title { font-size: 23px; }
  .vpk-hero-copy #chatStatus:empty { display: none; }
  .vpk-floating-chat { right: max(16px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); padding: 13px; width: 59px; min-height: 59px; justify-content: center; gap: 0; }
  .vpk-chat-copy { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .vpk-lightbox { width: calc(100vw - 20px); max-width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .vpk-lightbox-top { padding: 10px 12px; gap: 12px; }
  .vpk-lightbox-title { font-size: 15px; }
  .vpk-lightbox-credit { padding: 10px 12px; }
  .vpk-simple-layout header { gap: 15px; padding-block: 20px; }
  .vpk-simple-layout .brand { max-width: 100%; font-size: 19px; padding-inline: 12px; }
  .vpk-simple-layout .page-nav { gap: 9px 22px; font-size: 11px; }
  .vpk-simple-layout .sections { margin-top: 42px; }
  .vpk-visit-steps { gap: 8px; padding-block: 18px; }
  .vpk-visit-steps li { display: grid; align-content: start; gap: 7px; padding-inline: 8px; }
  .vpk-step-number { font-size: 21px; }
  .vpk-visit-steps a { font-size: 11px; line-height: 1.6; }
  .vpk-services-list { grid-template-columns: 1fr; }
  .vpk-service-panel > summary { padding: 20px 46px 20px 19px; }
  .vpk-service-content { padding: 0 14px 14px; }
  .vpk-service-content .card { padding: 17px; }
  .vpk-simple-layout #estimateForm, .vpk-simple-layout #estimate > .grid > article { padding: 21px; }
  .vpk-simple-layout #estimateForm > .fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
  .vpk-simple-layout #estimateForm > .fields > label:first-child, .vpk-simple-layout #estimateForm > .fields > label:nth-child(2) { grid-column: 1 / -1; }
  .vpk-simple-layout #estimateForm input, .vpk-simple-layout #estimateForm select, .vpk-simple-layout #estimateForm textarea { font-size: 16px; }
}
@media (max-width: 480px) {
  .venue-grid { gap: 22px; }
  .vpk-has-hero .buttons { gap: 9px; }
  .vpk-has-hero .buttons .button { flex-basis: 100%; width: 100%; }
  .vpk-hero-media { height: 300px; }
  .venue-card.vpk-venue-card > p { min-height: 0; margin-bottom: 20px; }
  .vpk-order-note { max-width: 33em; }
  .vpk-lightbox-image { max-height: 72dvh; }
}
@media (prefers-reduced-motion: reduce) { .vpk-photo, .vpk-venue-card, .vpk-floating-chat { transition: none !important; } .vpk-photo-open:hover .vpk-photo, .vpk-floating-chat:hover { transform: none; } }

.ktvp-funding-layout { display: block; }
.ktvp { min-width: 0; margin-top: 25px; }
.ktvp > h2 { font-size: clamp(24px, 3vw, 32px); margin: 10px 0; }
.ktvp-intro { font-size: 14px; color: #756967; margin-bottom: 24px; }
.ktvp-login { display: flex; gap: 20px; align-items: center; justify-content: space-between; padding: 17px 20px; background: #ede5dc; margin-bottom: 22px; }
.ktvp-login p { font-size: 12px; line-height: 1.75; margin: 0; }
.ktvp-login a { font-size: 12px; flex: 0 0 auto; }
.ktvp-tabs { display: flex; gap: 4px; padding: 4px; background: #ede5dc; margin-bottom: 20px; border-radius: 3px; }
.ktvp-tab { flex: 1 1 0; font: inherit; font-size: 12px; font-weight: 500; border: 0; background: transparent; color: #756967; padding: 12px 10px; border-radius: 2px; cursor: pointer; }
.ktvp-tab[aria-selected="true"] { color: #fffdf7; background: #55603f; box-shadow: 0 2px 8px #241c2210; }
.ktvp-tab:focus-visible { outline: 2px solid #a98552; outline-offset: 2px; }
.ktvp-panel { min-width: 0; outline: none; }
.ktvp-form { margin: 0; }
.ktvp-form fieldset { padding: 0; border: 0; margin: 0; min-width: 0; }
.ktvp-form fieldset:disabled { opacity: .65; }
.ktvp-form label { min-width: 0; display: grid; gap: 7px; font-size: 12px; }
.ktvp-form .fields { gap: 16px; margin-bottom: 18px; }
.ktvp-form input, .ktvp-form select, .ktvp-form textarea { width: 100%; min-width: 0; min-height: 45px; font-size: 14px; padding: 10px 12px; border: 1px solid #d8cabe; color: #241c22; background: #fffcf8; border-radius: 2px; }
.ktvp-form .button { min-height: 46px; min-width: 150px; font-size: 13px; }
.ktvp-fine { font-size: 11px; line-height: 1.85; color: #8c7a6d; }
.ktvp-callout { padding: 13px 16px; margin: 0 0 22px; background: #f0e9e1; border-inline-start: 2px solid #a98552; color: #756967; }
.ktvp-status { min-height: 0; font-size: 12px; line-height: 1.8; color: #55603f; margin: 14px 0 0; }
.ktvp-status:empty { display: none; }
.ktvp-status.ktvp-error { color: #923f26; }
#ktvpGlobalStatus:not(:empty) { padding: 13px 16px; margin: 0 0 20px; background: #e8ebdf; border-inline-start: 2px solid #55603f; outline: none; }
.ktvp-wallet { background: #ede5dc; border: 1px solid #ded2ca; padding: 19px 21px; margin-bottom: 22px; }
.ktvp-wallet > div { display: grid; gap: 7px; font-size: 12px; color: #756967; }
.ktvp-wallet strong { font: 500 clamp(24px, 3vw, 32px)/1.4 Georgia, serif; color: #55603f; }
.ktvp-wallet .ktvp-fine { margin: 8px 0 0; }
.ktvp-proof { padding: 22px 20px; border: 1px solid #ded2ca; background: #f7f0e9; margin-top: 23px; }
.ktvp-proof h3 { margin: 0 0 18px; font-size: 19px; }
.ktvp-history-group { margin-top: 30px; }
.ktvp-history-group h3 { font-size: 18px; margin: 0 0 12px; }
.ktvp-request-row { padding: 16px 0; border-top: 1px solid #ded2ca; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 18px; font-size: 12px; min-width: 0; }
.ktvp-request-row strong { font-size: 13px; font-weight: 500; }
.ktvp-request-row p { margin: 5px 0 0; font-size: 11px; color: #756967; }
.ktvp-row-meta { display: grid; justify-items: end; align-content: start; gap: 6px; }
.ktvp-row-meta small { color: #8c7a6d; font-size: 10px; }
.ktvp-state { display: inline-block; padding: 3px 8px; background: #e8e1d7; color: #756049; font-size: 10px; line-height: 1.7; }
.ktvp-state[data-state="confirmed"], .ktvp-state[data-state="paid"], .ktvp-state[data-state="sent"], .ktvp-state[data-state="completed"] { background: #e4e8dc; color: #55603f; }
.ktvp-state[data-state="rejected"], .ktvp-state[data-state="cancelled"] { background: #eee0da; color: #8a4d39; }
.ktvp-text-button { width: fit-content; font: inherit; font-size: 11px; padding: 3px 0; color: #55603f; background: none; border: 0; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.ktvp-empty { font-size: 12px; color: #8c7a6d; padding: 12px 0; border-top: 1px solid #ded2ca; }
.ktvp-method-reference { margin-top: 35px; border-top: 1px solid #ded2ca; padding-top: 18px; }
.ktvp-method-reference > summary { cursor: pointer; font-size: 12px; color: #756967; }
.ktvp-method-reference > .grid { margin-top: 20px; }
.ktvp-method-reference .card { min-width: 0; }
@media (max-width: 700px) {
  .ktvp-login { display: grid; gap: 14px; padding: 16px; }
  .ktvp-login a { width: fit-content; }
  .ktvp-tabs { gap: 3px; }
  .ktvp-tab { font-size: 11px; padding: 12px 7px; line-height: 1.65; }
  .ktvp-form .fields { grid-template-columns: 1fr; gap: 14px; }
  .ktvp-form input, .ktvp-form select, .ktvp-form textarea { font-size: 16px; }
  .ktvp-form .button { width: 100%; }
  .ktvp-wallet { padding: 17px; }
  .ktvp-proof { padding: 18px 15px; }
  .ktvp-request-row { grid-template-columns: 1fr; }
  .ktvp-row-meta { justify-items: start; display: flex; align-items: center; flex-wrap: wrap; }
}

.ktvc { margin-top: 28px; padding-top: 24px; border-top: 1px solid #d9cec5; min-width: 0; }
.ktvc > h3 { margin: 0 0 10px; font-size: 23px; }
.ktvc-intro { font-size: 13px; color: #756967; }
.ktvc-controls { display: flex; gap: 10px; margin: 18px 0; }
.ktvc-controls .button { font-size: 12px; }
.ktvc-list { display: grid; gap: 18px; }
.ktvc-offer { min-width: 0; border: 1px solid #d9cec5; background: #fffcf8; padding: 23px; }
.ktvc-offer h4 { margin: 0; font: 500 20px/1.4 Georgia, 'Noto Serif KR', serif; }
.ktvc-booking-ref { font-size: 10px; color: #8c7a6d; margin: 5px 0 18px; }
.ktvc-total-label { font-size: 12px; margin: 15px 0 3px; color: #756967; }
.ktvc-total { display: block; font: 500 clamp(26px, 3vw, 36px)/1.4 Georgia, serif; color: #55603f; overflow-wrap: anywhere; }
.ktvc-terms { border-block: 1px solid #ded2ca; margin-top: 18px; padding: 12px 0; }
.ktvc-terms summary { cursor: pointer; color: #756967; font-size: 12px; }
.ktvc-terms dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 16px; font-size: 12px; margin: 18px 0 5px; }
.ktvc-terms dd { margin: 0; text-align: end; }
.ktvc-offer h5 { font-size: 12px; margin: 20px 0 6px; }
.ktvc-condition { white-space: pre-wrap; font-size: 13px; line-height: 1.8; }
.ktvc-fine { font-size: 11px; color: #8c7a6d; line-height: 1.8; }
.ktvc-form { margin-top: 22px; }
.ktvc-form .fields { gap: 15px; }
.ktvc-form label { font-size: 12px; }
.ktvc-form input[type=number] { width: 100%; min-width: 0; min-height: 45px; border: 1px solid #d8cabe; background: #fffcf8; padding: 10px 12px; font-size: 14px; }
.ktvc-remainder { display: grid; gap: 5px; font-size: 12px; padding: 15px 0; border-top: 1px solid #ded2ca; }
.ktvc-principal { color: #55603f; font-size: 20px; font-weight: 500; }
.ktvc-agree { display: flex !important; align-items: flex-start; gap: 10px; margin: 15px 0; color: #665954; line-height: 1.8; }
.ktvc-agree input { width: 19px; min-height: 19px; height: 19px; margin: 3px 0 0; flex: 0 0 19px; accent-color: #55603f; }
.ktvc-form > .button { min-height: 47px; min-width: 160px; font-size: 13px; }
.ktvc-status { margin: 12px 0 0; font-size: 12px; color: #55603f; line-height: 1.8; }
.ktvc-status:empty { display: none; }
.ktvc-error { color: #923f26; }
.ktvc-paid { color: #55603f; font-size: 12px; background: #e7ebdf; padding: 10px 13px; }
.ktvc-admin .card { margin-top: 15px; }
.ktvc-admin form > .fields { margin-block: 15px; }
.ktvc-admin label { font-size: 13px; min-width: 0; }
.ktvc-admin textarea { min-height: 100px; }
.ktvc-admin .ktvc-admin-check { display: flex; gap: 10px; align-items: flex-start; line-height: 1.8; margin-block: 17px; }
.ktvc-admin-check input { width: 19px; min-width: 19px; margin-top: 4px; }
.ktvc-admin dl { font-size: 13px; }
@media (max-width: 700px) {
  .ktvc-offer { padding: 19px 16px; }
  .ktvc-form .fields { grid-template-columns: 1fr; }
  .ktvc-form input[type=number] { font-size: 16px; }
  .ktvc-form > .button { width: 100%; }
  .ktvc-terms dl { grid-template-columns: 1fr; gap: 4px; }
  .ktvc-terms dd { text-align: start; margin-bottom: 8px; }
}
