/* escape. · «Контакты» над подвалом — один блок для всех страниц витрины.
   Разметка: partials/contacts-block.php, данные: inc/contacts-block.php.
   Вид — как у секции главной до 28.09.2026; стили самодостаточны:
   страницы держат свои токены внутри обёртки, блок стоит вне её. */
.esc-ct{
  --accent:#ff0004; --accent-text:#ff6b6d;
  --accent-grad:linear-gradient(135deg,#ff3b3e 0%,#ff0004 100%);
  --border:rgba(255,255,255,.08); --border-strong:rgba(255,255,255,.16);
  --surface:#242424; --muted:#b3b3b3; --muted-2:#8f8f8f; --ease:ease-in-out;
  /* Own dark background: light pages (collections) otherwise leave white text on white. */
  position:relative; padding-block:clamp(52px,6.5vw,96px); background:#1c1c1c;
  font-family:'Ubuntu',Arial,sans-serif; color:#fff; line-height:1.5;
}
.esc-ct :where(*,*::before,*::after){ box-sizing:border-box; }
.esc-ct [hidden]{ display:none !important; }
.esc-ct a{ color:inherit; text-decoration:none; }
.esc-ct button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; touch-action:manipulation; }
.esc-ct :focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:6px; }
.esc-ct-wrap{ width:100%; max-width:1200px; margin-inline:auto; padding-inline:24px; }

/* Шапка секции: надзаголовок → заголовок с последним словом в градиенте → строка */
.esc-ct-head{ max-width:680px; margin-bottom:clamp(40px,5vw,64px); }
.esc-ct-eyebrow{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:13px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent-text); }
.esc-ct-eyebrow::before{ content:""; width:22px; height:1px; background:var(--accent); opacity:.7; }
.esc-ct-head h2{ margin:18px 0 14px; font-size:clamp(30px,4.4vw,52px); font-weight:700; line-height:1.2; letter-spacing:0; text-wrap:balance; color:#fff; }
.esc-ct-grad{ background:var(--accent-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.esc-ct-head p{ margin:0; color:var(--muted); font-size:clamp(16px,1.6vw,19px); text-wrap:pretty; }

.esc-ct-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.esc-ct-info{ display:flex; flex-direction:column; gap:8px; min-width:0; }

/* Строки: иконка — подпись — значение — пояснение */
.esc-ct-row{ display:flex; gap:16px; padding:22px 0; border-bottom:1px solid var(--border); align-items:flex-start; }
.esc-ct-ico{ width:46px; height:46px; border-radius:12px; background:var(--surface); border:1px solid var(--border);
  display:grid; place-items:center; color:var(--accent); flex:0 0 auto; }
.esc-ct-ico svg{ width:22px; height:22px; }
.esc-ct-body{ flex:1 1 auto; min-width:0; }
.esc-ct-lbl{ color:var(--muted-2); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:3px; }
.esc-ct-val{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:18px; font-weight:700; }
.esc-ct-val + .esc-ct-val{ margin-top:6px; }
.esc-ct-val a{ transition:color .2s var(--ease); }
.esc-ct-val a:hover{ color:var(--accent); }
.esc-ct-who{ min-width:56px; color:var(--muted); font-size:14px; font-weight:500; }
.esc-ct-sub{ color:var(--muted); font-size:14px; margin-top:5px; line-height:1.5; }
/* Парковка — строкой при адресе, не отдельным пунктом */
.esc-ct-park{ display:flex; align-items:flex-start; gap:7px; margin-top:6px; color:var(--muted-2); font-size:13px; line-height:1.45; }
.esc-ct-park svg{ width:15px; height:15px; flex:0 0 auto; margin-top:1px; color:var(--muted); }

.esc-ct-copyval{ display:inline-flex; align-items:center; gap:9px; text-align:left; transition:color .2s var(--ease); }
.esc-ct-copyval:hover{ color:var(--accent); }
.esc-ct .esc-ct-copy{ position:relative; display:inline-grid; place-items:center; width:36px; height:36px; border-radius:10px; flex:0 0 auto;
  border:1px solid var(--border-strong); background:var(--surface); color:var(--muted-2);
  transition:color .2s var(--ease), border-color .2s var(--ease); }
.esc-ct-copy::before{ content:""; position:absolute; inset:-4px; }
.esc-ct-copy svg{ width:16px; height:16px; }
.esc-ct-copyval:hover .esc-ct-copy, button.esc-ct-copy:hover{ color:var(--accent); border-color:rgba(255,0,4,.45); }

/* Фото входа — открывает общее окно просмотра фото */
.esc-ct .esc-ct-photo{ position:relative; flex:0 0 auto; align-self:center; width:86px; height:86px; border-radius:14px; overflow:hidden;
  border:1px solid var(--border-strong); background:var(--surface);
  transition:border-color .3s var(--ease), transform .3s var(--ease); }
.esc-ct-photo img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease); }
.esc-ct-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(8,8,8,.45)); opacity:0; transition:opacity .3s var(--ease); }
.esc-ct .esc-ct-photo:hover{ border-color:rgba(255,0,4,.5); transform:translateY(-2px); }
.esc-ct-photo:hover img{ transform:scale(1.07); }
.esc-ct-photo:hover::after{ opacity:1; }

.esc-ct-links{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.esc-ct-links a{ display:inline-flex; align-items:center; min-height:44px; padding:9px 16px; border:1px solid var(--border-strong); border-radius:999px;
  font-size:14px; font-weight:500; color:var(--muted); transition:color .2s var(--ease), border-color .2s var(--ease); }
.esc-ct-links a:hover{ color:#fff; border-color:var(--accent); }

/* Карта: заглушка-кадр, iframe Яндекса — только по нажатию */
.esc-ct-map{ position:relative; min-height:420px; border-radius:24px; overflow:hidden; border:1px solid var(--border); background:#101010; }
.esc-ct-map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; z-index:1; opacity:0; transition:opacity .55s var(--ease); }
.esc-ct-map.ready iframe{ opacity:1; }
.esc-ct .esc-ct-map-cta{ position:absolute; inset:0; z-index:3; display:block; width:100%; height:100%; overflow:hidden; text-align:left;
  background:radial-gradient(90% 80% at 50% 30%, rgba(255,0,4,.10), transparent 65%), linear-gradient(180deg,#171717 0%,#101010 100%);
  transition:opacity .4s var(--ease); }
.esc-ct-map-cta:disabled{ cursor:default; }
.esc-ct-map.loading .esc-ct-map-cta, .esc-ct-map.ready .esc-ct-map-cta{ opacity:0; pointer-events:none; }
.esc-ct-map-art{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9; filter:saturate(.85);
  transition:transform .9s var(--ease), filter .45s var(--ease); }
.esc-ct-map-cta:not(:disabled):hover .esc-ct-map-art{ transform:scale(1.04); filter:saturate(1); }
.esc-ct-map-cta::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(78% 70% at 50% 40%, transparent 45%, rgba(16,16,16,.75) 100%), linear-gradient(180deg, transparent 45%, rgba(16,16,16,.92) 100%); }
.esc-ct-pin{ position:absolute; left:50%; top:42%; z-index:2; transform:translate(-50%,-50%); width:60px; height:60px; border-radius:50%;
  display:grid; place-items:center; color:#fff; background:var(--accent-grad); box-shadow:0 16px 38px -12px rgba(255,0,4,.7); transition:transform .3s var(--ease); }
.esc-ct-pin::after{ content:""; position:absolute; inset:0; border-radius:50%; border:1.5px solid rgba(255,0,4,.55); animation:escCtPulse 2.6s var(--ease) infinite; }
.esc-ct-pin svg{ width:26px; height:26px; }
.esc-ct-map-cta:not(:disabled):hover .esc-ct-pin{ transform:translate(-50%,-50%) scale(1.08); }
@keyframes escCtPulse{ 0%{ transform:scale(1); opacity:.7; } 70%,100%{ transform:scale(2.2); opacity:0; } }
.esc-ct-panel{ position:absolute; left:0; right:0; bottom:0; z-index:2; display:flex; align-items:flex-end; justify-content:space-between;
  gap:clamp(16px,3vw,32px); padding:clamp(20px,2.4vw,28px); }
.esc-ct-map-h{ display:block; margin-bottom:12px; font-size:clamp(18px,1.8vw,22px); font-weight:700; letter-spacing:-.01em; }
.esc-ct-map-addr{ display:flex; flex-direction:column; gap:8px; }
.esc-ct-map-addr > span{ display:flex; align-items:center; gap:9px; font-size:14px; color:var(--muted); }
.esc-ct-map-addr i{ width:7px; height:7px; border-radius:50%; background:var(--accent); flex:0 0 auto; box-shadow:0 0 0 3px rgba(255,0,4,.18); }
.esc-ct-map-addr b{ color:#fff; font-weight:700; }
.esc-ct-hint{ display:inline-flex; align-items:center; gap:9px; flex:0 0 auto; padding:13px 22px; border-radius:999px; white-space:nowrap;
  border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.07); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  font-size:14px; font-weight:500; transition:border-color .2s var(--ease), background .2s var(--ease); }
.esc-ct-hint svg{ width:16px; height:16px; }
.esc-ct-map-cta:hover .esc-ct-hint{ border-color:var(--accent); background:var(--accent); }
.esc-ct-skel{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
  color:var(--muted-2); opacity:0; pointer-events:none; transition:opacity .3s var(--ease); }
.esc-ct-map.loading .esc-ct-skel{ opacity:1; }
.esc-ct-map.ready .esc-ct-skel{ opacity:0; }
.esc-ct-skel svg{ width:34px; height:34px; color:var(--border-strong); }
.esc-ct-skel span{ font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }

/* Всплывашка «Скопировано» */
.esc-ct-toast{ position:fixed; left:50%; bottom:calc(28px + env(safe-area-inset-bottom,0px)); z-index:10200; transform:translate(-50%,12px);
  display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border-radius:999px; background:#242424; border:1px solid rgba(255,255,255,.16);
  color:#fff; font:500 14px/1.2 'Ubuntu',Arial,sans-serif; box-shadow:0 18px 40px -16px rgba(0,0,0,.7);
  opacity:0; pointer-events:none; transition:opacity .3s ease-in-out, transform .3s ease-in-out; }
.esc-ct-toast.show{ opacity:1; transform:translate(-50%,0); }
.esc-ct-toast svg{ width:16px; height:16px; color:#35c759; }

@media (max-width:760px){
  .esc-ct-grid{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .esc-ct-map{ min-height:340px; }
  .esc-ct-panel{ flex-direction:column; align-items:stretch; }
  .esc-ct-hint{ justify-content:center; }
  .esc-ct-pin{ top:34%; width:52px; height:52px; }
  .esc-ct-pin svg{ width:23px; height:23px; }
}
@media (max-width:520px){
  .esc-ct-row{ flex-wrap:wrap; }
  .esc-ct-body{ flex:1 1 0; }
  .esc-ct .esc-ct-photo{ order:3; flex:1 1 100%; width:auto; height:140px; margin-left:62px; align-self:auto; }
}
@media (prefers-reduced-motion:reduce){
  .esc-ct-pin::after{ animation:none; }
  .esc-ct-map-cta:hover .esc-ct-map-art, .esc-ct-photo:hover img{ transform:none; }
  .esc-ct .esc-ct-photo:hover{ transform:none; }
}
