/* Plan-a-Visit dialog and pickers — the production rules from monogram.css.
   The variables they read are scoped to the dialog, so a template's own
   :root palette is never touched. --lz-accent comes from the building. */
dialog.tide-dialog{--ink:#074B4D;--bg:#F3F0E7;--accent:var(--lz-accent,#9A5A2B);--accent-mid:var(--lz-accent,#9A5A2B);--serif:'Newsreader',Georgia,serif;--sans:'Montserrat','Avenir Next',sans-serif;--type-small:.875rem;--type-body:1rem;--type-caption:.75rem;--type-action:.9375rem;font-family:var(--sans);line-height:1.6;color:#074B4D}
dialog.tide-dialog *{box-sizing:border-box}
dialog.tide-dialog .kick{font-size:.64rem;font-weight:600;letter-spacing:.46em;text-transform:uppercase;color:var(--accent);margin:0}
dialog.tide-dialog p,dialog.tide-dialog h2,dialog.tide-dialog h3{margin-top:0}
dialog.tide-dialog a{color:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html:has(dialog[open]),html:has(.mnav.open){overflow:hidden}
.tide-button,.pactions button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:15px 25px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font:500 var(--type-small) var(--sans);letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:background-color .3s cubic-bezier(.22,1,.36,1),color .3s cubic-bezier(.22,1,.36,1),border-color .3s cubic-bezier(.22,1,.36,1)}
.tide-button.outline{background:transparent;color:var(--ink)}
.tide-button.outline:is(:hover,:focus-visible){background:var(--ink);color:var(--bg);border-color:var(--ink)}
.tide-dialog{--dialog-gap:48px;border:0;padding:56px 8px 8px;position:fixed;margin:auto;width:min(620px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - var(--dialog-gap));background:var(--bg);color:#074B4D;overflow:hidden;animation:tide-dialog-in .4s cubic-bezier(.22,1,.36,1) both}
.tide-dialog::backdrop{background:rgba(4,27,28,.6);backdrop-filter:blur(5px);animation:tide-backdrop-in .4s ease both}
.tide-dialog[data-closing]{animation:tide-dialog-out .28s cubic-bezier(.4,0,1,1) both;pointer-events:none}
.tide-dialog[data-closing]::backdrop{animation:tide-backdrop-out .28s ease both}
.dialog-sheet{position:relative;background:var(--bg);padding:8px calc(clamp(26px,5vw,46px) - 8px) calc(clamp(26px,5vw,46px) - 8px);max-height:calc(100dvh - var(--dialog-gap) - 64px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#92A1A6 transparent}
.dialog-sheet .kick{font-size:var(--type-small);padding-right:35px;color:var(--accent, #A4592F)}
.dialog-sheet h2{font:400 clamp(2rem,4vw,3rem)/1.1 var(--serif);margin:10px 35px 16px 0}
.dialog-sheet h2 em{font-weight:400;color:var(--accent-mid, #AD6643)}
.dialog-close,.mnav .mclose{display:grid;place-items:center;width:44px;height:44px;border:1px solid transparent;border-radius:50%;position:absolute;right:14px;top:14px;background:none;color:#074B4D;cursor:pointer;font:300 28px/1 var(--sans);transition:background .25s,color .25s,border-color .25s}
.tide-dialog>.dialog-close{top:8px;right:22px;z-index:2;background:var(--bg)}
.dialog-close:hover,.mnav .mclose:hover{background:#074B4D;color:#F3F0E7;border-color:#074B4D}
.dialog-close:focus-visible{outline-offset:2px}
.tide-dialog.virtual-dialog{width:min(1440px,calc(100vw - 32px));height:min(860px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);padding:0}
.virtual-dialog .dialog-sheet{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;max-height:none;padding:0;overflow:hidden;scrollbar-gutter:auto}
.virtual-dialog .dialog-sheet h2{font-size:clamp(1.25rem,2.5vw,1.75rem);line-height:1.3;margin:0;padding:18px 76px 18px 24px}
.virtual-dialog>.dialog-close{top:10px;right:12px}
@media(max-width:600px){.tide-dialog.virtual-dialog{width:100vw;height:100dvh;max-height:100dvh}.virtual-dialog .dialog-sheet h2{padding-left:16px}}
.visit-intro{font-size:var(--type-small);line-height:1.8;color:#536367;margin-bottom:18px;max-width:56ch}
.visit-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.visit-fields label{display:flex;flex-direction:column;gap:8px;font-size:var(--type-small);font-weight:500;min-width:0}
.visit-fields label.wide{grid-column:1/-1}
.visit-fields label span{font-size:var(--type-small);font-weight:400;color:#536367;display:contents}
.visit-fields input,.visit-fields select{width:100%;min-width:0;min-height:48px;appearance:none;border:1px solid #92A1A6;background:transparent;color:#074B4D;border-radius:0;padding:11px 12px;font:400 var(--type-small) var(--sans)}
.visit-fields select{appearance:auto}
.visit-fields input:focus,.visit-fields select:focus{outline:2px solid #074B4D;outline-offset:2px}
.visit-hours,.visit-consent{font-size:var(--type-small);line-height:1.6;color:#536367;margin-top:12px}
.visit-consent a{text-underline-offset:3px;white-space:nowrap}
.visit-submit{width:100%;margin-top:18px;font-size:var(--type-small)}
.visit-submit:disabled{opacity:.65;cursor:default}
.visit-status:empty{display:none}
.visit-status{font-size:var(--type-small);line-height:1.7;margin-top:18px;padding:14px 0;border-top:1px solid #B4BDC1}
.visit-request[hidden],.visit-success[hidden]{display:none}
.visit-success .visit-intro{max-width:42ch}
.visit-receipt{border-top:1px solid #B4BDC1;margin:28px 0}
.visit-receipt>div{padding:18px 0;border-bottom:1px solid #B4BDC1}
.visit-receipt dt{font:500 var(--type-small) var(--sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;color:#536367}
.visit-receipt dd{margin:0;font:400 1.02rem/1.6 var(--sans)}
.visit-receipt dd span{display:block}
.visit-receipt dd span+span{font-size:var(--type-small);color:#536367}
.visit-success-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 28px}
.visit-success-actions .tide-button{min-width:130px}
.visit-success-actions .text-link{font-size:var(--type-small)}
.visit-success-actions .tide-arrow{margin-left:10px}
#visit-success-title:focus{outline:none}
.visit-call{text-align:center;font-size:var(--type-small);margin-top:24px}
.visit-call a{text-underline-offset:3px}
@keyframes tide-dialog-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes tide-dialog-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}
@keyframes tide-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes tide-backdrop-out{from{opacity:1}to{opacity:0}}
@media(max-width:700px){.tide-dialog{--dialog-gap:24px}.dialog-sheet{padding:8px 16px 22px}.visit-fields{grid-template-columns:1fr}.visit-fields input,.visit-fields select{font-size:16px}.visit-fields label.wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.tide-dialog,.tide-dialog::backdrop{animation:none!important}.dialog-close,.mnav .mclose,.special-tip,.tide-button{transition:none}}
.visit-picker{min-width:0;align-self:start}
.picker-label{display:block;font-size:var(--type-small);font-weight:500;margin-bottom:8px}
.picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:12px 16px;border:1px solid #92A1A6;background:none;color:#074B4D;text-align:left;font:400 16px/1.4 var(--sans);cursor:pointer}
.picker-trigger svg{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.5;fill:none;transition:transform .25s}
.picker-trigger[aria-expanded="true"] svg{transform:rotate(180deg)}
.picker-trigger:disabled{opacity:.55;cursor:default}
.picker-options{margin-top:10px;padding:12px;background:#EAE8DE;border:1px solid #B8C1C5;animation:tide-dialog-in .25s ease}
.picker-options[hidden]{display:none}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.calendar-head strong{font:500 var(--type-small) var(--sans)}
.calendar-head button{background:none;border:0;width:32px;height:36px;font:400 24px var(--sans);color:#074B4D;cursor:pointer}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.calendar-week span{text-align:center;font-size:var(--type-small);padding:6px 0;color:#607072}
.calendar-days button{height:34px;min-width:0;padding:0;border:1px solid transparent;background:none;color:#074B4D;font:400 var(--type-small) var(--sans);cursor:pointer}
.calendar-days button[aria-current="date"]{border-bottom-color:var(--accent-mid, #AD6643)}
.calendar-days button:disabled,.calendar-head button:disabled{opacity:.3;cursor:default}
.calendar-days button:hover:not(:disabled),.calendar-days button[aria-pressed="true"]{background:#074B4D;color:#F3F0E7}
#visit-time-options{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:6px;height:max-content;max-height:270px;overflow:auto}
#visit-time-options[hidden]{display:none}
#visit-time-options button{min-height:40px;font:400 var(--type-small) var(--sans);border:1px solid #92A1A6;background:none;color:#074B4D;cursor:pointer;padding:6px}
#visit-time-options button:hover,#visit-time-options button[aria-pressed="true"]{background:#074B4D;color:#F3F0E7}
@media(max-width:600px){.picker-trigger{font-size:16px}.calendar-days button{height:40px}.calendar-head strong{font-size:var(--type-small)}}
@media(prefers-reduced-motion:reduce){.picker-options{animation:none}.carousel-toolbar button,.picker-trigger svg{transition:none}}
.visit-fields textarea{width:100%;padding:12px;border:1px solid #92A1A6;background:transparent;font:400 var(--type-small)/1.7 var(--sans);color:#074B4D;resize:vertical;min-height:150px;border-radius:0}
.visit-fields textarea:focus{outline:2px solid #074B4D;outline-offset:2px}
@media(max-width:750px){.visit-fields textarea{font-size:16px}}
.picker-options{position:fixed;inset:auto;margin:0;z-index:200;max-width:calc(100vw - 32px);overflow:auto;overscroll-behavior:contain;color:#074B4D;box-shadow:0 14px 35px rgba(4,52,58,.16);animation:none}
.picker-options::backdrop{background:transparent;pointer-events:none}
.tide-arrow,.calendar-head button[data-month]::before,.mtc-root .mtc-calnav::before{display:inline-block;width:32px;height:12px;flex-shrink:0;background:currentColor;mask:url("img/arrow-right.svg") center/contain no-repeat;-webkit-mask:url("img/arrow-right.svg") center/contain no-repeat}
.tide-arrow-left{transform:rotate(180deg)}
.calendar-head button[data-month],.mtc-root .mtc-calnav{display:grid;place-items:center;font-size:0}
.calendar-head button[data-month]::before,.mtc-root .mtc-calnav::before{content:"";width:26px}
.calendar-head button[data-month="-1"]::before,.mtc-root .mtc-calnav.prev::before{transform:rotate(180deg)}
.picker-trigger svg{stroke-width:1.3}
@media(prefers-reduced-motion:reduce){.visit-directions .tide-arrow{transition:none}}
:is(.tide-dialog a[href]:not(:where(.tide-button)),.mtc-root a[href],.account-text-button){
 text-decoration:none;
 border-bottom-color:transparent;
 background-image:linear-gradient(currentColor,currentColor);
 background-repeat:no-repeat;
 background-position:left bottom;
 padding-bottom:6px;
 background-size:var(--link-underline,0%) 1px;
 box-decoration-break:clone;-webkit-box-decoration-break:clone;
 transition:background-size .3s ease;
}
:is(.tide-dialog a,.mtc-root a,.account-text-button):is(:hover,:focus-visible){--link-underline:100%}
.visit-details a.visit-major{width:fit-content;max-width:100%}
.picker-trigger>span{min-width:0;overflow-wrap:anywhere}
.account-picker>.picker-label{font-size:var(--type-small);color:var(--ink);margin-bottom:9px;font-weight:500}
.account-picker>.picker-trigger{background:var(--bg)}
.account-picker>[hidden]{display:none}
.picker-option{padding:10px 12px;min-height:44px;font:400 var(--type-small)/1.5 var(--sans);cursor:pointer;overflow-wrap:anywhere;border:1px solid transparent}
.picker-option:hover,.picker-option.is-active{background:#074B4D;color:#F3F0E7}
.picker-option[aria-selected="true"]{border-color:#074B4D;font-weight:600}
.account-options .calendar-days button{height:40px;font-size:var(--type-small)}
.frow .ds,.arow .ds,.visit-details h3,.visit-details .visit-timezone,
.visit-office-hours>div,.ft,.footer-top,.footer-bottom,.mnav .msub{font-size:var(--type-small)}
.visit-fields label,.picker-label,.account-picker>.picker-label{font-size:var(--type-small);line-height:1.5}
.visit-fields input,.visit-fields select,.visit-fields textarea,.picker-option{font-size:var(--type-body)}
.visit-fields label span{font-size:inherit}
.calendar-head strong,.calendar-days button,.account-options .calendar-days button,#visit-time-options button{font-size:var(--type-small)}
.calendar-week span{font-size:var(--type-caption)}
.text-actions .tide-button{padding:13px 22px;border:1px solid var(--ink);font-weight:500}
.home-amenities .tide-button{margin-top:8px}
.story-copy .tide-button{margin-top:20px}
:is(main,.tide-dialog,.mnav) .tide-button,main .pactions :is(.bfill,.bline){display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;font:500 var(--type-action)/1.4 var(--sans);letter-spacing:.03em;text-transform:none;text-align:center}
@media (forced-colors: active){.mtc-chip,.mtc-launch,.mtc-go,.tide-button,.map-pin span,.plan-filters button,.mt-a11y-btn,.mt-a11y-panel button{border:1px solid ButtonText}}
.visit-sms{display:flex;gap:11px;align-items:flex-start;font-size:.72rem;line-height:1.6;color:#536367;margin:14px 0 4px;padding:11px 13px;background:#FBFAF6;border:1px solid rgba(7,75,77,.18);border-radius:10px}
.visit-sms input{margin-top:1px;width:16px;height:16px;accent-color:#074B4D;flex:none;cursor:pointer}
.visit-sms a{color:#074B4D;text-decoration:underline;text-underline-offset:2px}
