:root{
      --serif: "Noto Serif", Georgia, "Times New Roman", serif;
    }

    html{
      height:100%;
      margin:0;
      background:#000;
      overflow-y:scroll;
      scrollbar-gutter: stable;
    }
    
  /* ===== Stable mobile viewport height (prevents resize jump when browser UI shows/hides) ===== */
  :root{
    --vh: 100vh;
    --bb-h: 35px;
  }
  @supports (height: 100svh){
    :root{ --vh: 100svh; }
  }

body{
      margin:0;
      min-height:100%;
      background:#000;
      font-family:"Noto Serif", Georgia, serif;
      overflow-x:hidden;
	  padding-bottom: 0;
      scroll-padding-bottom: calc(var(--bb-h) + env(safe-area-inset-bottom, 0px));
    }

    /* ================= INTRO (fixed layer) ================= */
    #introLayer{
      position:fixed;
      inset:0;
      z-index:5;
      opacity:1;
      pointer-events:auto;
      touch-action: pan-y;
      will-change: opacity;
    }
    #introVideo{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
    
      pointer-events:none;
    }

    /* Cinematic intro overlay */
    #introOverlay{
      position:absolute;
      inset:0;
      background:transparent;
      display:flex;
      align-items:center;
      justify-content:center;
      text-align:center;
      will-change: background;
      overflow:hidden;
      isolation:isolate;
    }

    #introOverlay::before,
    #introOverlay::after{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
    }

    /* soft warm tint + slight vignette */
    #introOverlay::before{
      background:
        radial-gradient(
          ellipse at center,
          rgba(255,251,245,0.14) 0%,
          rgba(245,235,220,0.28) 46%,
          rgba(214,198,176,0.42) 100%
        ),
        linear-gradient(
          180deg,
          rgba(255,250,244,0.58) 0%,
          rgba(244,234,218,0.52) 52%,
          rgba(220,205,184,0.62) 100%
        );
      z-index:0;
    }

    /* visible grain */
    #introOverlay::after{
      background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.35' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
      background-size:140px 140px;
      opacity:.3;
      mix-blend-mode:multiply;
      z-index:1;
    }

    #introContent{
      z-index:2;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:22px;
      max-width:90vw;
    }

    /* Main title: smaller + NOT bold */
    #introContent h1{
      font-family: "Noto Serif", Georgia, serif;
      font-weight:400 !important;
      font-size: clamp(15px, 1.3vw, 22px);
      letter-spacing:.06em;
      margin:0;
      color:#000;
      opacity:.95;
    }

    /* Signature: Great Vibes, normal weight, slightly bigger */
    #introContent h2{
      font-family:"Great Vibes", cursive;
      font-weight:400 !important;
      font-size:clamp(22px, 1.6vw, 34px);
      letter-spacing:.02em;
      margin:0;
      color:#000;
      opacity:.9;
    }

    #introContent img{
      width:min(320px, 60vw);
      height:auto;
      display:block;
    }
	
	/* ===== Intro optimization for phone landscape / small-height screens ===== */
	@media (max-height: 520px){
	  #introContent{
		gap: 10px;
		max-width: min(88vw, 720px);
		transform-origin: center center;
	  }

	  #introContent h1{
		font-size: clamp(12px, 2.2vh, 18px);
		line-height: 1.2;
	  }

	  #introContent h2{
		font-size: clamp(18px, 3.2vh, 26px);
		line-height: 1.1;
	  }

	  #introContent img{
		width: auto;
		max-width: min(58vw, 320px);
		max-height: 40vh;
	  }
	}
  
  /* ================= FINAL VIDEO SECTION ================= */
  .video-section{
    position:relative;
    min-height:var(--vh);
    height:auto;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }

  .video-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }

  .video-overlay{
    position:absolute;
    inset:0;
    background:transparent;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:60px 24px;
    text-align:center;
    overflow:hidden;
    isolation:isolate;
  }

  .video-overlay::before,
  .video-overlay::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
  }

  .video-overlay::before{
    background:
      radial-gradient(
        ellipse at center,
        rgba(255,250,244,0.10) 0%,
        rgba(244,234,218,0.22) 46%,
        rgba(226,211,191,0.38) 100%
      ),
      linear-gradient(
        180deg,
        rgba(255,248,238,0.72) 0%,
        rgba(245,236,222,0.68) 54%,
        rgba(232,220,202,0.74) 100%
      );
    z-index:0;
  }

  .video-overlay::after{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
    background-size:160px 160px;
    opacity:.3;
    mix-blend-mode:multiply;
    z-index:1;
  }

  .about-list{
    padding:0;
  }

  .about-list li{
    margin:10px 0;
  }
  
  .about-note{
    margin:26px auto 0 auto;
    width:min(760px, 100%);
    font-family: "Noto Serif", Georgia, serif;
    font-size:clamp(14px,0.95vw,17px);
    line-height:1.85;
    color:#111;
	text-align:justify;
  }

  .about-note{
    margin-bottom:42px; /* more breathing space */
  }


  /* ===== ABOUT SECTION TYPOGRAPHY REFINED ===== */

  .about-list li{
    margin:12px 0;
  }


  /* ===== ABOUT SECTION – PREMIUM REFINEMENT ===== */
  .video-content{
    position:relative;
    z-index:2;
    max-width:680px;
    text-align:left;
    margin:0 auto;
    color:#111;
  }

  /* animate only when section is marked for animation */
  .video-section[data-animate="true"] .video-content{
    opacity:0;
    transform:translateY(20px);
    transition:opacity .9s ease, transform .9s ease;
    will-change:opacity,transform;
  }
  .video-section[data-animate="true"].in .video-content{
    opacity:1;
    transform:translateY(0);
  }

  .about-title{
    font-family:'Great Vibes', cursive; /* new */
    font-weight:400;
    font-size:clamp(30px,2.6vw,48px);
    text-align:center;                /* centered */
    margin-bottom:56px;
    color:#111;                      /* softer text */
  }

  .about-list{
    list-style:circle;
    padding-left:24px;
    margin:0;
    font-family: "Noto Serif", Georgia, serif;
    font-size:clamp(14px,0.95vw,17px);
    line-height:1.9;
    color:#111;                      /* softer text */
  }


  /* ================= BREATHWORK SESSION SECTION ================= */
  .session-section{
    position:relative;
    min-height:var(--vh);
    height:auto;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .session-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }

  .session-overlay{
    position:absolute;
    inset:0;
    background:transparent;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:60px 24px;
    box-sizing:border-box;
    overflow:hidden;
    isolation:isolate;
  }

  .session-overlay::before,
  .session-overlay::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
  }

  .session-overlay::before{
    background:
      radial-gradient(
        ellipse at center,
        rgba(255,248,242,0.08) 0%,
        rgba(244,232,216,0.20) 48%,
        rgba(224,209,189,0.36) 100%
      ),
      linear-gradient(
        180deg,
        rgba(252,245,236,0.68) 0%,
        rgba(240,231,215,0.64) 54%,
        rgba(226,214,195,0.72) 100%
      );
    z-index:0;
  }

  .session-overlay::after{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.18' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
    background-size:165px 165px;
    opacity:.3;
    mix-blend-mode:multiply;
    z-index:1;
  }

  .session-content{
    position:relative;
    z-index:2;
    width:min(860px, 92vw);
    color:#111;
  }

  .session-title{
    font-family:'Great Vibes', cursive;
    font-weight:400;
    font-size:clamp(30px,2.6vw,48px); /* match about title sizing */
    text-align:center;
    margin:0 0 28px 0;
    color:#111;
  }

  .session-total{
    font-family: "Noto Serif", Georgia, serif;
    font-weight:400;
    font-size:clamp(15px,0.95vw,18px);
    text-align:center;
    margin:0 0 16px 0;
    letter-spacing:.03em;
    color:#111;
  }

  .timeline{
    margin:0 auto 22px auto;
    width:min(760px, 100%);
  }

  .timeline-bar{
    display:flex;
    height:14px;
    border-radius:999px;
    overflow:hidden;
    background:#e8e8e8;
    box-shadow:0 0 0 1px rgba(0,0,0,.06) inset;
  }

  .seg{height:100%;}
  .seg.intro{width:16.6667%; background:#f2c94c;}     /* yellow 20/120 */
  .seg.breath{width:50%; background:#f2994a;}         /* orange 60/120 */
  .seg.relax{width:16.6667%; background:#2d9cdb;}     /* blue 20/120 */
  .seg.close{width:16.6667%; background:#9b51e0;}     /* violet 20/120 */

  .timeline-legend{
    margin:14px 0 0 0;
    padding:0;
    list-style:none;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    font-family: "Noto Serif", Georgia, serif;
    font-size:clamp(15px,0.95vw,17px);
    line-height:1.5;
    color:#111;
  }

  @media (min-width: 720px){
    .timeline-legend{
      grid-template-columns:1fr 1fr;
      column-gap:26px;
      row-gap:12px;
    }
  }

  .timeline-legend li{
    display:flex;
    align-items:flex-start;
    gap:10px;
  }

  .dot{
    width:10px;
    height:10px;
    border-radius:999px;
    margin-top:6px;
    flex:0 0 10px;
  }
  .dot.intro{background:#f2c94c;}
  .dot.breath{background:#f2994a;}
  .dot.relax{background:#2d9cdb;}
  .dot.close{background:#9b51e0;}

  .session-note{
    margin:26px auto 0 auto;
    width:min(760px, 100%);
    font-family: "Noto Serif", Georgia, serif;
    font-size:clamp(15px,0.95vw,17px);
    line-height:1.85;
    color:#111;
	text-align:justify;
  }


  /* ===== SESSION layout tweaks ===== */
  .timeline-legend{
    grid-template-columns:1fr !important; /* one under another */
  }

  .session-note{
    margin-top:42px; /* more breathing space */
  }

  .method-overlay{
    position:absolute;
    inset:0;
    background:transparent;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:60px 24px;
    overflow:hidden;
    isolation:isolate;
  }

  .method-overlay::before,
  .method-overlay::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
  }

  .method-overlay::before{
    background:
      radial-gradient(
        ellipse at center,
        rgba(255,247,240,0.08) 0%,
        rgba(242,230,214,0.18) 45%,
        rgba(219,202,182,0.34) 100%
      ),
      linear-gradient(
        180deg,
        rgba(248,241,232,0.64) 0%,
        rgba(236,226,210,0.60) 55%,
        rgba(222,209,190,0.70) 100%
      );
    z-index:0;
  }

  .method-overlay::after{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.12' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
    background-size:170px 170px;
    opacity:.3;
    mix-blend-mode:multiply;
    z-index:1;
  }

  .method-content{
    position:relative;
    z-index:2;
    width:min(760px, 92vw);
    font-family: "Noto Serif", Georgia, serif;
    color:#111;
    line-height:1.85;
  }

  .method-title{
    font-family:'Great Vibes', cursive;
    font-weight:400;
    font-size:clamp(30px,2.6vw,48px);
    text-align:center;
    margin:0 0 36px 0;
  }

  .method-text{
    font-size:clamp(14px,1vw,16px);
    margin-bottom:28px;
	text-align:justify;
  }

  .method-price{
    font-size:clamp(16px,1.1vw,18px);
    margin:22px 0 32px 0;
  }

  .method-list{
    margin:0;
    padding-left:22px;
    list-style:circle;
    font-size:clamp(14px,0.95vw,16px);
  }

  .method-list li{
    margin:10px 0;
  }


  /* ================= FOOTER – PREMIUM ================= */
  .footer-section{
    position:relative;
    z-index:4;
    color:#fff;
    padding:42px 24px 34px 24px;
    text-align:center;
    background:linear-gradient(180deg, rgba(22,59,46,0.92), rgba(13,35,27,0.98));
    overflow:hidden;
  }

  /* subtle glass/blur layer */
  .footer-section::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(255,255,255,0.04);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    pointer-events:none;
  }

  .footer-inner{
    position:relative;
    max-width: 980px;
    margin:0 auto;
  }

  .footer-title{
    font-family: "Noto Serif", Georgia, serif;
    font-weight:400;
    font-size:clamp(18px,1.3vw,22px);
    margin:0 0 26px 0;
    letter-spacing:.04em;
  }

  .footer-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap:12px;
    align-items:stretch;
    margin:0 auto 32px auto;
    width:min(880px, 100%);
  }

  @media (min-width: 760px){
    .footer-grid{
      grid-template-columns: repeat(3, 1fr);
      gap:14px;
    }
  }

  .contact-pill{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 14px;
    border-radius:999px;
    text-decoration:none;
    color:#fff;
    background: rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.12);
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
  }

  .contact-pill:hover{
    background: rgba(255,255,255,0.12);
    border-color: rgba(255,255,255,0.18);
    transform: translateY(-1px);
  }

  .icon{
    width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    opacity:.95;
    flex:0 0 18px;
  }
  .icon svg{
    width:18px;
    height:18px;
    color:#fff;
  }

  .contact-text{
    font-family: "Noto Serif", Georgia, serif;
    font-size:clamp(14px,0.95vw,17px);
    letter-spacing:.01em;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    width:100%;
    text-align:left;
  }

  @media (max-width: 420px){
    .contact-text{ white-space:normal; }
    .contact-pill{ border-radius:18px; }
  }

  .footer-copy{
    font-size:13px;
    opacity:.75;
    margin:0;
  }
  
  body{
    letter-spacing: 0.03em;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  /* Improve paragraph and list rhythm */
  p, li{
    line-height: 1.75;
  }

  /* Slightly softer bolds with Georgia */
  strong{
    font-weight: 600;
  }

  /* ===== About bullets in footer green ===== */
  .about-list li::marker{
    color:#163b2e;
  }


  /* ===== About bullets filled green ===== */
  .about-list{
    list-style: disc;
  }
  .about-list li::marker{
    color:#163b2e;
    font-size:1.05em;
  }


  /* ===== About rainbow bullets (violet → red) ===== */
  .about-list{ list-style: disc; }

  .about-list li:nth-child(1)::marker{ color:#6f42c1; } /* violet */
  .about-list li:nth-child(2)::marker{ color:#3f51b5; } /* indigo */
  .about-list li:nth-child(3)::marker{ color:#2196f3; } /* blue */
  .about-list li:nth-child(4)::marker{ color:#2e7d32; } /* green */
  .about-list li:nth-child(5)::marker{ color:#f9a825; } /* yellow/orange */
  .about-list li:nth-child(6)::marker{ color:#e53935; } /* red */

  .about-list li::marker{
    font-size:1.08em;
  }

  /* ===== Fix session bullets vertical alignment ===== */
  .timeline-legend li{
    align-items: baseline; /* instead of flex-start */
  }

  .timeline-legend .dot{
    margin-top: 0.35em; /* optical alignment with text */
  }


  .method-list{
    list-style: disc;
  }

  .method-list li:nth-child(1)::marker{ color:#e53935; } /* red */
  .method-list li:nth-child(2)::marker{ color:#fb8c00; } /* orange */
  .method-list li:nth-child(3)::marker{ color:#fdd835; } /* yellow */
  .method-list li:nth-child(4)::marker{ color:#43a047; } /* green */
  .method-list li:nth-child(5)::marker{ color:#1e88e5; } /* blue */
  .method-list li:nth-child(6)::marker{ color:#8e24aa; } /* violet */

  .method-list li::marker{
    font-size:1.08em;
  }


  
  .method-section{ overflow:hidden; }
  .method-section{
    position:relative;
    overflow:hidden;
  }

  /* ================= METHOD SECTION (clean) ================= */
  .method-section{
    position:relative;
    min-height:var(--vh);
    height:auto;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    background:#000; /* polish: avoids any flash if video is slow to load */
  }

  .method-section video.method-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
  }




/* ================= GLOBAL LINK STYLES ================= */
a,
a:visited{
  color: #2e7d32;
  text-decoration: none;
}
a:hover, a:focus{
  text-decoration: underline;
}

/* ================= BOTTOM BAR (scoped) ================= */
.bb-bar{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(var(--bb-h) + env(safe-area-inset-bottom, 0px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 4px 12px env(safe-area-inset-bottom, 0px);

  background: linear-gradient(180deg, rgba(31,79,62,0.84) 0%, rgba(22,59,46,0.84) 100%);
  border-top: 1px solid rgba(255,255,255,0.65);
  box-shadow: 0 -6px 20px rgba(0,0,0,0.18);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  z-index: 6; /* above intro */
  transition: transform 0.25s ease;
}
.bb-bar.is-hidden{ transform: translateY(110%); }

.bb-logo{
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
  color: #fff;
}
.bb-logo-mark{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
/* Externalized bottom bar logo */
.bb-logo-mark img{
  height: 58px;
  width: auto;
  display: block;
  filter: invert(1) brightness(2);
}

.bb-actions{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.bb-text{
  color: rgba(255,255,255,0.94);
  font-size: 13px;
  white-space: nowrap;
}
.bb-icons{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.bb-icon{
  width: 28px;
  height: 28px;
  min-width: 28px;
  min-height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.18);
  color: #fff;
  text-decoration: none !important;
}
.bb-icon svg{
  width: 15px;
  height: 15px;
  display: block;
  opacity: 0.95;
}
.bb-icon:hover, .bb-icon:focus{
  background: rgba(255,255,255,0.18);
  outline: none;
}

@media (max-width: 520px){
  .bb-text{ display:none; }
}

.bb-location{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none !important;
  color: rgba(255,255,255,0.95);
  min-width: 0;
  max-width: min(46vw, 520px);
  padding: 0 10px;
}

.bb-location-icon{
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #f2d27a; /* пастелено топло жълто */
  flex: 0 0 18px;
}

.bb-location-icon svg{
  width: 18px;
  height: 18px;
  display: block;
}

.bb-location-text{
  font-family: "Noto Serif", Georgia, serif;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgba(255,255,255,0.94);
}

.bb-location:hover .bb-location-text,
.bb-location:focus .bb-location-text{
  text-decoration: underline;
}

.bb-location:hover .bb-location-icon,
.bb-location:focus .bb-location-icon{
  filter: brightness(1.06);
}

@media (max-width: 900px){
  .bb-location{
    max-width: 38vw;
  }

  .bb-location-text{
    font-size: 12px;
  }
}

/* mobile: махаме текста от средата и местим жълтата икона при другите икони */
@media (max-width: 960px){
  .bb-bar{
    justify-content: space-between;
  }

  .bb-location{
    position: static;
    transform: none;
    order: 3;
    padding: 0;
    max-width: none;
    margin-left: 0;
  }

  .bb-location-text{
    display: none;
  }

  .bb-location-icon{
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 50%;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.18);
    justify-content: center;
    align-items: center;
  }

  .bb-location-icon svg{
    width: 15px;
    height: 15px;
  }

  .bb-actions{
    gap: 8px;
  }

  .bb-icons{
    gap: 8px;
  }
}


/* ================= LANGUAGE SWITCH ================= */
.lang-switch{
  z-index: 10;
  pointer-events: auto;
  position:absolute;
  top:28px;
  left:50%;
  transform:translateX(-50%);
  font-family: inherit;
  font-weight: 700;
  font-size:clamp(10px, 1.3vw, 12px);
  letter-spacing:0.08em;
  color:#000;
  display:flex;
  align-items:center;
  gap:8px;
  
 opacity:1; }

.lang-active{
  pointer-events:none;
  opacity:1;
  font-weight:700;
}

.lang-link{
  color:#2e7d32;
  text-decoration:none;
  font-weight:700;
  opacity:1;
  cursor:pointer;
}

.lang-link:hover{ text-decoration: underline; }

.lang-sep{
  opacity:0.5;
}

.lang-active{
  pointer-events:none;
  opacity:1;
}

.lang-link{
  pointer-events: auto;
  cursor: pointer;
  text-decoration:none;
  transition:opacity .2s ease;
}


@media (max-width: 900px){
  #introOverlay::after{
    opacity:.09;
    background-size:120px 120px;
  }

  .video-overlay::after,
  .session-overlay::after,
  .method-overlay::after{
    opacity:.06;
    background-size:140px 140px;
  }
}

/* ===== Small-height devices (phone landscape): allow content to scroll instead of clipping ===== */
  @media (max-height: 700px){
    .video-section,
    .session-section,
    .method-section{
      padding: 40px 0;
    }
    .video-content,
    .session-content,
    .method-content{
      max-height: calc(var(--vh) - 80px);
      overflow: auto;
      -webkit-overflow-scrolling: touch;
    }
  }

/* ===== Variant patch injected ===== */

.video-section,
.session-section,
.method-section{
  position:relative !important;
  z-index:5;
  min-height:var(--vh) !important;
  height:auto !important;
  display:flex !important;
  align-items:stretch !important;
  justify-content:center !important;
  overflow:hidden !important;
  background:#000;
}

.video-bg,
.session-bg,
.method-bg{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

.video-overlay,
.session-overlay,
.method-overlay{
  position:relative !important;
  inset:auto !important;
  width:100% !important;
  min-height:var(--vh) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:clamp(56px, 7vw, 88px) 24px !important;
  box-sizing:border-box !important;
}

.video-content,
.session-content,
.method-content{
  width:min(760px, 100%) !important;
  max-width:760px !important;
  margin:0 auto !important;
  max-height:none !important;
  overflow:visible !important;
}

@media (min-width: 901px){
  .video-overlay,
  .session-overlay,
  .method-overlay{
    align-items:center !important;
  }
}

@media (max-width: 900px){
  .video-section,
  .session-section,
  .method-section{
    min-height:auto !important;
  }

  .video-overlay,
  .session-overlay,
  .method-overlay{
    min-height:max(var(--vh), 100%) !important;
    align-items:flex-start !important;
    padding:48px 20px 56px !important;
  }

  .about-title,
  .session-title,
  .method-title{
    margin-bottom:24px !important;
  }

  .about-note,
  .session-note,
  .method-text,
  .about-list,
  .method-list,
  .timeline-legend{
    font-size:clamp(15px,4.2vw,15px);
    line-height:1.8;
  }
}

@media (min-width: 900px){
  .video-section,
  .session-section,
  .method-section{
    height:auto !important;
    min-height:105vh !important;
  }
}

@media (max-height: 700px){
  .video-section,
  .session-section,
  .method-section{
    padding:0 !important;
  }

  .video-content,
  .session-content,
  .method-content{
    max-height:none !important;
    overflow:visible !important;
    -webkit-overflow-scrolling:auto !important;
  }
}

/* ===== Footer Map ===== */

.footer-map-block{
  width: min(920px,100%);
  margin: 0px auto 36px;
}

/* карта */

.footer-map-frame{
  position: relative;
  overflow: hidden;
  border-radius: 18px 18px 0 0;
  background: rgba(255,255,255,0.06);
  box-shadow:
    0 18px 48px rgba(0,0,0,0.22),
    0 0 0 1px rgba(255,255,255,0.10) inset;
}

.footer-map-frame iframe{
  width:100%;
  height:320px; /* по-ниска карта */
  border:0;
  display:block;
  filter: grayscale(.22) sepia(.14) saturate(.82) hue-rotate(-8deg) contrast(1.02) brightness(1.01);
}

.footer-map-mask{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(
      180deg,
      rgba(255,244,224,0.12) 0%,
      rgba(233,214,184,0.16) 100%
    ),
    radial-gradient(
      circle at center,
      rgba(255,248,236,0.03) 0,
      rgba(255,248,236,0.03) 95px,
      rgba(255,244,224,0.10) 150px,
      rgba(54,38,20,0.14) 100%
    );
  mix-blend-mode:multiply;
}

/* card */

.footer-map-card{
  text-align:center;
  padding:18px 20px;
  border-radius:0 0 18px 18px;
  background:rgba(255,255,255,0.14);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.18);
  border-top:none;
  font-size:15px;
  line-height:1.6;
  color:#ffffff;
}

/* mobile */

@media (max-width:768px){

  .footer-map-block{
    margin:0px auto 28px;
  }

  .footer-map-frame{
    border-radius:14px 14px 0 0;
  }

  .footer-map-frame iframe{
    height:260px;
  }

  .footer-map-card{
    border-radius:0 0 14px 14px;
    padding:16px 16px;
    font-size:14px;
  }

}


/* ===== Intro as normal scroll section ===== */
#introLayer{
  position: relative;
  inset: auto;
  min-height: var(--vh);
  height: auto;
  z-index: 1;
  opacity: 1 !important;
  pointer-events: auto;
}

#introOverlay{
  background: transparent;
}

/* ===== Unified scene stage ===== */
.scene-stage{
  position: relative;
  min-height: var(--vh);
  height: auto;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.scene-stage__bg{
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1);
  transition: opacity 1.2s ease;
  will-change: transform, opacity;
}

.scene-stage__bg.is-active{
  opacity: 1;
}

.scene-stage__scrim{
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.18), rgba(0,0,0,0.32));
  z-index: 1;
}

.scene-stage__content{
  position: relative;
  z-index: 2;
  width: min(980px, 88vw);
  padding: 40px 24px 120px;
  text-align: center;
}

.scene-stage__text{
  margin: 0;
  color: #fff;
  font-family: "Noto Serif", Georgia, serif;
  font-size: clamp(24px, 1.6vw, 32px);
  line-height: 1.35;
  text-shadow: 0 2px 10px rgba(0,0,0,0.55), 0 0 26px rgba(0,0,0,0.35);
  transition: opacity 0.35s ease;
}

.scene-stage__text.is-changing{
  opacity: 0;
}

.scene-stage__nav{
  position: absolute;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  width: min(92vw, 720px);
}

.scene-stage__dot{
  width: 56px;
  height: 56px;
  border-radius: 999px;
  padding: 0;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,0.88);
  background: rgba(255,255,255,0.08);
  cursor: pointer;
  opacity: 0.85;
  transform: scale(1);
  transition: transform 0.28s ease, opacity 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
  box-shadow: 0 4px 14px rgba(0,0,0,0.22);
}

.scene-stage__dot img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.scene-stage__dot:hover,
.scene-stage__dot:focus-visible{
  opacity: 1;
  transform: scale(1.05);
}

.scene-stage__dot.is-active{
  opacity: 1;
  transform: scale(1.14);
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.35), 0 8px 24px rgba(0,0,0,0.28);
}

@media (max-width: 767px){
  .scene-stage__content{
    padding: 32px 20px 112px;
  }

  .scene-stage__text{
    font-size: clamp(20px, 5.8vw, 30px);
  }

  .scene-stage__dot{
    width: 48px;
    height: 48px;
  }
}
