/* A quick hello, followed by an unhurried look around. */
.visit-dialog{box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 40px);padding:0;margin:auto;border:0;background:#fff;color:#262626;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 100px #0005}
.visit-dialog::backdrop{background:#101010ba;backdrop-filter:blur(5px)}
.visit-dialog[open]{animation:visit-arrive .2s ease-out}
.visit-dialog [hidden]{display:none!important}
.visit-header{position:sticky;top:0;z-index:2;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 24px;border-bottom:1px solid #e6e6e6}
.visit-header>p{font-size:14px;font-weight:700;letter-spacing:1.4px;line-height:1.6}
.visit-header>p span{display:block;font-size:12px;letter-spacing:1px;color:#666;font-weight:500}
.visit-header-actions{display:flex;gap:13px;align-items:center}
.visit-close{width:42px;height:42px;font-size:30px;line-height:1;background:#f4f4f4;border:0;color:#262626;cursor:pointer;flex-shrink:0}
.visit-sound{display:flex;align-items:center;gap:9px}
.visit-sound button{font:inherit;font-size:14px;white-space:nowrap;border:1px solid #ccc;background:#fff;min-height:44px;padding:7px 10px;cursor:pointer}
.visit-sound label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.visit-sound input[type=range]{width:65px;min-width:0;min-height:0;height:32px;border:0;padding:0;accent-color:#262626;background:transparent;cursor:pointer}
.visit-dialog :focus-visible{outline:2px solid #585858;outline-offset:4px}
.visit-audio-status{font-size:14px;line-height:1.5;background:#f4f4f4;color:#555;margin:0;padding:8px 24px}
.visit-audio-status:empty{display:none}
.visit-request{padding:34px 38px 30px}
.visit-request .eyebrow{font-size:13px;line-height:1.6;letter-spacing:1.2px;margin-bottom:16px}
.visit-request h2{font-family:var(--sans);font-size:clamp(36px,5vw,49px);line-height:1.02;font-weight:600;letter-spacing:-2px;margin:0 0 18px}
.visit-request h2 em{font-family:var(--serif);font-weight:400;color:#585858}
.visit-intro{color:#555;font-size:16px;line-height:1.7;margin:0 0 25px;max-width:370px}
.visit-request .field{margin-bottom:18px}
.visit-request .field label{font-size:15px;line-height:1.5;font-weight:600}
.visit-request input:not(.honeypot){min-height:48px;font-size:16px;background:#fafafa;border:1px solid #ccc;border-radius:0}
.visit-submit{justify-content:space-between;width:100%;font-size:16px;min-height:52px;margin-top:2px}
.visit-submit:disabled{opacity:.65;cursor:wait}
.visit-privacy{font-size:14px;color:#666;line-height:1.6;margin:12px 0 24px}
.visit-privacy a{text-decoration:underline;text-underline-offset:3px}
.visit-call{font-size:15px;text-decoration:underline;text-underline-offset:4px}
.visit-send-status{color:#8d2b27;font-size:15px;line-height:1.6;margin-bottom:12px}
.visit-send-status:empty{display:none}
.visit-dialog-confirmed{width:min(1080px,calc(100vw - 40px))}
.visit-thanks{padding:30px 32px 24px}
.visit-thanks-copy{max-width:740px;margin-bottom:24px}
.visit-thanks-copy .eyebrow{font-size:13px;line-height:1.6;letter-spacing:1.2px;margin-bottom:13px}
.visit-thanks h2{font-family:var(--sans);font-size:clamp(27px,3.7vw,39px);font-weight:600;letter-spacing:-1.2px;margin:0 0 14px;line-height:1.12}
.visit-thanks-copy>p:last-child{color:#555;font-size:16px;line-height:1.7;max-width:690px}
.visit-tabs{display:flex;gap:25px;border-bottom:1px solid #ddd;margin-bottom:20px}
.visit-tabs>button{border:0;background:none;font:inherit;color:#666;font-size:16px;font-weight:500;padding:12px 0 15px;min-height:46px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.visit-tabs>button span{padding-left:14px}
.visit-tabs>button[aria-selected=true]{color:#222;border-color:#222;font-weight:600}
.visit-tour-stage{position:relative;width:100%;min-width:0;overflow:hidden;background:#252525;aspect-ratio:16/9;min-height:320px}
.visit-tour-stage>#visit-tour-frame{position:absolute;inset:0}
.visit-tour-stage iframe{width:100%;height:100%;min-height:320px;border:0;display:block}
.visit-tour-help{display:flex;gap:20px;justify-content:space-between;align-items:flex-start;margin-top:13px;font-size:14px;line-height:1.6;color:#666}
.visit-tour-help>a{flex-shrink:0;color:#333;text-decoration:underline;text-underline-offset:3px}
.visit-loading-help{padding:12px;background:#f4f4f4;font-size:14px;color:#555;line-height:1.5;margin-top:12px}
.visit-loading-help button{background:none;border:0;font:inherit;color:inherit;text-decoration:underline;padding:0;cursor:pointer}
.visit-more{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;font:inherit;font-size:16px;background:#f1f1f1;color:#262626;border:0;padding:17px 20px;cursor:pointer;margin-top:20px;text-align:left}
.visit-gallery-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;font-size:14px;line-height:1.5;color:#666;margin:0 0 12px}
.visit-gallery-toolbar>button{font:inherit;font-size:14px;background:#fff;border:1px solid #ccc;padding:8px 12px;min-height:44px;cursor:pointer}
.visit-gallery-toolbar>span:last-child{margin-left:auto}
.visit-gallery-stage{position:relative;background:#eeeeec;display:flex;align-items:center;justify-content:center;min-height:300px;height:min(49vh,485px);padding:16px 62px}
.visit-gallery-stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px}
.visit-gallery-stage>button{position:absolute;top:calc(50% - 22px);width:44px;height:44px;font-size:23px;background:#fff;border:1px solid #d1d1d1;color:#222;cursor:pointer}
#visit-gallery-prev{left:10px}#visit-gallery-next{right:10px}
.visit-gallery-caption{padding:17px 2px 0}
.visit-gallery-caption h3{font-size:21px;line-height:1.35;font-weight:600;margin:0 0 7px}
.visit-gallery-caption p{font-size:16px;line-height:1.7;color:#666}
.visit-gallery-caption small{font-size:14px;line-height:1.5;color:#666;display:block;margin-top:7px}
.inline-tour-button{font:inherit;background:transparent;border:0;padding:0;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.site-header nav>button{white-space:nowrap;cursor:pointer}
@keyframes visit-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){
 .visit-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
 .visit-header{padding:12px 16px;gap:10px;flex-wrap:wrap}
 .visit-header>p{font-size:14px;line-height:1.5}
 .visit-header>p span{font-size:12px;letter-spacing:.7px}
 .visit-header-actions{display:contents}
 .visit-close{width:44px;height:44px;margin-left:auto}
 .visit-sound{order:3;flex-basis:100%;gap:12px}
 .visit-sound button{font-size:14px;padding:8px 12px}
 .visit-sound input[type=range]{width:100px;height:36px}
 .visit-request{padding:26px 22px}
 .visit-request h2{font-size:43px}
 .visit-thanks{padding:24px 18px 20px}
 .visit-thanks h2{font-size:28px}
 .visit-thanks-copy>p:last-child{font-size:16px}
 .visit-tour-stage,.visit-tour-stage iframe{min-height:360px}
 .visit-tour-help{flex-direction:column;gap:8px}
 .visit-gallery-stage{padding:12px 44px;height:42vh;min-height:265px}
 .visit-gallery-stage>button{width:34px;height:44px}
 #visit-gallery-prev{left:5px}#visit-gallery-next{right:5px}
 .visit-gallery-toolbar{gap:10px 12px}
 .visit-gallery-toolbar>span:last-child{flex-basis:100%;margin-left:0;font-size:14px}
 .visit-gallery-caption h3{font-size:21px}
 .visit-tabs{gap:20px}
 .visit-tabs>button span{padding-left:6px}
 .site-header nav>button{align-self:flex-start;margin-top:8px}
}

@media(prefers-reduced-motion:reduce){.visit-dialog[open]{animation:none}}

.visit-gallery-peek{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.visit-gallery-peek button{background:#eee;border:0;border-radius:8px;padding:0;aspect-ratio:1.7;overflow:hidden;cursor:pointer}.visit-gallery-peek img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.visit-gallery-peek button:hover img{transform:scale(1.04)}

.visit-date-field input[type=date]{display:block;width:100%;min-width:0}
.visit-date-field label span{font-weight:400;color:#777}
.visit-time-choice{border:0;padding:0;margin:0}
.visit-time-choice legend{font-size:15px;line-height:1.5;font-weight:600;margin-bottom:9px}
.visit-time-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.visit-time-options label{position:relative;display:block;cursor:pointer;min-width:0}
.visit-time-options input[type=radio]{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0;margin:0}
.visit-time-options span{display:grid;place-items:center;border:1px solid #ccc;background:#fafafa;min-height:48px;padding:9px 5px;font-size:14px;line-height:1.4;text-align:center;color:#555}
.visit-time-options input:checked+span{border-color:#262626;background:#262626;color:#fff}
.visit-time-options input:focus-visible+span{outline:2px solid #585858;outline-offset:3px}
.visit-time-help{font-size:14px;color:#666;line-height:1.5;margin:10px 0 20px}
.visit-another-request{display:block;background:none;border:0;border-top:1px solid #ddd;width:100%;text-align:left;margin-top:23px;padding:17px 0 0;font:inherit;font-size:15px;line-height:1.5;color:#444;cursor:pointer}

/* Keep a direct phone call visible before any form fields. */
.visit-call{display:flex;align-items:center;gap:14px;background:#262626;color:#fff;text-decoration:none;padding:16px 18px;margin:0 0 20px;border:1px solid #262626}
.visit-call:hover{background:#454545;border-color:#454545}
.visit-call>svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}
.visit-call>span{font-size:15px;line-height:1.5;color:#eee}
.visit-call strong{display:block;font-size:22px;letter-spacing:.2px;font-weight:600;color:#fff}
.visit-call>b{font-size:24px;margin-left:auto;font-weight:400}
.visit-date-field label span{color:#666}
@media(max-width:600px){
 .visit-gallery-stage{padding-left:56px;padding-right:56px}
 .visit-gallery-stage>button{width:44px;height:44px}
}
@media(max-width:600px){
 .visit-call{gap:10px;padding:14px 12px}
 .visit-call>svg{width:20px;height:20px}
 .visit-call strong{font-size:21px;white-space:nowrap}
 .visit-call>b{font-size:21px}
}
