/* A quiet, practical first-visit flow inside the existing Living Garden. */
.visit-planner{margin-top:8px;border:1px solid #b6cfc0;border-radius:18px;overflow:hidden;background:#fffef9;box-shadow:0 18px 45px -36px #123e30}
.visit-topline{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;padding:30px 32px 0}
.visit-kicker{font-size:.875rem;letter-spacing:.075em;color:#4d725d;margin-bottom:10px}
.visit-topline h3{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.15;letter-spacing:-.025em;max-width:600px}
.visit-availability{font-size:.875rem;line-height:1.5;border:1px solid #d6c9ab;border-radius:8px;background:#f7f0df;color:#6b552d;padding:9px 12px;max-width:225px;flex-shrink:0}
.visit-intro{padding:15px 32px 25px;font-size:1rem;max-width:820px;color:#516958;line-height:1.75}
.visit-progress{background:#eef4eb;border-block:1px solid #d7e2d4;padding:0 24px}
.visit-progress ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;gap:12px}
.visit-progress li{min-width:0}
.visit-progress button>span:last-child{min-width:0;overflow-wrap:anywhere}
.visit-progress button{min-width:0;display:flex;align-items:center;gap:10px;min-height:76px;width:100%;text-align:left;background:transparent;color:#5a7061;border-bottom:3px solid transparent;font-size:.9375rem;line-height:1.3;padding:12px 5px}
.visit-progress button>span:first-child{font-family:var(--serif);font-size:1.25rem;color:#907646}
.visit-progress button[aria-current=step]{border-color:#176454;color:#123f32;font-weight:600}
.visit-progress button:disabled{opacity:.5;cursor:default}
.visit-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px}
.visit-content{padding:30px 32px 34px;min-width:0}
.visit-panel h3{font-family:var(--serif);font-size:1.8rem;font-weight:400;line-height:1.2;letter-spacing:-.02em;margin-bottom:18px}
.visit-panel>p{font-size:1rem;line-height:1.75;color:#4a6453;margin-bottom:20px}
.visit-panel h3:focus{outline:2px solid #367d67;outline-offset:7px;border-radius:2px}
.visit-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px;border:0;padding:0;margin:0 0 25px;min-width:0}
.visit-choice label{position:relative;border:1px solid #bfcebe;border-radius:12px;display:flex;gap:13px;align-items:flex-start;padding:20px 17px;cursor:pointer;background:#fbfcf7;min-width:0}
.visit-choice label:has(input:checked){border-color:#226751;box-shadow:inset 0 0 0 1px #226751;background:#eaf2e7}
.visit-choice input{accent-color:#226751;width:18px;height:18px;flex-shrink:0;margin-top:3px}
.visit-choice label>span{display:block;min-width:0}
.visit-choice svg{width:29px;height:29px;display:block;margin-bottom:13px;color:#315d47}
.visit-choice strong{display:block;font-size:1.0625rem;font-weight:600;line-height:1.4;margin-bottom:8px}
.visit-choice small{display:block;font-size:.9375rem;line-height:1.6;color:#4e6754}
.visit-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.visit-fields label,.visit-select-label{display:block;font-size:.9375rem;line-height:1.6;font-weight:500}
.visit-planner select{appearance:auto;width:100%;max-width:100%;min-width:0;min-height:48px;padding:11px 30px 11px 13px;border:1px solid #aabdac;border-radius:7px;background:#fffefb;color:#224632;font-family:var(--sans);font-size:1rem;margin-top:9px;line-height:1.4}
.visit-select-label{max-width:550px;margin:22px 0 20px}
.visit-panel .visit-help,.visit-help{font-size:.875rem;line-height:1.75;color:#5c7060;margin:16px 0}
.visit-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:13px;margin-top:27px;align-items:center}
.visit-actions>.button:only-child{margin-left:auto}
.visit-planner .button{min-height:46px;white-space:normal;line-height:1.5;text-align:center;font-size:.9375rem;justify-content:center}
.visit-secondary{background:transparent;color:#305740;border:1px solid #b7c8b8;padding:10px 15px;border-radius:7px;min-height:44px;font-size:.9375rem;line-height:1.5}
.visit-secondary:hover,.visit-device-button:hover{background:#eaf1e6}
.visit-summary{padding:31px 24px;background:linear-gradient(155deg,#123d32,#1c4837);color:#e7efdf;min-width:0}
.visit-summary .visit-kicker{color:#b9d2b7;font-size:.8125rem}
.visit-summary h3{font-family:var(--serif);font-size:1.6rem;font-weight:400;line-height:1.25;margin:12px 0 27px;color:#f4f6e9}
.visit-summary dl{margin:0;display:grid;gap:18px}
.visit-summary dt{font-size:.875rem;color:#afc9b5;margin-bottom:5px}
.visit-summary dd{font-size:1rem;margin:0;line-height:1.5;overflow-wrap:anywhere}
.visit-summary-note{font-size:.875rem;line-height:1.75;color:#c6d9c5;border-top:1px solid #62877269;margin-top:27px;padding-top:22px}
.visit-reset{font-size:.875rem;background:transparent;color:#e1efda;padding:11px 0;min-height:44px;text-decoration:underline;text-underline-offset:5px;margin-top:13px;text-align:left;line-height:1.5}
.visit-insurance-note{font-size:1rem;line-height:1.75;padding:18px 20px;border-left:3px solid #b59456;background:#f7f2e7;border-radius:0 9px 9px 0;min-height:115px;color:#594b30}
.visit-appointment-facts{display:grid;gap:0;border-block:1px solid #d4dfd0;margin:24px 0}
.visit-appointment-facts>div{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #e3e9dc;font-size:.9375rem;line-height:1.6}
.visit-appointment-facts>div:last-child{border:0}
.visit-appointment-facts dt{color:#5b715e}
.visit-appointment-facts dd{margin:0;font-weight:500;text-align:right}
.visit-appointment-route{font-size:1rem;line-height:1.75;background:#edf3e8;border-radius:9px;padding:17px 19px;color:#355c41;margin-top:20px}
.visit-room-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.visit-local-badge{font-size:.75rem;line-height:1.5;letter-spacing:.065em;background:#e8f0e0;color:#41623b;border-radius:5px;padding:7px 10px;flex-shrink:0;margin-top:2px}
.visit-camera-stage{background:radial-gradient(ellipse at 50% 30%,#245345,#0b2823);border-radius:12px;position:relative;aspect-ratio:16/10;min-height:220px;isolation:isolate;overflow:hidden;border:1px solid #346c54}
.visit-camera-stage video{width:100%;height:100%;position:absolute;inset:0;object-fit:contain;transform:scaleX(-1);background:#0b2521}
#visit-camera-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 24px 58px;text-align:center;color:#e3efdb;gap:10px}
#visit-camera-empty svg{width:42px;height:42px;color:#a7c8ac;margin-bottom:3px}
#visit-camera-empty strong{font-size:1.0625rem;font-weight:500;line-height:1.6}
#visit-camera-empty>span{font-size:.875rem;line-height:1.6;color:#bfd5c1}
.visit-preview-label{position:absolute;left:14px;bottom:13px;right:14px;width:fit-content;max-width:calc(100% - 28px);padding:6px 10px;background:#0b2827e6;border:1px solid #6d917477;border-radius:5px;color:#ebf2e3;font-size:.8125rem;line-height:1.5}
.visit-device-controls{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}
.visit-device-button{border:1px solid #8eac94;background:#f3f7ed;padding:10px 14px;border-radius:7px;min-height:44px;font-size:.9375rem;line-height:1.5;color:#244b35}
.visit-device-button[aria-pressed=true]{background:#245c46;color:#f4f8ee;border-color:#245c46}
.visit-device-button[aria-busy=true]{border-style:dashed}
.visit-mic-check{display:grid;grid-template-columns:auto minmax(80px,1fr);align-items:center;gap:9px 16px;background:#f0f4ea;border:1px solid #d7e2ce;border-radius:9px;padding:15px 17px;font-size:.875rem}
.visit-mic-check meter{width:100%;height:16px;accent-color:#2c7552}
.visit-mic-check p{grid-column:1/-1;color:#4e6751;line-height:1.6;margin:0}
.visit-device-status{font-size:.9375rem;line-height:1.7;color:#724d29;margin:14px 0 0}
.visit-device-status:empty{display:none}
.visit-join-state{border-top:1px solid #d3dfcb;padding-top:22px;margin-top:23px;display:flex;gap:19px;align-items:center;flex-wrap:wrap}
.visit-join-state strong{font-size:1rem;font-weight:600;line-height:1.6}
.visit-join-state p{font-size:.9375rem;line-height:1.7;color:#58705b;margin-top:7px}
.visit-join-state .button:disabled{background:#e7ece0;color:#5b6c59;border:1px solid #c6d0be;cursor:not-allowed;opacity:1;box-shadow:none}
.visit-planner [hidden]{display:none!important}
.visit-planner :focus-visible{outline:3px solid #498570;outline-offset:4px}
.visit-planner noscript p{padding:0 32px 24px;line-height:1.7}
@media(min-width:1400px){.visit-layout{grid-template-columns:minmax(0,1fr) 290px}.visit-summary{padding:32px}}
@media(max-width:1000px){.visit-layout{grid-template-columns:minmax(0,1fr) 215px}.visit-topline{display:block}.visit-availability{display:inline-block;max-width:none;margin-top:16px}.visit-content{padding:26px 24px}.visit-summary{padding:28px 20px}.visit-progress{padding:0 15px}.visit-progress button{font-size:.875rem;gap:7px}.visit-room-heading{display:block}.visit-local-badge{display:inline-block;margin:-4px 0 16px}}
@media(max-width:800px){.visit-layout{grid-template-columns:1fr}.visit-summary{padding:24px}.visit-summary dl{grid-template-columns:1fr 1fr;gap:16px 25px}.visit-summary h3{margin-bottom:20px}.visit-summary-note{margin-top:21px}.visit-summary .visit-kicker{margin-bottom:5px}.visit-fields{gap:14px}.visit-topline{padding:25px 24px 0}.visit-intro{padding:14px 24px 22px}.visit-progress ol{gap:7px}.visit-progress button{display:block;min-height:84px}.visit-progress button>span:first-child{display:block;margin-bottom:6px}}
@media(max-width:520px){.visit-topline{padding:23px 18px 0}.visit-topline h3{font-size:1.8rem}.visit-intro{padding:14px 18px 22px}.visit-content{padding:25px 18px}.visit-progress{padding:0 12px}.visit-progress ol{grid-template-columns:1fr 1fr;gap:0 14px}.visit-progress li{min-width:0}
.visit-progress button>span:last-child{min-width:0;overflow-wrap:anywhere}
.visit-progress button{min-width:0;display:flex;min-height:60px;gap:10px}.visit-progress button>span:first-child{margin:0}.visit-choice,.visit-fields{grid-template-columns:1fr}.visit-choice label{padding:18px}.visit-choice label>span{display:grid;grid-template-columns:30px 1fr;gap:0 12px}.visit-choice svg{grid-row:1/3;margin:2px 0 0}.visit-choice small{grid-column:2}.visit-choice strong{margin-bottom:4px}.visit-panel h3{font-size:1.65rem}.visit-actions{align-items:stretch}.visit-actions .button{width:100%}.visit-camera-stage{aspect-ratio:4/3;min-height:240px}#visit-camera-empty svg{width:34px;height:34px}.visit-device-controls .visit-device-button{flex:1 1 120px}.visit-summary{padding:24px 20px}.visit-appointment-facts>div{display:block}.visit-appointment-facts dd{text-align:left;margin-top:4px}.visit-summary dl{gap:18px}.visit-insurance-note{min-height:0}.visit-mic-check{padding:14px}.visit-mic-check label{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){.visit-planner *{scroll-behavior:auto!important;transition:none!important}}
