.visit-page { --visit-navy:#123e60; --visit-muted:#5b7182; --visit-accent:#b34c23; padding-bottom:96px; color:var(--visit-navy); background:#fbfaf7; font-family:"Pretendard Variable",Pretendard,sans-serif; }
.visit-page *, .visit-page *::before, .visit-page *::after { box-sizing:border-box; }
.visit-page [hidden] { display:none !important; }
.visit-page .visit-wide { width:min(1240px,calc(100% - 96px)); margin-inline:auto; }
.visit-page [id] { scroll-margin-top:124px; }
.visit-page a { text-decoration:none; }
.visit-page a:focus-visible, .visit-page button:focus-visible { outline:3px solid #168d8c; outline-offset:4px; }
.visit-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; padding-block:30px; color:var(--visit-muted); font-size:14px; line-height:1.5; }
.visit-breadcrumb a { color:inherit; }
.visit-breadcrumb strong { color:var(--visit-navy); font-weight:650; }
.visit-page .visit-eyebrow { margin:0; color:var(--visit-accent); font-size:12px; font-weight:750; line-height:1.65; letter-spacing:.1em; }
.visit-intro { padding:48px 0; }
.visit-intro-row { display:flex; align-items:end; justify-content:space-between; gap:36px; margin-top:20px; }
.visit-intro h1 { margin:0; color:var(--visit-navy); font-size:clamp(34px,3.5vw,52px); font-weight:400; line-height:1.35; letter-spacing:-.045em; word-break:keep-all; }
.visit-intro h1 strong { color:inherit; font-weight:750; }
.visit-intro-row > p { margin:0 0 5px; color:var(--visit-muted); font-size:17px; line-height:1.85; word-break:keep-all; }
.floor-tabs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.floor-tabs a { padding:18px 20px; border:1px solid #dce3e6; border-radius:14px; background:#fff; color:var(--visit-navy); transition:background-color .15s,border-color .15s; }
.floor-tabs strong { display:block; font-size:25px; line-height:1.3; font-weight:750; }
.floor-tabs span { display:block; margin-top:7px; color:#5b7182; font-size:13px; line-height:1.5; }
.floor-tabs a:hover { border-color:#7895a8; background:#eff4f6; }
.floor-tabs a[aria-selected="true"] { border-color:var(--visit-navy); background:var(--visit-navy); color:#fff; }
.floor-tabs a[aria-selected="true"] span { color:#dce6ed; }
.floor-panel { margin-top:32px; padding:32px; border:1px solid #dfe5e7; border-radius:24px 64px 24px 24px; background:#fff; }
.floor-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:26px; }
.floor-heading > div { display:flex; align-items:center; gap:24px; min-width:0; }
.floor-number { color:#a65934; font-size:42px; line-height:1.2; font-weight:750; letter-spacing:-.04em; }
.floor-heading h2 { margin:0; color:var(--visit-navy); font-size:26px; line-height:1.4; font-weight:700; word-break:keep-all; }
.floor-heading > p { flex-shrink:0; margin:0; color:var(--visit-muted); font-size:14px; font-variant-numeric:tabular-nums; }
.floor-heading > p strong { color:var(--visit-navy); }
.floor-feature { margin:0; }
.floor-feature > a { display:block; border-radius:16px; overflow:hidden; background:#f1f3f2; }
.floor-feature img { display:block; width:100%; height:clamp(320px,40vw,560px); object-fit:contain; }
.floor-feature figcaption { display:flex; justify-content:space-between; gap:16px; padding:18px 0 24px; color:var(--visit-navy); font-size:18px; font-weight:700; line-height:1.6; }
.floor-feature small { color:var(--visit-muted); font-size:13px; font-weight:400; }
.floor-thumbnails { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.floor-thumbnails a { display:block; min-width:0; border:1px solid #dce4e8; border-radius:12px; overflow:hidden; color:#476478; background:#fff; }
.floor-thumbnails img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; background:#f1f3f2; }
.floor-thumbnails span { display:block; padding:10px 12px; font-size:14px; line-height:1.5; }
.floor-thumbnails a:hover { border-color:#7895a8; }
.floor-thumbnails a[aria-current="true"] { border-color:var(--visit-navy); box-shadow:inset 0 0 0 1px var(--visit-navy); background:#edf3f5; color:var(--visit-navy); font-weight:700; }
.visit-page .visit-note { margin:22px 0 0; color:#657987; font-size:14px; line-height:1.8; word-break:keep-all; }
.visit-contact { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:38px 40px; margin-top:52px; border-radius:24px; background:#edf3f5; border:1px solid #dce5e9; }
.visit-contact h2 { margin:10px 0 12px; color:var(--visit-navy); font-size:28px; font-weight:750; line-height:1.4; }
.visit-contact p:last-child { margin:0; color:var(--visit-muted); font-size:16px; line-height:1.7; }
.visit-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.visit-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; padding:16px 22px; min-height:54px; border:1px solid var(--visit-navy); border-radius:12px; background:var(--visit-navy); color:#fff; font:700 16px/1.5 "Pretendard Variable",Pretendard,sans-serif; cursor:pointer; }
.visit-button:hover { background:#245778; color:#fff; }
.visit-button.is-outline { color:var(--visit-navy); background:transparent; }
.visit-button.is-outline:hover { background:#edf3f5; }
.visit-button.is-naver { background:#087e42; border-color:#087e42; }
.visit-button.is-naver:hover { background:#056c37; }
.visit-phone { color:var(--visit-navy); font-size:23px; font-weight:750; white-space:nowrap; }
.visit-phone small { display:block; margin-bottom:5px; color:var(--visit-muted); font-size:13px; font-weight:500; }
.visit-text-link { display:inline-flex; align-items:center; gap:20px; width:fit-content; padding-bottom:8px; border-bottom:1px solid #b8c9d4; color:var(--visit-navy); font-size:15px; font-weight:700; line-height:1.7; }
.visit-text-link span { color:var(--visit-accent); }
.location-hero { display:grid; grid-template-columns:1fr 1fr; border:1px solid #dfe5e7; border-radius:26px 72px 26px 26px; overflow:hidden; background:#fff; }
.location-photo { position:relative; margin:0; min-height:600px; background:#eef1ef; }
.location-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 45%; }
.location-photo figcaption { position:absolute; bottom:18px; left:20px; right:20px; width:fit-content; padding:7px 11px; border-radius:6px; background:rgba(9,43,75,.8); color:#fff; font-size:11px; line-height:1.5; }
.location-address { padding:52px; }
.location-address h2 { margin:18px 0 32px; color:var(--visit-navy); font-size:32px; line-height:1.35; font-weight:750; letter-spacing:-.035em; }
.location-road { margin:0; color:var(--visit-navy); font-size:30px; line-height:1.5; letter-spacing:-.04em; font-weight:650; }
.location-lot { margin:14px 0 0; color:var(--visit-muted); font-size:14px; line-height:1.8; word-break:keep-all; }
.location-subway { margin:28px 0; padding:22px 0; border-block:1px solid #dce4e8; color:var(--visit-navy); font-size:19px; line-height:1.8; font-weight:650; }
.location-subway > span { display:inline-block; margin-right:6px; padding:1px 9px; border:1px solid #157d57; border-radius:20px; color:#157d57; font-size:13px; vertical-align:middle; }
.location-subway small { display:block; margin-top:5px; color:var(--visit-muted); font-size:15px; font-weight:400; }
.address-status { margin:12px 0 0; min-height:22px; color:#557287; font-size:13px; line-height:1.6; }
.visit-section-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:24px; gap:12px; }
.visit-section-nav a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:20px 22px; border:1px solid #dce3e6; border-radius:12px; color:var(--visit-navy); background:#fff; font-size:16px; font-weight:650; }
.visit-section-nav a:hover { border-color:var(--visit-navy); }
.visit-section-nav span { color:var(--visit-accent); }
.visit-section { padding-top:76px; }
.visit-section-heading { margin-bottom:26px; }
.visit-section-heading h2 { margin:12px 0 0; color:var(--visit-navy); font-size:32px; font-weight:750; line-height:1.4; letter-spacing:-.03em; }
.parking-grid,.transport-grid,.visit-hours-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.visit-info-card { min-width:0; padding:36px; border:1px solid #dfe5e7; border-radius:22px; background:#fff; }
.visit-info-card h3 { margin:12px 0 20px; color:var(--visit-navy); font-size:25px; font-weight:700; line-height:1.5; letter-spacing:-.03em; }
.visit-info-card > p:not(.visit-eyebrow):not(.visit-note) { margin:16px 0 24px; color:var(--visit-muted); font-size:17px; line-height:1.85; word-break:keep-all; }
.visit-info-card p strong { color:var(--visit-navy); font-weight:600; }
.visit-number { display:grid; place-items:center; width:48px; height:48px; border-radius:12px; background:#edf3f5; color:var(--visit-navy); font-size:30px; font-weight:700; }
.parking-highlight { background:#f5f0e7; border-color:#e6ddce; }
.parking-highlight h3 { margin-top:24px; font-weight:400; }
.parking-highlight h3 strong { font-weight:750; font-size:34px; color:var(--visit-navy); }
.visit-route { counter-reset:route; margin:0; padding:0; list-style:none; }
.visit-route li { counter-increment:route; position:relative; padding:0 0 20px 38px; color:var(--visit-muted); font-size:17px; line-height:1.8; }
.visit-route li:last-child { padding-bottom:0; }
.visit-route li::before { content:counter(route); display:grid; place-items:center; position:absolute; top:2px; left:0; width:25px; height:25px; border:1px solid #c9d8e0; border-radius:50%; color:var(--visit-navy); font-size:12px; font-weight:700; }
.visit-route strong { color:var(--visit-navy); }
.bus-routes { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 25px; padding:0; list-style:none; }
.bus-routes li { min-width:64px; padding:9px 14px; border:1px solid #cddde4; border-radius:8px; background:#eef4f6; color:#235675; font-size:18px; font-weight:700; text-align:center; }
.visit-transfer + .visit-transfer { padding-top:22px; margin-top:22px; border-top:1px solid #e0e6e8; }
.visit-transfer h4 { margin:0 0 8px; color:var(--visit-navy); font-size:18px; line-height:1.5; font-weight:650; }
.visit-transfer p { margin:0; color:var(--visit-muted); font-size:16px; line-height:1.85; word-break:keep-all; }
.visit-transfer span { color:var(--visit-accent); }
.visit-hours { margin:0; }
.visit-hours > div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid #e0e6e8; font-size:16px; line-height:1.6; }
.visit-hours dt { color:var(--visit-muted); }
.visit-hours dd { margin:0; color:var(--visit-navy); font-weight:700; white-space:nowrap; }
.visit-hours .is-closed dd { color:var(--visit-accent); }
.visit-call-card { display:flex; flex-direction:column; align-items:flex-start; background:#edf3f5; }
.visit-call-card .visit-actions { margin-top:auto; padding-top:24px; }
.visit-call-number { display:block; margin-top:16px; color:var(--visit-navy); font-size:clamp(28px,3vw,42px); font-weight:750; letter-spacing:-.035em; white-space:nowrap; }
@media(min-width:1181px) and (max-width:1640px) {
 .visit-page .visit-wide { width:calc(100% - 240px); margin-left:48px; margin-right:192px; }
 .location-address { padding:38px; }
 .visit-intro-row { gap:28px; }
 .visit-intro-row > p { max-width:290px; }
 .visit-contact { align-items:start; flex-direction:column; }
}
@media(max-width:1000px) {
 .visit-intro-row { display:block; }
 .visit-intro-row > p { margin-top:24px; }
 .floor-tabs { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
 .floor-tabs a { padding:16px 12px; }
 .floor-thumbnails { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .location-hero { grid-template-columns:.85fr 1.15fr; }
 .location-address { padding:32px; }
 .location-address h2 { font-size:28px; }
 .location-road { font-size:26px; }
 .visit-info-card { padding:28px; }
 .visit-hours-grid { grid-template-columns:1fr; }
 .visit-contact { align-items:start; flex-direction:column; }
}
@media(max-width:700px) {
 .visit-page { padding-bottom:68px; }
 .visit-page .visit-wide { width:calc(100% - 36px); }
 .visit-breadcrumb { padding-block:24px; font-size:12px; gap:9px; }
 .visit-intro { padding:22px 0 32px; }
 .visit-intro h1 { font-size:32px; }
 .visit-intro-row > p { font-size:16px; }
 .floor-tabs { grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
 .floor-tabs a { padding:15px 4px; text-align:center; border-radius:10px; }
 .floor-tabs strong { font-size:20px; }
 .floor-tabs span { display:none; }
 .floor-panel { margin-top:22px; padding:20px 16px; border-radius:18px 38px 18px 18px; }
 .floor-heading { gap:12px; margin-bottom:20px; }
 .floor-heading > div { gap:12px; }
 .floor-number { font-size:30px; }
 .floor-heading h2 { font-size:20px; }
 .floor-heading > p { font-size:12px; }
 .floor-feature img { height:clamp(210px,60vw,370px); }
 .floor-feature figcaption { flex-direction:column; gap:4px; padding:14px 0 20px; font-size:17px; }
 .floor-feature small { font-size:12px; }
 .floor-thumbnails { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
 .floor-thumbnails span { padding:8px; font-size:12px; }
 .visit-contact { padding:28px 24px; gap:26px; margin-top:38px; }
 .visit-contact h2 { font-size:24px; }
 .visit-actions { gap:14px; }
 .visit-button { gap:18px; padding:14px 18px; font-size:15px; }
 .location-hero { grid-template-columns:1fr; border-radius:22px 54px 22px 22px; }
 .location-photo { min-height:380px; }
 .location-photo img { object-position:50% 36%; }
 .location-address { padding:30px 24px 24px; }
 .location-address h2 { margin-bottom:24px; }
 .location-road { font-size:28px; }
 .visit-section-nav { grid-template-columns:1fr; gap:8px; }
 .visit-section-nav a { padding:16px 20px; font-size:15px; }
 .visit-section { padding-top:48px; }
 .visit-section-heading { margin-bottom:20px; }
 .visit-section-heading h2 { font-size:27px; }
 .parking-grid,.transport-grid { grid-template-columns:1fr; gap:18px; }
 .visit-info-card { padding:28px 24px; }
 .visit-info-card h3 { font-size:24px; }
 .visit-info-card > p:not(.visit-eyebrow):not(.visit-note),.visit-route li { font-size:16px; }
 .parking-highlight h3 strong { font-size:30px; }
 .visit-call-number { font-size:32px; }
 .visit-hours > div { font-size:15px; gap:10px; }
}
@media(prefers-reduced-motion:reduce) { .floor-tabs a { transition:none; } }

/* Show the bright DSC00403 around the operating table and surgical lights.
   The gallery trims the foreground person; large view retains the full photograph. */
.floor-feature > a[href*="operating-room-dsc00403-"] {
 width:100%; max-width:780px; aspect-ratio:4/3; margin-inline:auto;
}
.floor-feature > a[href*="operating-room-dsc00403-"] img {
 width:100%; height:100%; object-fit:cover; object-position:100% 50%;
 transform:scale(1.18); transform-origin:100% 50%;
}
.floor-thumbnails a[href*="operating-room-dsc00403-"] img {
 object-position:100% 50%; transform:scale(1.3); transform-origin:100% 50%;
}
.floor-thumbnails a[href*="operating-room-dsc00403-"] span {
 position:relative; z-index:1; background:inherit;
}
