/* One clear visitor entry, with contactless access inside the same block. */
.visitor-shell .welcome-entry { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; overflow:auto; gap:18px; padding:2px; }
.visitor-shell .welcome-entry .hero { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:24px; margin:0; padding:2px 0; }
.visitor-shell .welcome-entry .hero-copy { min-width:0; }
.visitor-shell .welcome-entry .hero h1 { display:block; margin:0; font-size:clamp(1.5rem,2.6vw,2.125rem); }
.visitor-shell .welcome-entry .visitor-location { flex:0 1 auto; min-width:0; max-width:35%; margin:0; padding:0 0 0 16px; }
.visitor-shell .welcome-entry .visitor-location span { display:block; margin:0 0 2px; }
.visitor-shell .welcome-entry .visitor-location strong { display:block; }
.visitor-shell .welcome-entry .home-actions { display:grid; flex:0 0 auto; grid-template-columns:minmax(0,1fr); gap:16px; margin:0; }
.visitor-shell .welcome-entry .action-card-primary { display:grid; grid-template-columns:minmax(0,1fr) 244px; grid-template-areas:"visitor phone"; align-items:center; gap:28px; padding:26px 30px; min-height:clamp(256px,37vh,340px); }
.visitor-shell .welcome-entry .visitor-sign-in { grid-area:visitor; display:flex; flex-direction:column; min-width:0; gap:24px; }
.visitor-shell .welcome-entry .action-card-top { margin:0 0 10px; }
.visitor-shell .welcome-entry .action-card-primary h2 { max-width:100%; margin:0 0 12px; font-size:clamp(2rem,4.5vw,3.25rem); line-height:1.08; }
.visitor-shell .welcome-entry .action-card-primary .action-card-copy>p { max-width:none; margin:0; font-size:1rem; }
.visitor-shell .welcome-entry .action-card-bottom { align-self:stretch; margin:0; padding:0; border:0; }
.visitor-shell .welcome-entry #startVisitor { width:100%; min-height:66px; padding:16px 22px; font-size:1.25rem; }
.visitor-shell .welcome-entry .phone-access { grid-area:phone; display:grid; grid-template-columns:minmax(0,1fr); align-content:center; justify-items:center; gap:12px; width:100%; padding:0 0 0 28px; border:0; border-left:1px solid var(--line); border-radius:0; background:transparent; text-align:center; }
.visitor-shell .welcome-entry .phone-access-code,.visitor-shell .welcome-entry .phone-access-code img { width:185px; height:185px; }
.visitor-shell .welcome-entry .phone-access-copy { max-width:100%; }
.visitor-shell .welcome-entry .phone-access h3 { margin:0 0 4px; color:var(--ink); font-size:1rem; line-height:1.35; font-weight:600; letter-spacing:-.015em; }
.visitor-shell .welcome-entry .phone-access-copy>a { display:inline; font-size:.875rem; }
.visitor-shell .welcome-entry .action-card-staff { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; padding:18px 24px; border-top:5px solid #3b5f83; border-left:1px solid var(--line); }
.visitor-shell .welcome-entry .action-card-staff h2 { max-width:none; margin:0 0 5px; font-size:1.375rem; }
.visitor-shell .welcome-entry .action-card-staff .action-card-copy>p { max-width:none; margin:0; font-size:.875rem; line-height:1.4; }
.visitor-shell .welcome-entry .staff-start { min-height:48px; }

@media (max-height:760px) {
  .visitor-shell .welcome-entry { gap:14px; }
  .visitor-shell .welcome-entry .action-card-primary { min-height:246px; padding:22px 26px; }
  .visitor-shell .welcome-entry .phone-access-code,.visitor-shell .welcome-entry .phone-access-code img { width:148px; height:148px; }
  .visitor-shell .welcome-entry .action-card-staff { padding:16px 22px; }
}
@media (max-width:800px) {
  .visitor-shell .welcome-entry .action-card-primary { grid-template-columns:minmax(0,1fr) 196px; gap:20px; padding:22px; }
  .visitor-shell .welcome-entry .action-card-primary h2 { font-size:2rem; }
  .visitor-shell .welcome-entry .phone-access { padding-left:20px; }
  .visitor-shell .welcome-entry .phone-access-code,.visitor-shell .welcome-entry .phone-access-code img { width:148px; height:148px; }
  .visitor-shell .welcome-entry #startVisitor { min-height:58px; padding:14px 18px; font-size:1.125rem; }
  .visitor-shell .welcome-entry .action-card-staff { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; padding:16px 20px; }
  .visitor-shell .welcome-entry .staff-start { width:100%; }
}
@media (max-width:560px) {
  .visitor-shell .welcome-entry { gap:12px; }
  .visitor-shell .welcome-entry .hero { align-items:flex-start; flex-direction:column; gap:8px; }
  .visitor-shell .welcome-entry .visitor-location { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; max-width:100%; padding-left:10px; }
  .visitor-shell .welcome-entry .visitor-location span { margin:0; }
  .visitor-shell .welcome-entry .visitor-location strong { font-size:.875rem; }
  .visitor-shell .welcome-entry .home-actions { gap:12px; }
  .visitor-shell .welcome-entry .action-card-primary { grid-template-columns:minmax(0,1fr); grid-template-areas:"visitor" "phone"; gap:16px; min-height:0; padding:18px; }
  .visitor-shell .welcome-entry .visitor-sign-in { gap:16px; }
  .visitor-shell .welcome-entry .action-card-top { display:none; }
  .visitor-shell .welcome-entry .action-card-primary h2 { margin-bottom:8px; font-size:1.875rem; }
  .visitor-shell .welcome-entry #startVisitor { min-height:54px; padding:12px 16px; }
  .visitor-shell .welcome-entry .phone-access { grid-template-columns:111px minmax(0,1fr); gap:14px; justify-items:start; padding:14px 0 0; border-left:0; border-top:1px solid var(--line); text-align:left; }
  .visitor-shell .welcome-entry .phone-access-code,.visitor-shell .welcome-entry .phone-access-code img { width:111px; height:111px; }
  .visitor-shell .welcome-entry .action-card-staff { grid-template-columns:minmax(0,1fr); gap:12px; padding:14px 16px; }
  .visitor-shell .welcome-entry .action-card-staff h2 { font-size:1.25rem; }
  .visitor-shell .welcome-entry .action-card-staff:not(:has(button:disabled)) .action-card-copy>p { display:none; }
}
@media (max-width:560px) and (max-height:700px) {
  .visitor-shell .welcome-entry { gap:10px; }
  .visitor-shell .welcome-entry .hero h1 { font-size:1.375rem; }
  .visitor-shell .welcome-entry .action-card-primary { padding:14px; gap:12px; }
  .visitor-shell .welcome-entry .action-card-primary .action-card-copy>p { display:none; }
  .visitor-shell .welcome-entry .action-card-primary h2 { margin:0; font-size:1.75rem; }
  .visitor-shell .welcome-entry .visitor-sign-in { gap:12px; }
  .visitor-shell .welcome-entry .phone-access { padding-top:12px; }
  .visitor-shell .welcome-entry #startVisitor { min-height:48px; }
  .visitor-shell .welcome-entry .action-card-staff { padding:12px 14px; }
  .visitor-shell .welcome-entry .action-card-staff:not(:has(button:disabled)) .action-card-copy { display:none; }
  .visitor-shell .welcome-entry .action-card-staff:has(button:disabled) .action-card-bottom { display:none; }
}
@media (min-width:561px) and (max-height:520px) {
  .visitor-shell .welcome-entry,.visitor-shell .welcome-entry .home-actions { gap:8px; }
  .visitor-shell .welcome-entry .hero { gap:12px; padding:0; }
  .visitor-shell .welcome-entry .hero h1 { font-size:1.375rem; }
  .visitor-shell .welcome-entry .visitor-location { display:flex; align-items:baseline; gap:8px; max-width:45%; }
  .visitor-shell .welcome-entry .visitor-location span { display:none; }
  .visitor-shell .welcome-entry .visitor-location strong { font-size:.875rem; }
  .visitor-shell .welcome-entry .action-card-primary { grid-template-columns:minmax(0,1fr) 174px; min-height:0; gap:16px; padding:10px 18px; }
  .visitor-shell .welcome-entry .visitor-sign-in { gap:14px; }
  .visitor-shell .welcome-entry .action-card-top,.visitor-shell .welcome-entry .action-card-copy>p { display:none; }
  .visitor-shell .welcome-entry .action-card-primary h2 { margin:0; font-size:1.875rem; }
  .visitor-shell .welcome-entry #startVisitor { min-height:44px; padding:10px 16px; font-size:1.125rem; }
  .visitor-shell .welcome-entry .phone-access { gap:6px; padding-left:16px; }
  .visitor-shell .welcome-entry .phone-access-code,.visitor-shell .welcome-entry .phone-access-code img { width:111px; height:111px; }
  .visitor-shell .welcome-entry .phone-access h3 { margin:0; font-size:.875rem; }
  .visitor-shell .welcome-entry .phone-access-copy>a { display:none; }
  .visitor-shell .welcome-entry .action-card-staff { grid-template-columns:minmax(0,1fr) auto; gap:14px; padding:10px 18px; }
  .visitor-shell .welcome-entry .action-card-staff h2 { margin:0; font-size:1.125rem; }
  .visitor-shell .welcome-entry .staff-start { min-height:44px; padding:10px 14px; font-size:.875rem; }
  .visitor-shell .welcome-entry .action-card-staff:has(button:disabled) .action-card-copy>p { display:block; }
}
