/* ---------- Live Views (webcam layer) - national build ---------- */
.map-canvas{
  --cam-wine:var(--burgundy,#6B1226);--cam-wine-dk:var(--burgundy-deep,#45091A);
  --cam-gold:var(--gold,#A98A45);--cam-gold-lt:var(--gold-soft,#CBAE68);
  --cam-cream:var(--cream,#F7F2E8);--cam-parch:var(--cream-warm,#EDE4D3);
  --cam-dark:var(--charcoal,#1B1614);--cam-slate:var(--ink,#6A625B);--cam-red:#D0342C;
  --cam-ease:var(--ease,cubic-bezier(.22,.61,.36,1))
}

/* bar */
.cam-bar{position:absolute;top:3.6rem;left:1rem;z-index:10;display:flex;flex-wrap:nowrap;
  background:rgba(27,22,20,.84);backdrop-filter:blur(6px);border-radius:2px;box-shadow:var(--shadow)}
.cam-toggle,.cam-opt{display:inline-flex;align-items:center;gap:8px;padding:.6rem 1rem;border:none;background:none;
  font-family:var(--sans);font-size:.66rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(247,242,232,.74);transition:.25s var(--cam-ease);white-space:nowrap;cursor:pointer}
.cam-toggle b,.cam-opt b{font-weight:400;color:var(--cam-gold-lt);letter-spacing:.06em}
.cam-toggle:hover:not(:disabled),.cam-opt:hover{color:var(--cam-gold-lt)}
.cam-toggle[aria-pressed="true"],.cam-toggle[aria-pressed="true"]:hover:not(:disabled){background:var(--cam-gold);color:var(--cam-dark)}
.cam-toggle[aria-pressed="true"] b{color:var(--cam-wine-dk)}
.cam-toggle:disabled{opacity:.4;cursor:not-allowed}
.cam-dot{width:8px;height:8px;border-radius:50%;background:var(--cam-red)}
.cam-toggle[aria-pressed="true"] .cam-dot{animation:cam-pulse 2.4s var(--cam-ease) infinite}
@keyframes cam-pulse{0%{box-shadow:0 0 0 0 rgba(208,52,44,.55)}70%{box-shadow:0 0 0 8px rgba(208,52,44,0)}100%{box-shadow:0 0 0 0 rgba(208,52,44,0)}}
.cam-opts{display:flex;flex-wrap:nowrap;border-left:1px solid rgba(203,174,104,.25)}
.cam-opts[hidden],.cam-opt[hidden]{display:none}
.cam-opt{border-right:1px solid rgba(203,174,104,.2);padding:.6rem .85rem}
.cam-opt:last-child{border-right:0}
.cam-opt::before{content:'';width:9px;height:9px;border:1px solid rgba(203,174,104,.7)}
.cam-opt[aria-pressed="true"]::before{background:var(--cam-gold-lt);border-color:var(--cam-gold-lt)}
.cam-opt--wall::before{border:0;width:12px;height:10px;background:
  linear-gradient(var(--cam-gold-lt),var(--cam-gold-lt)) 0 0/5px 4px no-repeat,
  linear-gradient(var(--cam-gold-lt),var(--cam-gold-lt)) 7px 0/5px 4px no-repeat,
  linear-gradient(var(--cam-gold-lt),var(--cam-gold-lt)) 0 6px/5px 4px no-repeat,
  linear-gradient(var(--cam-gold-lt),var(--cam-gold-lt)) 7px 6px/5px 4px no-repeat}
.cam-opt--wall[aria-pressed="true"]{color:var(--cam-gold-lt)}
.cam-opt--wall[aria-pressed="true"]::before{background:
  linear-gradient(var(--cam-gold-lt),var(--cam-gold-lt)) 0 0/5px 4px no-repeat,
  linear-gradient(var(--cam-gold-lt),var(--cam-gold-lt)) 7px 0/5px 4px no-repeat,
  linear-gradient(var(--cam-gold-lt),var(--cam-gold-lt)) 0 6px/5px 4px no-repeat,
  linear-gradient(var(--cam-gold-lt),var(--cam-gold-lt)) 7px 6px/5px 4px no-repeat}

.cam-credit{position:absolute;left:8px;bottom:30px;z-index:5;max-width:min(560px,calc(100% - 340px));
  background:rgba(247,242,232,.92);color:var(--cam-slate);font-size:.6rem;line-height:1.5;
  letter-spacing:.03em;padding:5px 9px;border:1px solid var(--parch-dk,#DCCFB6)}
.cam-credit a{color:var(--cam-wine);border-bottom:1px solid var(--cam-gold)}
.cam-credit[hidden]{display:none}

/* camera card (InfoWindow in 2D, .cam-float in 3D) */
.cam-card{width:270px;font-family:var(--sans);background:var(--white,#FFFDF9)}
.cam-media{position:relative;aspect-ratio:16/9;background:var(--cam-dark);overflow:hidden}
.cam-media>img{width:100%;height:100%;object-fit:cover;display:block}
.cam-media iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cam-play{position:absolute;inset:0;display:grid;place-items:center;width:100%;border:0;
  background:rgba(27,22,20,.3);cursor:pointer}
.cam-play::before{content:'';width:52px;height:52px;border-radius:50%;border:1px solid var(--cam-gold-lt);
  background:rgba(27,22,20,.6);transition:.3s var(--cam-ease)}
.cam-play::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-40%,-50%);
  border-left:12px solid var(--cam-gold-lt);border-top:7.5px solid transparent;border-bottom:7.5px solid transparent}
.cam-play:hover::before{background:var(--cam-wine);transform:scale(1.08)}
.cam-wait,.cam-off{position:absolute;inset:0;display:grid;place-content:center;text-align:center;
  padding:18px;color:rgba(247,242,232,.7);font-size:.74rem;letter-spacing:.06em}
.cam-off strong{display:block;font-family:var(--serif);font-size:1.15rem;font-weight:500;
  color:var(--cam-gold-lt);letter-spacing:0;margin-bottom:4px}
.cam-live{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center;gap:6px;
  background:rgba(27,22,20,.8);color:var(--cam-cream);font-size:.56rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;padding:4px 9px;line-height:1.2}
.cam-live::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--cam-red)}
.cam-live--inline{position:static;vertical-align:middle;padding:2px 7px;font-size:.5rem;font-family:var(--sans)}
.cam-views{display:flex;border-bottom:1px solid var(--cam-parch)}
.cam-views button{flex:1;padding:8px 6px;border:0;border-right:1px solid var(--cam-parch);background:none;
  font-size:.58rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--cam-slate);cursor:pointer}
.cam-views button:last-child{border-right:0}
.cam-views button[aria-selected="true"]{color:var(--cam-wine);box-shadow:inset 0 -2px 0 var(--cam-gold)}
.cam-body{padding:.9rem 1rem 1rem}
.cam-kicker{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cam-gold);margin-bottom:.2rem}
.cam-name{font-family:var(--serif);font-weight:400;font-size:1.28rem;line-height:1.15;margin:0 0 .35rem;color:var(--cam-dark)}
.cam-place{font-size:.76rem;color:var(--cam-slate);margin:0 0 .4rem}
.cam-status{font-size:.72rem;color:var(--cam-slate);margin-bottom:.6rem;min-height:1.2em}
.cam-near-list{border-top:1px solid var(--cam-parch);padding-top:.55rem;margin-bottom:.6rem}
.cam-near-list span{display:block;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cam-gold);margin-bottom:.2rem}
.cam-near-list button{display:flex;justify-content:space-between;gap:10px;width:100%;padding:4px 0;border:0;background:none;
  font-family:var(--serif);font-size:1rem;color:var(--cam-dark);text-align:left;cursor:pointer}
.cam-near-list button:hover{color:var(--cam-wine)}
.cam-near-list em{font-family:var(--sans);font-style:normal;font-size:.68rem;color:var(--cam-slate);white-space:nowrap}
.cam-credit-line{font-size:.58rem;color:var(--cam-slate);opacity:.85;margin:0 0 .7rem;line-height:1.45}
.cam-acts{display:flex;gap:.4rem}
.cam-acts .iw-btn{flex:1;text-align:center;cursor:pointer}

.cam-float{position:absolute;left:1rem;bottom:2.2rem;z-index:13;box-shadow:0 24px 60px -22px rgba(27,22,20,.75)}
.cam-float[hidden]{display:none}
.cam-float .cam-card{width:300px}
.cam-float-close{position:absolute;top:8px;right:8px;z-index:3;width:30px;height:30px;border-radius:50%;border:0;
  background:rgba(27,22,20,.72);color:var(--cam-cream);font-size:1.15rem;line-height:1;display:grid;place-items:center;cursor:pointer}
.cam-float-close:hover{background:var(--cam-wine)}

/* additions to the winery info window */
.cam-winery{display:flex;align-items:center;gap:10px;width:100%;padding:.6rem 1rem;border:0;cursor:pointer;
  background:var(--cam-dark);color:var(--cam-cream);font-family:var(--sans);font-size:.6rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;text-align:left}
.cam-winery .cam-live{position:static;background:var(--cam-red);padding:3px 8px}
.cam-winery .cam-live::before{background:var(--cam-cream)}
.cam-winery:hover{background:var(--cam-wine-dk)}
.cam-winery-demo{padding:.7rem 1rem;background:var(--cam-parch);font-size:.74rem;line-height:1.5;color:var(--cam-slate)}
.cam-winery-demo a{color:var(--cam-wine);border-bottom:1px solid var(--cam-gold)}
.iw .cam-media{aspect-ratio:auto;height:150px}
.cam-near{display:flex;align-items:center;gap:10px;width:100%;margin:.6rem 0 0;padding:.45rem .6rem;cursor:pointer;
  border:1px solid var(--parch-dk,#DCCFB6);background:var(--cam-cream);font-family:var(--sans);font-size:.7rem;
  color:var(--cam-slate);text-align:left;line-height:1.35;transition:.25s var(--cam-ease)}
.cam-near:hover{border-color:var(--cam-gold);color:var(--cam-dark)}
.cam-near svg{width:22px;height:22px;flex-shrink:0;color:var(--cam-gold)}
.cam-near b{display:block;font-size:.54rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--cam-gold)}

/* Live Wall */
.cam-wall{position:absolute;inset:0;z-index:14;display:flex;flex-direction:column;
  background:rgba(27,22,20,.95);backdrop-filter:blur(8px);color:var(--cam-cream)}
.cam-wall[hidden]{display:none}
.cam-wall-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:1.3rem 1.6rem .3rem}
.cam-wall-eyebrow{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cam-gold-lt)}
.cam-wall-head h3{font-family:var(--serif);font-weight:400;font-size:1.7rem;line-height:1.15;margin:4px 0 0;color:var(--cam-cream)}
.cam-wall-close{width:34px;height:34px;border-radius:50%;border:1px solid rgba(203,174,104,.45);background:none;cursor:pointer;
  color:var(--cam-cream);font-size:1.2rem;line-height:1;display:grid;place-items:center;flex-shrink:0}
.cam-wall-close:hover{background:var(--cam-wine)}
.cam-wall-sub{padding:0 1.6rem .8rem;margin:0;font-size:.78rem;color:rgba(247,242,232,.7)}
.cam-wall-grid{flex:1;min-height:0;overflow-y:auto;padding:.2rem 1.6rem 1.2rem;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;align-content:start}
.cam-tile{display:flex;flex-direction:column;text-align:left;color:var(--cam-cream);background:rgba(247,242,232,.04);
  border:1px solid rgba(203,174,104,.18);padding:0;cursor:pointer;font-family:var(--sans);transition:.25s var(--cam-ease)}
.cam-tile:hover,.cam-tile:focus-visible{border-color:var(--cam-gold-lt);background:rgba(247,242,232,.08)}
.cam-tile-img{position:relative;display:block;aspect-ratio:16/9;background:#0E0B0A;overflow:hidden}
.cam-tile-img img{width:100%;height:100%;object-fit:cover;display:block;color:transparent}
.cam-tile-kind{padding:10px 12px 0;font-size:.54rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cam-gold-lt)}
.cam-tile-name{padding:2px 12px 12px;font-family:var(--serif);font-size:1.02rem;line-height:1.25}
.cam-tile--estate{border-color:rgba(208,52,44,.5)}
.cam-tile.is-offline .cam-tile-img{opacity:.5}
.cam-wall-foot{padding:.7rem 1.6rem 1rem;margin:0;border-top:1px solid rgba(203,174,104,.2);
  font-size:.62rem;line-height:1.5;color:rgba(247,242,232,.55)}
.cam-wall-foot a{color:var(--cam-gold-lt)}

@media(max-width:900px){
  .cam-credit{max-width:calc(100% - 16px)}
  .map-canvas.cam-open .cam-credit{display:none}
}
@media(max-width:640px){
  .cam-long{display:none}
  .cam-toggle,.cam-opt{padding:.55rem .6rem;font-size:.56rem;letter-spacing:.1em;gap:6px}
  .cam-opt::before{width:7px;height:7px}
  .cam-credit{font-size:.54rem;padding:4px 8px}
  .cam-wall-head{padding:1rem 1.1rem .3rem}
  .cam-wall-sub,.cam-wall-foot{padding-left:1.1rem;padding-right:1.1rem}
  .cam-wall-grid{padding:.2rem 1.1rem 1rem;grid-template-columns:1fr 1fr;gap:10px}
  .cam-tile-name{font-size:.92rem}
  .cam-float{left:.6rem;right:.6rem;bottom:.6rem}
  .cam-float .cam-card{width:auto}
}
@media(prefers-reduced-motion:reduce){.cam-toggle[aria-pressed="true"] .cam-dot{animation:none}}
