/* CLEO: independent, readable preparation section below the contact area. */
.section.visit-prep{width:100%;max-width:1440px;margin:0 auto;padding:32px 8% 64px;border:0;background:#fff;text-align:left;box-sizing:border-box}
.visit-prep .visit-prep-header{margin:0 0 24px;padding:26px 0 0;border-top:1px solid #cfdae2}
.visit-prep .visit-prep-title{margin:0 0 10px;font-family:var(--font-body);font-size:32px;font-weight:750;letter-spacing:-.035em;line-height:1.35;color:#213d52}
.visit-prep .visit-prep-header p{margin:0;color:#465c6c;font:500 17px/1.65 var(--font-body);letter-spacing:-.015em}
.visit-prep-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.visit-prep .visit-prep-card{display:flex;flex-direction:column;align-items:stretch;gap:14px;min-width:0;min-height:218px;padding:24px;border:1.5px solid #b9ccda;border-radius:12px;background:#edf5fa;color:#213d52;text-decoration:none;box-sizing:border-box;transition:background .15s,border-color .15s}
.visit-prep .visit-prep-card:nth-child(2){background:#e2eff8;border-color:#9ebdd2}
.visit-prep .visit-prep-card:nth-child(3){background:#f0f4f8}
.visit-prep .visit-prep-card:hover{background:#d7eaf7;border-color:#557d99}
.visit-prep .visit-prep-card:focus-visible{outline:3px solid #315d7b;outline-offset:4px}
.visit-prep .prep-card-number{font:700 13px/1 var(--font-body);letter-spacing:.06em;color:#58788f}
.visit-prep .prep-card-copy{display:block;min-width:0}
.visit-prep .prep-card-copy strong{display:block;font:750 23px/1.4 var(--font-body);letter-spacing:-.03em;color:#203d53;word-break:keep-all;overflow-wrap:break-word}
.visit-prep .prep-card-copy small{display:block;margin-top:10px;font:500 17px/1.65 var(--font-body);letter-spacing:-.02em;color:#41586a;word-break:keep-all;overflow-wrap:break-word}
.visit-prep .prep-card-action{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:18px;font:700 16px/1.5 var(--font-body);color:#2d5573;letter-spacing:-.02em}
.visit-prep .prep-card-action>span{font-size:24px;font-weight:500;line-height:1}
/* The enquiry form must keep its content height rather than stretch to the left column. */
body[data-page="booking.html"] #booking{align-items:start;column-gap:48px;padding-bottom:32px}
body[data-page="booking.html"] #booking>div{min-width:0}
body[data-page="booking.html"] #booking h2{font-size:clamp(28px,2.8vw,36px);line-height:1.35;margin:14px 0 18px}
body[data-page="booking.html"] #booking>div>p{font-size:17px;line-height:1.7;color:#405363;max-width:none}
body[data-page="booking.html"] #booking>div>p.note{font-size:15px!important;color:#526574}
body[data-page="booking.html"] #booking .contact-links{margin-bottom:0}
body[data-page="booking.html"] #booking #enquiry{align-self:start;min-width:0;height:auto;padding:30px;border:1px solid #dce6ed;border-radius:12px}
body[data-page="booking.html"] #booking #enquiry label{font-size:16px;font-weight:650;line-height:1.55;margin-bottom:22px;color:#263e50}
body[data-page="booking.html"] #booking #enquiry label .label{font-size:14px;font-weight:500;letter-spacing:0;color:#5c6f7c}
body[data-page="booking.html"] #booking #enquiry input,body[data-page="booking.html"] #booking #enquiry select,body[data-page="booking.html"] #booking #enquiry textarea{font-size:16px;font-weight:450;line-height:1.6;min-width:0;padding:13px 0;color:#233d50}
body[data-page="booking.html"] #booking #enquiry :is(input,textarea)::placeholder{color:#627786;opacity:1}
body[data-page="booking.html"] #booking #enquiry .btn,body[data-page="booking.html"] #booking #enquiry .button{font-size:16px;font-weight:700;line-height:1.5}
body[data-page="booking.html"] #booking #enquiry #message{font-size:16px;line-height:1.8}
@media(min-width:768px) and (max-width:1050px){.section.visit-prep{padding-left:6%;padding-right:6%}.visit-prep-list{gap:12px}.visit-prep .visit-prep-card{padding:22px 18px}.visit-prep .prep-card-copy strong{font-size:21px}.visit-prep .prep-card-copy small{font-size:16px}body[data-page="booking.html"] #booking{column-gap:28px}body[data-page="booking.html"] #booking .fields{grid-template-columns:1fr;gap:0}}
@media(max-width:767px){.section.visit-prep{padding:12px 20px 44px}.visit-prep .visit-prep-header{padding-top:25px;margin-bottom:20px}.visit-prep .visit-prep-title{font-size:28px}.visit-prep .visit-prep-header p{font-size:16px}.visit-prep-list{grid-template-columns:1fr;gap:12px}.visit-prep .visit-prep-card{min-height:0;padding:22px;gap:10px}.visit-prep .prep-card-copy strong{font-size:23px}.visit-prep .prep-card-copy small{font-size:17px;margin-top:6px}.visit-prep .prep-card-action{padding-top:8px;font-size:16px}body[data-page="booking.html"] #booking{padding-bottom:24px}body[data-page="booking.html"] #booking #enquiry{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){.visit-prep .visit-prep-card{transition:none}}
.prep-app{--ink:#202b32;--muted:#596870;--line:#dce4e8;--ice:#f0f6f9;max-width:1190px;margin:0 auto;padding:52px 5% 90px;color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.65}
html[lang=ko] .prep-app{font-family:SUIT,Pretendard,sans-serif;letter-spacing:-.025em}
.prep-app *{box-sizing:border-box}.prep-app [hidden]{display:none!important}
.prep-app h1,.prep-app h2,.prep-app h3,.prep-app p{margin:0;font-family:inherit;color:inherit;letter-spacing:inherit}
.prep-app h1{font-size:42px;line-height:1.25;font-weight:600;letter-spacing:-.04em;margin:14px 0}
.prep-app h2{font-size:28px;font-weight:600;line-height:1.4}.prep-app h3{font-size:19px;line-height:1.4;font-weight:650}
.prep-app p{font-size:16px;line-height:1.7;color:var(--muted)}
.prep-app a{color:inherit}.prep-back{font-size:14px;text-decoration:underline;text-underline-offset:4px}
.prep-heading{margin-bottom:30px}.prep-heading>p{max-width:680px}
.prep-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:32px}
.prep-tabs a{display:block;flex:1;text-align:center;font-size:16px;font-weight:550;padding:16px 10px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.prep-tabs a[aria-current=page]{border-color:#29495b;color:#213f50;font-weight:750;background:linear-gradient(transparent,#f2f7f9)}
.prep-app button,.prep-app input,.prep-app select,.prep-app textarea{font:inherit;letter-spacing:inherit}
.prep-app button,.prep-upload{cursor:pointer}.prep-app :is(button,a,input,select,textarea):focus-visible{outline:2px solid #476b80;outline-offset:4px}
.prep-app .prep-panel-heading{margin-bottom:24px}.prep-panel-heading p{margin-top:8px}
.prep-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.prep-guide-card{padding:27px;border:1px solid var(--line);border-radius:14px;background:white}
.prep-guide-card>span{display:block;font-size:13px;letter-spacing:.07em;color:#788c99;margin-bottom:15px}.prep-guide-card p{margin-top:12px}
.prep-note{margin-top:22px;padding:19px 22px;border-radius:12px;background:var(--ice);font-size:15px;line-height:1.7;color:#435b69}
.prep-guide-tip{margin-top:28px;border-top:1px solid var(--line);padding-top:24px}.prep-guide-tip h3{margin-bottom:10px}
.prep-guide-tip ul{padding-left:20px;margin:0;color:var(--muted);font-size:16px;line-height:1.9}
.prep-preview-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;align-items:start}
.prep-photo-column{position:sticky;top:120px;min-width:0}
.prep-photo-stage{background:var(--ice);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.prep-empty{display:flex;min-height:300px;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px;gap:12px}
.prep-empty svg{width:55px;height:55px;fill:none;stroke:#7891a0;stroke-width:1.2}.prep-empty p{max-width:280px}
.prep-canvas{display:block;width:100%;height:auto;max-height:none;margin:0 auto;touch-action:none;background:#e5edf2}
.prep-preview-toolbar{padding:13px 16px;background:#fff;display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:14px}
.prep-app .prep-text-button{border:0;background:none;color:#345a70;padding:8px 0;font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.prep-photo-actions{padding:16px;display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);background:#fff}
.prep-btn,.prep-upload{border:1px solid #2b414e;border-radius:8px;background:#2b414e;color:white!important;padding:12px 18px;line-height:1.4;font-size:15px!important;font-weight:600;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center}
.prep-app .prep-btn.secondary{background:#fff;border-color:#cbd6dc;color:#2b414e!important}
.prep-app button:disabled{opacity:.45;cursor:default}.prep-upload{position:relative;overflow:hidden}.prep-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.prep-upload:focus-within{outline:2px solid #476b80;outline-offset:3px}
.prep-app .prep-small{font-size:14px;line-height:1.7;color:#65747d;margin-top:13px}
.prep-controls{display:grid;gap:16px;min-width:0}.prep-control-card{padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff}.prep-control-card h3{margin-bottom:18px}
.prep-control-card fieldset{padding:0;border:0;margin:0 0 20px;min-width:0}.prep-control-card legend{font-size:15px;font-weight:650;margin-bottom:9px}
.prep-options{display:flex;gap:7px;flex-wrap:wrap}.prep-options label{position:relative;flex:1;min-width:75px;cursor:pointer}
.prep-options input{position:absolute;opacity:0}.prep-options span{display:block;text-align:center;padding:10px 8px;border:1px solid #d9e1e6;border-radius:7px;font-size:14px;line-height:1.6;background:#fff}
.prep-options input:checked+span{border-color:#648195;background:#edf4f8;color:#25485f;font-weight:650}.prep-options input:focus-visible+span{outline:2px solid #476b80;outline-offset:3px}
.prep-range{display:block;margin:17px 0;font-size:15px}.prep-range>span{display:flex;justify-content:space-between;gap:12px}.prep-range output{color:#667d8c;font-variant-numeric:tabular-nums}
.prep-app input[type=range]{display:block;width:100%;height:26px;margin:7px 0;accent-color:#52748a}.prep-color{display:flex;align-items:center;justify-content:space-between;font-size:15px;margin-top:15px}.prep-color input{width:52px;height:36px;padding:2px;border:1px solid #cbd6dc;background:white;border-radius:5px}
.prep-error{color:#a43b35!important;font-size:15px!important;margin:12px 0!important}.prep-status{font-size:14px!important;margin-top:12px!important;min-height:0}.prep-status:empty{display:none}
.prep-form-wrap{max-width:790px;margin:auto}.prep-badge{display:inline-block;background:var(--ice);color:#4e6979;font-size:13px;font-weight:600;padding:5px 12px;border-radius:20px;margin-bottom:12px}
.prep-progress{display:flex;padding:0;list-style:none;gap:16px;border-bottom:1px solid var(--line);margin:24px 0}.prep-progress li{flex:1;font-size:15px;padding:0 0 15px;color:#81909a;border-bottom:2px solid transparent;margin-bottom:-1px}.prep-progress li[aria-current=step]{color:#294d63;border-color:#294d63;font-weight:650}
.prep-form-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.prep-app .prep-field{display:flex;flex-direction:column;gap:8px;font-size:16px;font-weight:550;min-width:0}.prep-field.full{grid-column:1/-1}
.prep-field :is(input,select,textarea){width:100%;min-width:0;background:#fff;border:1px solid #cdd8df;border-radius:8px;padding:13px;font-size:16px;color:#202b32;font-weight:400;line-height:1.5}.prep-field textarea{resize:vertical;min-height:96px}
.prep-health-row{margin:0;padding:20px 0;border:0;border-bottom:1px solid var(--line);min-width:0}.prep-health-row legend{display:block;padding:0;font-size:16px;line-height:1.7;font-weight:500;float:left;width:100%;margin-bottom:12px}.prep-health-row .prep-options{clear:both;max-width:250px}.prep-health-row .prep-options span{padding:9px 16px}
.prep-form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:28px;flex-wrap:wrap}.prep-form-actions .prep-btn:last-child{margin-left:auto}
.prep-review{border:1px solid var(--line);border-radius:12px;padding:24px;background:#f8fafb;margin-top:22px}.prep-review pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:15px;line-height:1.9;margin:0;color:#33454f}
.prep-form-wrap .prep-note{margin-bottom:24px}.prep-preview-layout .prep-note{font-size:14px}.prep-print-only{display:none}
@media(max-width:767px){.prep-app{padding:30px 20px 64px}.prep-app h1{font-size:32px}.prep-app h2{font-size:24px}.prep-app h3{font-size:18px}.prep-tabs{gap:0;margin-bottom:25px}.prep-tabs a{font-size:14px;padding:14px 5px}.prep-guide-grid{grid-template-columns:1fr;gap:12px}.prep-guide-card{padding:22px}.prep-guide-card>span{margin-bottom:9px}.prep-preview-layout{grid-template-columns:1fr;gap:20px}.prep-photo-column{position:static}.prep-canvas{max-height:none;max-width:100%!important}.prep-photo-actions{padding:13px;gap:8px}.prep-photo-actions .prep-btn,.prep-upload{padding:11px 12px;font-size:14px!important}.prep-empty{min-height:235px}.prep-control-card{padding:20px}.prep-form-fields{grid-template-columns:1fr}.prep-field.full{grid-column:auto}.prep-progress{gap:8px}.prep-progress li{font-size:14px}.prep-review{padding:18px}.prep-note{padding:17px}.prep-form-actions .prep-btn{flex:1}.prep-form-actions{gap:8px}.prep-app .prep-panel-heading{margin-bottom:20px}}
@media print{body>*{display:none!important}body>main.prep-app{display:block!important;max-width:none;padding:0;color:black}.prep-app>*{display:none!important}.prep-app>#questionnaire{display:block!important}.prep-form-wrap>*{display:none!important}.prep-form-wrap>#prep-questionnaire{display:block!important}#prep-questionnaire>*{display:none!important}#prep-questionnaire>.prep-form-step[data-step="2"]{display:block!important}.prep-form-step[data-step="2"]>*{display:none!important}.prep-form-step[data-step="2"]>.prep-review{display:block!important;border:0;padding:0;background:white}.prep-review pre{font-size:11pt;color:black}.prep-review .prep-print-only{display:block!important;font-size:10pt;margin-bottom:12px;color:#555}}
