/* Château La Châteline Public Experience v20.007
   Estate Explorer 3.0 — single detail panel, playful private-estate map. */

/* ---------- Explorer frame ---------- */
.public-v20-007 .map-experience{
  position:relative;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);
  border-radius:clamp(22px,2.6vw,34px);
  background:var(--card);
  box-shadow:0 30px 90px rgba(8,35,27,.15);
}
.public-v20-007 .map-experience-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  padding:clamp(25px,3.2vw,42px) clamp(22px,3.6vw,48px) clamp(22px,2.7vw,34px);
  color:#fff;
  background:
    radial-gradient(circle at 85% -10%,rgba(212,177,111,.26),transparent 34%),
    linear-gradient(125deg,color-mix(in srgb,var(--brand) 94%,#081e17),color-mix(in srgb,var(--brand) 73%,#355443));
  border-bottom:0;
}
.public-v20-007 .map-experience-head .eyebrow{color:#e9d4a8}
.public-v20-007 .map-experience-head .eyebrow:before{background:#e9d4a8}
.public-v20-007 .map-experience-head h3{
  margin:.2em 0 .25em;
  max-width:760px;
  color:#fff;
  font:600 clamp(34px,4vw,54px)/1.01 var(--heading-font);
  letter-spacing:-.04em;
}
.public-v20-007 .map-experience-head p{max-width:760px;margin:0;color:rgba(255,255,255,.74);font-size:15px}
.public-v20-007 .map-view-switch{
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(12px);
}
.public-v20-007 .map-view-switch button{
  min-height:40px;
  padding:8px 15px;
  border:0;
  border-radius:999px;
  color:rgba(255,255,255,.76);
  background:transparent;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  transition:.18s ease;
}
.public-v20-007 .map-view-switch button:hover,.public-v20-007 .map-view-switch button.active{background:#fff;color:var(--brand)}

/* ---------- Horizontal discovery bar ---------- */
.public-v20-007 .map-explore-bar{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(220px,310px) minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:13px 18px;
  background:color-mix(in srgb,var(--card) 97%,#f0f5f1);
  border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent);
}
.public-v20-007 .map-search-wrap{
  min-width:0;
  height:46px;
  border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);
  border-radius:999px;
  background:#fff;
  padding:0 15px;
  box-shadow:0 6px 18px rgba(17,48,39,.04);
}
.public-v20-007 .map-search-wrap span{font-size:20px;color:color-mix(in srgb,var(--brand) 68%,transparent)}
.public-v20-007 .map-search-wrap input{min-height:44px;font-size:14px}
.public-v20-007 .map-filters{
  min-width:0;
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  overflow-x:auto;
  scrollbar-width:none;
  padding:2px;
}
.public-v20-007 .map-filters::-webkit-scrollbar{display:none}
.public-v20-007 .map-filters button{
  flex:0 0 auto;
  min-height:38px;
  padding:8px 13px;
  border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);
  border-radius:999px;
  background:#fff;
  color:color-mix(in srgb,var(--ink) 82%,transparent);
  font-size:12px;
  font-weight:750;
  cursor:pointer;
  transition:.18s ease;
}
.public-v20-007 .map-filters button:hover{border-color:color-mix(in srgb,var(--brand) 38%,transparent);background:color-mix(in srgb,var(--brand) 4%,#fff)}
.public-v20-007 .map-filters button.active{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 7px 18px color-mix(in srgb,var(--brand) 18%,transparent)}
.public-v20-007 .map-result-count{white-space:nowrap;font-size:11px;font-weight:800;color:color-mix(in srgb,var(--ink) 56%,transparent);padding-right:3px}

/* ---------- Map stage ---------- */
.public-v20-007 .map-experience .map-shell{display:block;min-height:0;background:color-mix(in srgb,var(--surface) 72%,#dfe9df);border-radius:0;box-shadow:none}
.public-v20-007 .map-stage{position:relative;height:clamp(570px,58vw,760px);min-height:570px;overflow:hidden;background:#dfe8de}
.public-v20-007 .estate-map{height:100%;min-height:100%;background:#dde7dd}
.public-v20-007 .map-style-estate .leaflet-tile-pane{
  filter:saturate(.72) sepia(.08) brightness(1.045) contrast(.9);
}
.public-v20-007 .map-style-natural .leaflet-tile-pane{filter:saturate(.88) brightness(1.02) contrast(.94)}
.public-v20-007 .map-style-clean .leaflet-tile-pane{filter:saturate(.46) brightness(1.07) contrast(.88)}
.public-v20-007 .map-stage:after{
  content:"";
  position:absolute;
  z-index:390;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 80px rgba(21,55,43,.08);
}
.public-v20-007 .leaflet-control-attribution{font-size:9px!important;background:rgba(255,255,255,.82)!important;backdrop-filter:blur(8px)}
.public-v20-007 .leaflet-control-zoom{border:0!important;box-shadow:0 10px 30px rgba(16,45,36,.15)!important}
.public-v20-007 .leaflet-control-zoom a{
  width:40px!important;height:40px!important;line-height:40px!important;
  border:0!important;border-bottom:1px solid #e3e9e5!important;
  color:var(--brand)!important;background:rgba(255,255,255,.96)!important;
}
.public-v20-007 .leaflet-control-zoom a:first-child{border-radius:13px 13px 0 0!important}
.public-v20-007 .leaflet-control-zoom a:last-child{border-radius:0 0 13px 13px!important;border-bottom:0!important}
.public-v20-007 .domain-map-label{
  border:0!important;
  border-radius:999px!important;
  padding:7px 12px!important;
  background:rgba(20,61,49,.88)!important;
  color:#fff!important;
  box-shadow:0 8px 28px rgba(14,42,33,.18)!important;
  font-size:11px!important;
  font-weight:850!important;
  letter-spacing:.02em!important;
  backdrop-filter:blur(8px);
}
.public-v20-007 .domain-map-label:before{display:none!important}

/* ---------- Custom playful pins ---------- */
.public-v20-007 .estate-pin-host{background:transparent!important;border:0!important;overflow:visible!important}
.public-v20-007 .estate-pin{
  position:relative;
  width:150px;
  height:52px;
  display:flex;
  align-items:center;
  pointer-events:none;
}
.public-v20-007 .estate-pin-core{
  position:relative;
  z-index:2;
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border:4px solid #fff;
  border-radius:16px;
  background:var(--pin,#0d6a51);
  color:#fff;
  box-shadow:0 10px 22px rgba(13,50,39,.25);
  font-size:14px;
  font-weight:900;
  transition:transform .2s ease,box-shadow .2s ease;
}
.public-v20-007 .estate-pin-core::before{content:"";position:absolute;inset:5px;border:1px solid rgba(255,255,255,.25);border-radius:50%}
.public-v20-007 .estate-pin-core{line-height:1;font-family:var(--body-font)}
.public-v20-007 .estate-pin-core::after{content:""}
.public-v20-007 .estate-pin-label{
  margin-left:-3px;
  max-width:102px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding:7px 10px 7px 13px;
  border:1px solid rgba(22,60,47,.10);
  border-radius:0 999px 999px 0;
  background:rgba(255,255,255,.94);
  color:#24483b;
  box-shadow:0 7px 20px rgba(17,46,37,.12);
  font-size:10px;
  font-weight:850;
  opacity:.94;
  transform:translateX(-4px);
  transition:.2s ease;
}
.public-v20-007 .estate-pin-host:hover .estate-pin-core,.public-v20-007 .estate-pin-host.is-selected .estate-pin-core{transform:translateY(-4px) scale(1.08);box-shadow:0 14px 30px rgba(13,50,39,.32)}
.public-v20-007 .estate-pin-host:hover .estate-pin-label,.public-v20-007 .estate-pin-host.is-selected .estate-pin-label{opacity:1;transform:translateX(0);background:#fff;color:var(--brand)}
.public-v20-007 .estate-pin-host.is-selected .estate-pin-core:after{
  content:"";
  position:absolute;
  inset:-9px;
  border:2px solid color-mix(in srgb,var(--pin) 56%,transparent);
  border-radius:20px;
  animation:estatePinPulse 1.6s ease-out infinite;
}
@keyframes estatePinPulse{0%{opacity:.7;transform:scale(.86)}70%,100%{opacity:0;transform:scale(1.2)}}
@media(prefers-reduced-motion:reduce){.public-v20-007 .estate-pin-host.is-selected .estate-pin-core:after{animation:none;opacity:.35}}

/* ---------- Floating map tools ---------- */
.public-v20-007 .map-quick-tools{
  position:absolute;
  z-index:520;
  left:18px;
  top:18px;
  display:flex;
  gap:7px;
  padding:6px;
  border:1px solid rgba(255,255,255,.66);
  border-radius:17px;
  background:rgba(255,255,255,.9);
  box-shadow:0 13px 35px rgba(12,43,33,.15);
  backdrop-filter:blur(16px);
}
.public-v20-007 .map-quick-tools button{
  min-width:44px;
  min-height:42px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#264c3e;
  cursor:pointer;
  transition:.18s ease;
}
.public-v20-007 .map-quick-tools button:hover{background:#edf4ef;color:var(--brand)}
.public-v20-007 .map-quick-tools span{font-size:18px;line-height:1}
.public-v20-007 .map-quick-tools b{font-size:10px;white-space:nowrap}

/* ---------- One and only detail panel ---------- */
.public-v20-007 .leaflet-popup-pane{display:none!important}
.public-v20-007 .map-detail-card{
  position:absolute;
  z-index:620;
  right:20px;
  top:20px;
  width:min(390px,calc(100% - 40px));
  max-height:calc(100% - 40px);
  overflow:auto;
  padding:0;
  border:1px solid rgba(255,255,255,.65);
  border-radius:24px;
  background:rgba(255,255,255,.97);
  color:var(--ink);
  box-shadow:0 28px 80px rgba(10,38,29,.25);
  backdrop-filter:blur(18px);
  scrollbar-width:thin;
  transform-origin:top right;
  animation:mapDetailIn .22s ease-out both;
}
.public-v20-007 .map-detail-card[hidden]{display:none!important}
@keyframes mapDetailIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
.public-v20-007 .map-detail-close{
  position:absolute;
  z-index:3;
  right:12px;
  top:12px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.52);
  border-radius:50%;
  background:rgba(16,45,36,.72);
  color:#fff;
  box-shadow:0 7px 18px rgba(0,0,0,.12);
  backdrop-filter:blur(10px);
  cursor:pointer;
  font-size:22px;
  line-height:1;
}
.public-v20-007 .map-detail-media{margin:0;position:relative}
.public-v20-007 .map-detail-media img,.public-v20-007 .map-detail-placeholder{width:100%;height:210px;object-fit:cover;border-radius:23px 23px 0 0}
.public-v20-007 .map-detail-placeholder{display:grid;align-content:center;justify-items:center;background:linear-gradient(145deg,#d9e8df,#f0e8d9);color:#355448}
.public-v20-007 .map-detail-placeholder span{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.14em}
.public-v20-007 .map-detail-placeholder strong{font:600 26px var(--heading-font)}
.public-v20-007 .map-detail-copy{padding:22px 22px 20px}
.public-v20-007 .map-detail-card .micro{display:block;color:color-mix(in srgb,var(--brand) 72%,transparent);font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.public-v20-007 .map-detail-card h4{margin:7px 38px 10px 0;color:var(--ink);font:600 clamp(26px,2.5vw,35px)/1.05 var(--heading-font);letter-spacing:-.035em}
.public-v20-007 .map-detail-card p{margin:0;color:color-mix(in srgb,var(--ink) 67%,transparent);font-size:14px;line-height:1.68}
.public-v20-007 .map-detail-meta{min-height:18px;margin-top:12px;color:color-mix(in srgb,var(--ink) 66%,transparent);font-size:11px;font-weight:800}
.public-v20-007 .map-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.public-v20-007 .map-detail-actions .btn{min-height:46px;padding:12px 15px;border-radius:12px;font-size:11px}
.public-v20-007 .map-route-btn{border:1px solid color-mix(in srgb,var(--brand) 12%,transparent)!important;background:color-mix(in srgb,var(--brand) 6%,#fff)!important;color:var(--brand)!important}

/* ---------- Horizontal place dock ---------- */
.public-v20-007 .map-place-dock{
  position:absolute;
  z-index:500;
  left:18px;
  right:18px;
  bottom:18px;
  pointer-events:none;
}
.public-v20-007 .map-place-dock-head{display:none}
.public-v20-007 .map-list{
  display:flex;
  gap:10px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:5px 4px 7px;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  pointer-events:auto;
}
.public-v20-007 .map-list::-webkit-scrollbar{display:none}
.public-v20-007 .map-place-card{
  flex:0 0 clamp(230px,23vw,300px);
  min-width:0;
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  align-items:center;
  gap:11px;
  padding:8px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:18px;
  background:rgba(255,255,255,.92);
  color:var(--ink);
  box-shadow:0 13px 35px rgba(10,39,30,.15);
  backdrop-filter:blur(16px);
  text-align:left;
  cursor:pointer;
  scroll-snap-align:start;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.public-v20-007 .map-place-card:hover,.public-v20-007 .map-place-card.active{transform:translateY(-4px);background:#fff;box-shadow:0 18px 44px rgba(9,37,28,.2)}
.public-v20-007 .map-place-card.active{outline:2px solid color-mix(in srgb,var(--brand) 38%,transparent);outline-offset:1px}
.public-v20-007 .map-place-thumb{
  width:64px;height:64px;overflow:hidden;display:grid;place-items:center;
  border-radius:14px;background:color-mix(in srgb,var(--dot) 12%,#eef3ef);color:var(--dot);font-size:12px;font-weight:900;
}
.public-v20-007 .map-place-thumb img{width:100%;height:100%;object-fit:cover}
.public-v20-007 .map-place-copy{min-width:0;display:block}
.public-v20-007 .map-place-copy small{display:block;margin-bottom:2px;color:color-mix(in srgb,var(--ink) 53%,transparent);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.public-v20-007 .map-place-copy strong{display:block;color:var(--ink);font-size:13px;line-height:1.22;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.public-v20-007 .map-place-copy em{display:block;margin-top:5px;color:var(--brand);font-size:10px;font-style:normal;font-weight:800}
.public-v20-007 .map-place-card[hidden]{display:none!important}
.public-v20-007 .has-map-detail .map-place-dock{right:430px;transition:right .2s ease}
.public-v20-007 .map-mobile-hint{display:none}

/* ---------- List mode ---------- */
.public-v20-007 .map-list-mode .map-stage{display:none}
.public-v20-007 .map-list-mode .map-shell{padding:24px;background:color-mix(in srgb,var(--surface) 55%,#fff)}
.public-v20-007 .map-list-mode .map-place-dock{position:static;pointer-events:auto}
.public-v20-007 .map-list-mode .map-place-dock-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.public-v20-007 .map-list-mode .map-place-dock-head span{font:600 28px var(--heading-font)}
.public-v20-007 .map-list-mode .map-place-dock-head small{color:color-mix(in srgb,var(--ink) 55%,transparent)}
.public-v20-007 .map-list-mode .map-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;padding:0}
.public-v20-007 .map-list-mode .map-place-card{width:100%;max-width:none;min-height:92px;transform:none!important;box-shadow:0 8px 26px rgba(12,39,31,.07);border-color:color-mix(in srgb,var(--ink) 9%,transparent)}

/* ---------- Fullscreen ---------- */
.public-v20-007 .map-experience.map-is-fullscreen{
  position:fixed!important;
  z-index:9999!important;
  inset:10px!important;
  display:flex!important;
  flex-direction:column!important;
  border-radius:22px!important;
  background:#fff;
}
.public-v20-007 .map-is-fullscreen .map-experience-head{padding-top:20px;padding-bottom:17px}
.public-v20-007 .map-is-fullscreen .map-shell{position:relative;flex:1;min-height:0}
.public-v20-007 .map-is-fullscreen .map-stage{height:100%;min-height:430px}
.public-v20-007 .map-is-fullscreen .estate-map{height:100%;min-height:100%}

/* ---------- Domain-only ---------- */
.public-v20-007 .map-domain-only .map-place-dock{display:none}
.public-v20-007 .map-domain-only .map-stage{min-height:620px}

/* ---------- Responsive ---------- */
@media(max-width:1050px){
 .public-v20-007 .map-experience-head{align-items:flex-start;flex-direction:column}
 .public-v20-007 .map-explore-bar{grid-template-columns:minmax(200px,280px) minmax(0,1fr)}
 .public-v20-007 .map-result-count{display:none}
 .public-v20-007 .map-list-mode .map-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .public-v20-007 .has-map-detail .map-place-dock{right:18px}
}
@media(max-width:760px){
 .public-v20-007 .map-experience{margin-left:-15px;margin-right:-15px;border-left:0;border-right:0;border-radius:0}
 .public-v20-007 .map-experience-head{padding:25px 18px 20px;gap:18px}
 .public-v20-007 .map-experience-head h3{font-size:36px}
 .public-v20-007 .map-view-switch{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr;border-radius:15px}
 .public-v20-007 .map-view-switch button{border-radius:11px;padding:8px 7px}
 .public-v20-007 .map-explore-bar{display:block;padding:11px 13px}
 .public-v20-007 .map-search-wrap{height:44px}
 .public-v20-007 .map-filters{margin-top:9px}
 .public-v20-007 .map-filters button{min-height:36px;padding:7px 11px}
 .public-v20-007 .map-stage{height:590px;min-height:590px}
 .public-v20-007 .map-quick-tools{left:10px;top:10px;gap:3px;padding:4px;border-radius:14px}
 .public-v20-007 .map-quick-tools button{padding:6px 8px;min-height:40px}
 .public-v20-007 .map-quick-tools b{display:none}
 .public-v20-007 .map-detail-card{left:10px;right:10px;top:auto;bottom:10px;width:auto;max-height:67%;border-radius:22px;transform-origin:bottom center}
 .public-v20-007 .map-detail-media img,.public-v20-007 .map-detail-placeholder{height:150px;border-radius:21px 21px 0 0}
 .public-v20-007 .map-detail-copy{padding:18px}
 .public-v20-007 .map-detail-card h4{font-size:27px}
 .public-v20-007 .map-place-dock{left:8px;right:8px;bottom:8px}
 .public-v20-007 .has-map-detail .map-place-dock{display:none}
 .public-v20-007 .map-place-card{flex-basis:225px;grid-template-columns:56px minmax(0,1fr);border-radius:16px}
 .public-v20-007 .map-place-thumb{width:56px;height:56px;border-radius:12px}
 .public-v20-007 .map-mobile-hint{display:block;position:absolute;z-index:480;left:50%;top:62px;transform:translateX(-50%);white-space:nowrap;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.88);color:#52675e;font-size:9px;font-weight:800;pointer-events:none;box-shadow:0 8px 20px rgba(14,42,33,.08)}
 .public-v20-007 .has-map-detail .map-mobile-hint{display:none}
 .public-v20-007 .map-list-mode .map-shell{padding:15px}
 .public-v20-007 .map-list-mode .map-list{grid-template-columns:1fr}
 .public-v20-007 .map-list-mode .map-place-dock-head{display:block}
 .public-v20-007 .map-list-mode .map-place-dock-head small{display:block;margin-top:4px}
 .public-v20-007 .map-is-fullscreen{inset:0!important;border-radius:0!important}
 .public-v20-007 .map-is-fullscreen .map-experience-head{padding:15px 14px 12px}
 .public-v20-007 .map-is-fullscreen .map-experience-head p{display:none}
}
@media(max-width:420px){
 .public-v20-007 .map-experience-head h3{font-size:31px}
 .public-v20-007 .map-stage{height:540px;min-height:540px}
 .public-v20-007 .map-detail-actions{display:grid;grid-template-columns:1fr}
 .public-v20-007 .map-detail-actions .btn{width:100%;text-align:center}
 .public-v20-007 .estate-pin-label{max-width:82px;font-size:9px}
}
