/* The estate is the focus; the same scene expands into a native modal dialog. */
.tour-top-actions { display:flex; align-items:center; gap:18px; }
.estate-experience .tour-top { flex-wrap:wrap; }
.tour-top-actions > span { font-size:.75rem; color:#53604e; }
.tour-expand { display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:11px 16px; min-height:46px; border:1px solid #53644d; border-radius:4px; color:#273d2c; background:transparent; font:inherit; font-size:.82rem; cursor:pointer; white-space:nowrap; }
.tour-expand:hover { background:#e7ebdd; }
.tour-expand [data-expand-icon] { font-size:1.5rem; line-height:1; }
.tour-display-controls { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding:12px 24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#eef0e5; }
.tour-light-control { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.tour-light-control > span { margin-right:8px; font-size:.72rem; color:#53604e; }
.tour-display-controls button { min-height:42px; padding:9px 14px; border:1px solid #c1c9b6; border-radius:4px; background:transparent; color:#344b34; font:inherit; font-size:.8rem; cursor:pointer; }
.tour-display-controls button[aria-pressed="true"] { background:#344c3d; color:white; border-color:#344c3d; }
.tour-display-controls button:disabled,.tour-expand:disabled { opacity:.45; cursor:default; }
.tour-display-controls button:focus-visible,.tour-expand:focus-visible { outline:3px solid #b67c2a; outline-offset:3px; }
.tour-control-hint { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:0 24px 16px; color:#53604e; font-size:.73rem; line-height:1.6; }
.tour-control-hint p { margin:0; }
.tour-keyboard-hint kbd { font:inherit; color:#344b34; border:1px solid #c4cbbb; border-radius:3px; padding:0 4px; }
.tour-touch-hint { display:none; }
#tour-dialog { padding:0; border:1px solid #cbd0be; border-radius:12px; background:#f7f5ee; color:var(--ink,#27372b); width:calc(100vw - 32px); height:calc(100dvh - 32px); max-width:1800px; max-height:none; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; box-shadow:0 28px 100px #0e1c1660; }
#tour-dialog::backdrop { background:#10251bee; backdrop-filter:blur(8px); }
#tour-dialog .tour-shell { display:flex; flex-direction:column; width:100%; height:100%; max-height:100%; margin:0; border:0; border-radius:0; box-shadow:none; overflow:visible; }
#tour-dialog .tour-top { position:sticky; top:0; flex:none; padding:14px 22px; background:#f7f5ee; z-index:3; }
#tour-dialog #tour-viewport { flex:1 1 auto; min-height:160px; overflow:hidden; }
#tour-dialog #estate-canvas { height:100%; width:100%; touch-action:none; }
#tour-dialog .tour-scene-card { width:300px; padding:16px 20px; }
#tour-dialog #tour-scene-title { font-size:1.65rem; }
#tour-dialog .tour-display-controls { flex:none; padding:9px 22px; }
#tour-dialog .tour-journey { flex:none; padding:10px 22px; }
#tour-dialog .tour-toolbar { flex:none; padding:10px 22px; gap:12px; }
#tour-dialog .tour-toolbar button { min-height:42px; padding:9px 12px; }
#tour-dialog .tour-bottom { flex:none; padding:8px 22px; }
#tour-dialog .tour-bottom p { margin:0; }
#tour-dialog .tour-control-hint { flex:none; padding:0 22px 10px; font-size:.7rem; }
body.tour-dialog-open { overflow:hidden; }
.tour-shell.is-immersive .tour-hotspot { touch-action:manipulation; }
@media (pointer:coarse) { .tour-touch-hint { display:block; } .tour-keyboard-hint { display:none; } }
@media (max-width:1050px) { .tour-top-actions > span { display:none; } }
@media (max-width:720px) {
  .estate-experience .tour-top { flex-direction:row; align-items:center; }
  .tour-expand { font-size:.78rem; gap:7px; padding:9px 11px; }
  .tour-display-controls { padding:12px 16px; gap:10px; }
  .tour-display-controls button { min-height:44px; padding:9px 12px; font-size:.8rem; }
  .tour-light-control { gap:6px; }
  .tour-light-control > span { font-size:.7rem; margin-right:4px; }
  .tour-control-hint { padding:0 16px 16px; font-size:.76rem; }
  .tour-keyboard-hint { display:none; }
  .tour-touch-hint { display:block; }
  #tour-dialog { width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; border:0; border-radius:0; }
  #tour-dialog .tour-top { padding:10px 12px; padding-top:max(10px,env(safe-area-inset-top)); }
  #tour-dialog .tour-top .image-badge { font-size:.58rem; letter-spacing:.02em; }
  #tour-dialog #tour-viewport { display:block; min-height:130px; }
  #tour-dialog #estate-canvas { height:100%; min-height:130px; }
  #tour-dialog .tour-scene-card { position:absolute; bottom:10px; left:10px; width:calc(100% - 20px); max-width:none; padding:10px 14px; border:1px solid #d5d8c6; border-radius:5px; background:#f7f5eef0; }
  #tour-dialog #tour-scene-kicker { font-size:.58rem; margin-bottom:4px; }
  #tour-dialog #tour-scene-title { font-size:1.3rem; }
  #tour-dialog #tour-scene-copy { display:none; }
  #tour-dialog .tour-display-controls { padding:8px 12px; gap:8px; }
  #tour-dialog .tour-light-control > span { display:none; }
  #tour-dialog .tour-display-controls button { min-height:40px; padding:8px 11px; font-size:.76rem; }
  #tour-dialog .tour-journey { padding:8px 12px; flex-direction:row; gap:8px; }
  #tour-dialog #tour-play { width:auto; min-height:42px; font-size:.8rem; padding:9px 11px; gap:6px; }
  #tour-dialog .tour-stepper { width:auto; flex:1; justify-content:flex-end; gap:4px; }
  #tour-dialog .tour-stepper button { min-height:40px; min-width:38px; }
  #tour-dialog #tour-progress { min-width:78px; font-size:.73rem; }
  #tour-dialog .tour-toolbar { padding:8px 12px; gap:8px; }
  #tour-dialog .tour-views { gap:6px; }
  #tour-dialog .tour-views button { min-height:40px; padding:8px 10px; font-size:.78rem; }
  #tour-dialog .tour-arrows { display:flex; gap:5px; }
  #tour-dialog .tour-arrows button { min-height:38px; min-width:36px; padding:7px; font-size:.88rem; flex:1; }
  #tour-dialog .tour-arrows #tour-reset { flex:2.4; font-size:.73rem; }
  #tour-dialog .tour-bottom { padding:0 12px 8px; }
  #tour-dialog .tour-bottom button { min-height:36px; padding:6px 10px; font-size:.75rem; }
  #tour-dialog #tour-status { display:none; }
  #tour-dialog .tour-control-hint { padding:0 12px max(8px,env(safe-area-inset-bottom)); font-size:.65rem; }
  #tour-dialog .tour-control-hint .tour-keyboard-hint { display:none; }
}
@media (max-height:560px) and (min-width:721px) {
  #tour-dialog .tour-top { padding-block:6px; }
  #tour-dialog .tour-journey,#tour-dialog .tour-toolbar,#tour-dialog .tour-display-controls { padding-block:5px; }
  #tour-dialog .tour-control-hint { display:none; }
  #tour-dialog .tour-bottom { padding-block:4px; }
}
@media (max-height:600px) {
  #tour-dialog { overflow-y:auto; overscroll-behavior:contain; }
  #tour-dialog .tour-shell { height:auto; min-height:100%; max-height:none; }
  #tour-dialog .tour-top { position:sticky; top:0; }
  #tour-dialog #tour-viewport { flex:none; height:clamp(200px,58dvh,340px); }
  #tour-dialog #estate-canvas { height:100%; }
}
@media (prefers-reduced-motion:reduce) { #tour-dialog::backdrop { backdrop-filter:none; } }
