:root {
    --bg: #EDF0EA;
    --surface: #FFFFFF;
    --ink: #18221C;
    --muted: #56655B;
    --line: #D3DACF;
    --pine: #22382B;
    --on-pine: #E9EFE7;
    --ember: #C9531F;
    --ember-soft: #F7E3D8;
    --ice: #2E7493;
    --ice-soft: #DDECF2;
    --display: "Yeseva One", Georgia, "Times New Roman", serif;
    --body: "Commissioner", "Segoe UI", system-ui, sans-serif;
    --mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      color-scheme: dark;
      --bg: #0F1612; --surface: #17211B; --ink: #E3EAE2; --muted: #98A89C; --line: #28362D;
      --pine: #1B2C22; --on-pine: #E3EAE2;
      --ember: #F07A43; --ember-soft: #3A2218; --ice: #7EC0DC; --ice-soft: #16303B;
    }
  }
  :root[data-theme="dark"] {
    color-scheme: dark;
    --bg: #0F1612; --surface: #17211B; --ink: #E3EAE2; --muted: #98A89C; --line: #28362D;
    --pine: #1B2C22; --on-pine: #E3EAE2;
    --ember: #F07A43; --ember-soft: #3A2218; --ice: #7EC0DC; --ice-soft: #16303B;
  }

  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { background: var(--bg); color: var(--ink); font: 400 16px/1.6 var(--body); padding-inline: 20px; }
  .wrap { max-width: 1100px; margin-inline: auto; }
  h1, h2, h3 { font-family: var(--display); font-weight: 400; margin: 0; line-height: 1.12; text-wrap: balance; }
  h2 { font-size: clamp(30px, 4.4vw, 44px); }
  p { margin: 0; }
  a { color: inherit; }
  .eyebrow { font: 600 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ember); }
  .num { font-family: var(--mono); font-variant-numeric: tabular-nums; }
  :focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; border-radius: 4px; }

  /* nav */
  .nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 18px; flex-wrap: wrap; }
  .logo { display: flex; align-items: center; gap: 10px; text-decoration: none; font: 400 22px/1 var(--display); }
  .logo svg { width: 30px; height: 30px; }
  .nav ul { list-style: none; display: flex; gap: 22px; margin: 0; padding: 0; }
  .nav ul a { text-decoration: none; color: var(--muted); font-weight: 500; }
  .nav ul a:hover { color: var(--ink); }
  .nav .phone { font: 600 15px/1 var(--mono); text-decoration: none; white-space: nowrap; }

  .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 600 15px/1 var(--body); padding: 15px 22px; border-radius: 12px; border: 1.5px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; text-decoration: none; transition: transform .15s; }
  .btn:hover { transform: translateY(-2px); }
  .btn.ember { background: var(--ember); border-color: var(--ember); color: #fff; }
  .btn.tg { background: #2AABEE; border-color: #2AABEE; color: #fff; }
  .btn.vb { background: #7360F2; border-color: #7360F2; color: #fff; }

  /* hero */
  .hero { background: var(--pine); color: var(--on-pine); border-radius: 24px; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr); position: relative; margin-top: 6px; min-height: clamp(460px, 56vw, 620px); }
  .hero .txt { position: relative; z-index: 2; max-width: 560px; }
  .hero .txt { padding: clamp(28px, 5vw, 56px); display: grid; gap: 22px; align-content: center; }
  .hero .eyebrow { color: #F4A57C; }
  .hero h1 { font-size: clamp(44px, 7vw, 84px); }
  .hero .lead { font-size: 18px; opacity: .85; max-width: 36ch; }
  .hero .btn:not(.ember) { border-color: var(--on-pine); color: var(--on-pine); }
  .cta { display: flex; gap: 12px; flex-wrap: wrap; }
  .hero .art { position: absolute; inset: 0; z-index: 1; }
  .hero .art svg { position: absolute; inset: 0; width: 100%; height: 100%; }
  .hero .art .photo { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 62% 55%; }
  .hero .art::after { content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(90deg, color-mix(in srgb, #0E1A13 88%, transparent) 0%, color-mix(in srgb, #0E1A13 60%, transparent) 38%, transparent 70%); }
  .smoke { animation: rise 6s ease-in-out infinite; transform-origin: center; }
  .smoke:nth-of-type(2) { animation-delay: 2s; }
  @keyframes rise { 0%,100% { opacity: .55; transform: translateY(0); } 50% { opacity: .2; transform: translateY(-10px); } }

  /* fire & ice strip */
  .temps { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
  .temp { border-radius: 18px; padding: 22px 24px; display: flex; justify-content: space-between; align-items: end; gap: 16px; flex-wrap: wrap; }
  .temp.hot { background: var(--ember-soft); }
  .temp.cold { background: var(--ice-soft); }
  .temp .big { font: 600 clamp(34px, 5vw, 52px)/1 var(--mono); letter-spacing: -.02em; }
  .temp.hot .big { color: var(--ember); }
  .temp.cold .big { color: var(--ice); }
  .temp .lbl { font-weight: 600; }
  .temp .lbl small { display: block; font-weight: 400; color: var(--muted); font-size: 14px; }

  section { padding-block: 76px 0; }
  .head { display: flex; justify-content: space-between; align-items: end; gap: 20px; flex-wrap: wrap; margin-bottom: 30px; }
  .head > div { display: grid; gap: 12px; }
  .head p { color: var(--muted); max-width: 44ch; }

  /* halls */
  .halls { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .hall { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 24px; display: grid; gap: 16px; grid-template-rows: auto auto 1fr auto; }
  .hall.royal { border: 2px solid var(--ember); }
  .hall h3 { font-size: 26px; }
  .cap { font: 600 13px/1 var(--mono); color: var(--muted); display: flex; align-items: center; gap: 8px; }
  .hall ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; align-content: start; font-size: 15px; }
  .hall ul li { display: flex; gap: 10px; }
  .hall ul li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--ember); margin-top: 9px; flex: none; }
  .prices { display: grid; gap: 8px; padding-top: 16px; border-top: 1px dashed var(--line); }
  .prices .row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
  .prices .row span:first-child { color: var(--muted); font-size: 14px; }
  .prices .row b { font: 600 19px/1.2 var(--mono); white-space: nowrap; }
  .prices .row b small { font-size: 12px; font-weight: 400; color: var(--muted); }
  .note { font-size: 14px; color: var(--muted); margin-top: 16px; }

  /* features */
  .feats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--line); }
  .feat { padding: 22px 22px 22px 0; border-bottom: 1px solid var(--line); display: grid; gap: 6px; align-content: start; }
  .feat strong { font-size: 17px; }
  .feat span { color: var(--muted); font-size: 15px; }
  .gift { margin-top: 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; display: flex; gap: 14px; align-items: center; }
  .gift svg { width: 34px; height: 34px; flex: none; }

  /* services */
  .services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .svc { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 22px; display: grid; gap: 10px; align-content: start; }
  .svc h3 { font-size: 22px; }
  .svc .p { font: 600 18px/1 var(--mono); }
  .svc .p.ask { font-size: 14px; color: var(--muted); font-weight: 400; }
  .svc span { color: var(--muted); font-size: 15px; }

  /* booking */
  .booking { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; align-items: start; }
  form, .summary { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 26px; display: grid; gap: 18px; }
  .summary { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); }
  fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 10px; }
  legend, .lab { font-size: 13px; font-weight: 700; margin-bottom: 8px; padding: 0; }
  .zones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .zone { position: relative; }
  .zone input { position: absolute; opacity: 0; }
  .zone label { display: grid; gap: 2px; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 12px; cursor: pointer; height: 100%; }
  .zone label b { font-size: 15px; }
  .zone label small { font: 400 12px/1.3 var(--mono); color: var(--muted); }
  .zone input:checked + label { border-color: var(--ember); background: var(--ember-soft); }
  .zone input:focus-visible + label { outline: 2px solid var(--ember); outline-offset: 2px; }
  .grid3 { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 12px; }
  label.f { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }
  input[type=date], input[type=text], select { font: 400 16px/1.3 var(--body); padding: 12px; border-radius: 10px; border: 1px solid var(--line); background: var(--bg); color: var(--ink); width: 100%; }
  .stepper { display: flex; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); }
  .stepper button { width: 42px; height: 46px; border: 0; background: transparent; color: var(--ink); font: 600 20px/1 var(--mono); cursor: pointer; }
  .stepper output { flex: 1; text-align: center; font: 600 16px/1 var(--mono); }
  .checks { display: grid; gap: 8px; }
  .checks label { display: flex; gap: 10px; align-items: center; font-size: 15px; cursor: pointer; }
  .checks input { width: 18px; height: 18px; accent-color: var(--ember); }
  .checks small { color: var(--muted); font-family: var(--mono); margin-left: auto; }
  .warn { font-size: 13px; color: var(--ember); font-weight: 600; }

  .summary h3 { font-size: 24px; }
  .lines { display: grid; gap: 8px; font-size: 15px; }
  .lines div { display: flex; justify-content: space-between; gap: 12px; }
  .lines div span:last-child { font-family: var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 14px; border-top: 1.5px solid var(--ink); }
  .total b { font: 600 30px/1 var(--mono); }
  .prepay { background: var(--ember-soft); border-radius: 10px; padding: 12px 14px; font-size: 14px; display: flex; justify-content: space-between; gap: 10px; }
  .prepay b { font-family: var(--mono); }
  .send { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .hint { font-size: 13px; color: var(--muted); }
  .cx { background: var(--surface); border: 2px solid var(--ember); border-radius: 22px; padding: clamp(22px, 4vw, 40px); display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(22px, 4vw, 48px); align-items: start; }
  .cx-head { display: grid; gap: 16px; justify-items: start; }
  .cx-head h2 { font-size: clamp(34px, 5vw, 52px); }
  .cx-head p { color: var(--muted); max-width: 40ch; }
  .cx-total { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
  .cx-total s { color: var(--muted); font-size: 18px; }
  .cx-total b { font-size: clamp(34px, 5vw, 46px); color: var(--ember); }
  .badge { font: 600 14px/1 var(--mono); background: var(--ember); color: #fff; padding: 6px 10px; border-radius: 99px; }
  .cx-list { list-style: none; margin: 0; padding: 0; display: grid; }
  .cx-list li { display: grid; grid-template-columns: 1fr 60px 110px; gap: 12px; align-items: baseline; padding-block: 12px; border-bottom: 1px dashed var(--line); }
  .cx-list li span small { display: block; color: var(--muted); font-size: 13px; }
  .cx-list s { font: 400 14px/1 var(--mono); color: var(--muted); text-align: right; }
  .cx-list b { font: 600 16px/1 var(--mono); text-align: right; white-space: nowrap; }
  .cx-list b.gift-tag { color: var(--ice); font-family: var(--body); font-size: 14px; }
  .ptabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 22px; }
  .ptab { font: 600 14px/1 var(--body); padding: 11px 16px; border-radius: 99px; border: 1px solid var(--line); background: transparent; color: var(--muted); cursor: pointer; }
  .ptab[aria-selected="true"] { background: var(--pine); color: var(--on-pine); border-color: var(--pine); }
  .plist { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
  .pitem { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; padding-block: 14px; border-bottom: 1px dashed var(--line); align-content: start; }
  .pitem .n { font-weight: 600; }
  .pitem .v { font: 600 16px/1.5 var(--mono); white-space: nowrap; font-variant-numeric: tabular-nums; }
  .pitem .d { grid-column: 1 / -1; color: var(--muted); font-size: 14px; }
  .pitem .tag { font: 600 11px/1 var(--mono); color: var(--ember); letter-spacing: .06em; text-transform: uppercase; margin-left: 6px; }
  .pgroup { grid-column: 1 / -1; font: 600 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ember); padding-top: 22px; }
  .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .contact-box { background: var(--pine); color: var(--on-pine); border-radius: 20px; padding: clamp(22px, 4vw, 36px); display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; }
  .phone-big { display: grid; gap: 10px; justify-items: start; }
  .phone-big .lab { opacity: .75; margin: 0; }
  .phone-big a { font-size: clamp(28px, 4.5vw, 44px); font-weight: 600; text-decoration: none; letter-spacing: -.01em; }
  .copy { font: 600 13px/1 var(--mono); padding: 9px 12px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--on-pine) 40%, transparent); background: transparent; color: var(--on-pine); cursor: pointer; }
  .channels { display: grid; gap: 10px; }

  /* rules */
  .rules { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; list-style: none; margin: 0; padding: 0; counter-reset: r; }
  .rules li { padding-block: 18px; border-bottom: 1px solid var(--line); display: grid; gap: 4px; }
  .rules strong { font-size: 17px; }
  .rules span { color: var(--muted); }

  /* map */
  .map { display: grid; grid-template-columns: 1fr 1.5fr; gap: 24px; align-items: stretch; }
  .addr { background: var(--pine); color: var(--on-pine); border-radius: 20px; padding: 28px; display: grid; gap: 18px; align-content: start; }
  .addr .big { font: 400 26px/1.25 var(--display); }
  .addr .btn { border-color: var(--on-pine); color: var(--on-pine); }
  .addr .btn.ember { border-color: var(--ember); color: #fff; }
  .mapbox { position: relative; border-radius: 20px; overflow: hidden; border: 1px solid var(--line); min-height: 340px; background: var(--surface); }
  .mapbox .fallback { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; gap: 8px; padding: 20px; color: var(--muted); }
  .mapbox iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

  footer { margin-top: 80px; padding-block: 28px 44px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; color: var(--muted); font-size: 14px; }
  footer a { text-decoration: none; }

  @media (max-width: 900px) {
    .hero, .booking, .map { grid-template-columns: 1fr; }
    .hero { min-height: 0; }
    .hero .txt { padding-top: 260px; }
    .hero .art .photo { object-position: 64% 20%; }
    .hero .art::after { background: linear-gradient(0deg, color-mix(in srgb, #0E1A13 92%, transparent) 0%, color-mix(in srgb, #0E1A13 75%, transparent) 50%, transparent 75%); }
    .halls, .services { grid-template-columns: 1fr; }
    .feats { grid-template-columns: 1fr 1fr; }
    .rules { grid-template-columns: 1fr; }
    .nav ul { display: none; }
    .summary { position: static; }
  }
  @media (max-width: 520px) {
    .temps, .feats, .zones, .send { grid-template-columns: 1fr; }
    .cx-list li { grid-template-columns: 1fr auto; }
    .cx-list s { display: none; }
    .contact-box { grid-template-columns: 1fr; }
    .cx { grid-template-columns: 1fr; }
    .plist { grid-template-columns: 1fr; }
    form, .summary { padding: 20px; }
  }
  @media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

  /* ---------- multipage additions ---------- */
  .topbar { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); margin-inline: -20px; padding-inline: 20px; border-bottom: 1px solid transparent; transition: border-color .2s; }
  .topbar.scrolled { border-bottom-color: var(--line); }
  .topbar .nav { max-width: 1100px; margin-inline: auto; padding-block: 14px; }
  .nav ul a { padding: 8px 2px; position: relative; }
  .nav ul a[aria-current="page"] { color: var(--ink); }
  .nav ul a[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--ember); border-radius: 2px; }
  .mnav { display: none; }

  .page { display: none; }
  .page.on { display: block; animation: pageIn .5s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes pageIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  .page > section:first-child, .page > .crumbs:first-child { padding-top: 28px; }

  .crumbs { display: flex; gap: 8px; align-items: center; font: 500 14px/1 var(--body); color: var(--muted); flex-wrap: wrap; }
  .crumbs a { text-decoration: none; color: var(--muted); }
  .crumbs a:hover { color: var(--ink); }

  /* hall catalog cards */
  .catalog { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .hcard { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; display: grid; grid-template-rows: auto 1fr; text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s; }
  .hcard:hover { transform: translateY(-3px); box-shadow: 0 14px 30px -18px color-mix(in srgb, var(--pine) 60%, transparent); }
  .hcard.royal { border: 2px solid var(--ember); }
  .hcard .ph { aspect-ratio: 4 / 3; overflow: hidden; background: var(--line); position: relative; }
  .hcard .ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
  .hcard:hover .ph img { transform: scale(1.04); }
  .hcard .ph .cnt { position: absolute; right: 10px; bottom: 10px; font: 600 12px/1 var(--mono); background: color-mix(in srgb, #0E1A13 72%, transparent); color: #fff; padding: 6px 9px; border-radius: 99px; }
  .hcard .bd { padding: 20px 22px 22px; display: grid; gap: 12px; align-content: start; }
  .hcard h3 { font-size: 26px; }
  .hcard .from { font: 600 18px/1 var(--mono); }
  .hcard .from small { font: 400 13px/1 var(--body); color: var(--muted); }
  .hcard .more { font-weight: 600; color: var(--ember); }

  /* hall page */
  .hall-top { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; align-items: start; margin-top: 18px; }
  .hall-top .cover { border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--line); cursor: zoom-in; border: 0; padding: 0; display: block; width: 100%; }
  .hall-top .cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .hall-info { display: grid; gap: 18px; }
  .hall-info h1 { font-size: clamp(38px, 5.5vw, 60px); }
  .hall-info .lead { color: var(--muted); font-size: 17px; }
  .hall-info .card { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 22px; display: grid; gap: 16px; }
  .hall-info .card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 15px; }
  .hall-info .card ul li { display: flex; gap: 10px; }
  .hall-info .card ul li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--ember); margin-top: 9px; flex: none; }

  .gallery { columns: 3 260px; column-gap: 12px; }
  .gallery button { all: unset; display: block; width: 100%; margin-bottom: 12px; break-inside: avoid; border-radius: 12px; overflow: hidden; cursor: zoom-in; position: relative; background: var(--line); }
  .gallery button:focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; }
  .gallery img { width: 100%; display: block; transition: transform .4s; }
  .gallery button:hover img { transform: scale(1.03); }
  .gallery .cap-t { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 12px 10px; font-size: 13px; color: #fff; background: linear-gradient(0deg, rgba(10,18,13,.78), transparent); opacity: 0; transition: opacity .25s; }
  .gallery button:hover .cap-t, .gallery button:focus-visible .cap-t { opacity: 1; }

  .videos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .vid { background: var(--pine); border-radius: 16px; overflow: hidden; display: grid; }
  .vid video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; display: block; background: #0E1A13; }
  .vid span { color: var(--on-pine); font-size: 14px; padding: 12px 14px; }

  .other { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .other a { display: flex; gap: 14px; align-items: center; text-decoration: none; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 10px; }
  .other img { width: 96px; height: 72px; object-fit: cover; border-radius: 10px; flex: none; }
  .other b { font: 400 20px/1.2 var(--display); display: block; }
  .other small { color: var(--muted); }

  .teaser { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }

  /* lightbox */
  .lb { position: fixed; inset: 0; z-index: 100; background: rgba(8,13,10,.94); display: grid; grid-template-rows: auto 1fr auto; padding: calc(env(safe-area-inset-top, 0px) + 12px) 12px calc(env(safe-area-inset-bottom, 0px) + 14px); color: #E9EFE7; }
  .lb[hidden] { display: none; }
  .lb .bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; font: 600 13px/1 var(--mono); }
  .lb .stage { display: grid; place-items: center; min-height: 0; position: relative; }
  .lb .stage img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; animation: lbIn .3s ease both; }
  @keyframes lbIn { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: none; } }
  .lb .cap { text-align: center; font-size: 15px; padding-top: 12px; }
  .lb button { font: 600 22px/1 var(--mono); width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(233,239,231,.35); background: rgba(10,18,13,.55); color: #E9EFE7; cursor: pointer; }
  .lb .prev, .lb .next { position: absolute; top: 50%; transform: translateY(-50%); }
  .lb .prev { left: 4px; } .lb .next { right: 4px; }

  .home-cta { background: var(--pine); color: var(--on-pine); border-radius: 22px; padding: clamp(24px, 4vw, 40px); display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
  .home-cta h2 { font-size: clamp(28px, 4vw, 40px); }
  .home-cta .btn:not(.ember) { border-color: var(--on-pine); color: var(--on-pine); }

  @media (max-width: 900px) {
    .catalog, .teaser { grid-template-columns: 1fr; }
    .hall-top { grid-template-columns: 1fr; }
    .videos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .mnav { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 12px; scrollbar-width: none; max-width: 1100px; margin-inline: auto; }
    .mnav::-webkit-scrollbar { display: none; }
    .mnav a { flex: none; text-decoration: none; font: 600 14px/1 var(--body); padding: 10px 14px; border-radius: 99px; border: 1px solid var(--line); color: var(--muted); background: var(--surface); }
    .mnav a[aria-current="page"] { background: var(--pine); color: var(--on-pine); border-color: var(--pine); }
    .topbar .nav { padding-block: 12px 10px; }
  }
  @media (max-width: 520px) {
    .other { grid-template-columns: 1fr; }
    .videos { grid-template-columns: 1fr 1fr; }
    .gallery { columns: 2 140px; column-gap: 8px; }
    .gallery button { margin-bottom: 8px; }
  }
  /* ================= ЛІСОВЕ ОФОРМЛЕННЯ ================= */
  :root {
    --divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 18'%3E%3Cpath d='M2,8 Q40,4 88,9' stroke='%236B4A2B' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cline x1='7.5' y1='7.5' x2='12.2' y2='12.5' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='7.5' y1='7.5' x2='11.3' y2='1.8' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='13.1' y1='7.0' x2='17.6' y2='12.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='13.1' y1='7.0' x2='16.9' y2='1.5' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='18.7' y1='6.7' x2='23.1' y2='11.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='18.7' y1='6.7' x2='22.6' y2='1.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='24.5' y1='6.4' x2='28.7' y2='11.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='24.5' y1='6.4' x2='28.4' y2='1.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='30.4' y1='6.3' x2='34.4' y2='11.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='30.4' y1='6.3' x2='34.2' y2='1.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='36.4' y1='6.2' x2='40.2' y2='11.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='36.4' y1='6.2' x2='40.2' y2='1.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='42.5' y1='6.2' x2='46.2' y2='11.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='42.5' y1='6.2' x2='46.3' y2='1.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='48.7' y1='6.4' x2='52.2' y2='11.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='48.7' y1='6.4' x2='52.5' y2='1.9' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='55.0' y1='6.6' x2='58.4' y2='11.2' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='55.0' y1='6.6' x2='58.7' y2='2.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='61.4' y1='6.9' x2='64.6' y2='11.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='61.4' y1='6.9' x2='65.1' y2='2.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='67.9' y1='7.3' x2='71.0' y2='11.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='67.9' y1='7.3' x2='71.5' y2='3.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='74.5' y1='7.8' x2='77.4' y2='12.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='74.5' y1='7.8' x2='78.1' y2='3.9' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='81.2' y1='8.3' x2='84.0' y2='12.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='81.2' y1='8.3' x2='84.8' y2='4.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Ccircle cx='88' cy='9' r='3' fill='%23C9531F'/%3E%3C/svg%3E");
    --display: "Lobster", Georgia, serif;
    --body: "Kurale", Georgia, "Times New Roman", serif;
    --mono: "Philosopher", "Segoe UI", sans-serif;
    --script: "Marck Script", "Segoe Script", cursive;
    --bg: #E6EBDD;
    --wood: #E9D4AC;
    --wood-ink: #2B1C10;
    --wood-muted: #5C4229;
    --wood-line: rgba(92, 60, 30, .32);
    --wood-field: #FBF4E6;
    --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='280'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.003 0.11' numOctaves='3' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.42 0 0 0 0 0.25 0 0 0 0 0.1 0.75 0 0 0 -0.32'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --bg: #0F1612; --wood: #3A2819; --wood-ink: #F3E7D3; --wood-muted: #D2BC9A;
      --wood-line: rgba(243, 231, 211, .22); --wood-field: #2A1D12; --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='280'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.003 0.11' numOctaves='3' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.95 0 0 0 0 0.82 0 0 0 0 0.62 0.45 0 0 0 -0.19'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    }
  }
  :root[data-theme="dark"] {
    --bg: #0F1612; --wood: #3A2819; --wood-ink: #F3E7D3; --wood-muted: #D2BC9A;
    --wood-line: rgba(243, 231, 211, .22); --wood-field: #2A1D12; --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='280'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.003 0.11' numOctaves='3' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.95 0 0 0 0 0.82 0 0 0 0 0.62 0.45 0 0 0 -0.19'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  }

  body { font-size: 17px; background: var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cg fill='%232F5E3B' fill-opacity='.045'%3E%3Cpath d='M40 20 L58 48 H50 L64 72 H16 L30 48 H22 Z'/%3E%3Cpath d='M130 100 L146 126 H139 L152 148 H108 L121 126 H114 Z'/%3E%3C/g%3E%3Cg fill='%238A5A2E' fill-opacity='.05'%3E%3Crect x='38' y='72' width='4' height='7'/%3E%3Crect x='128' y='148' width='4' height='6'/%3E%3C/g%3E%3C/svg%3E") repeat; }

  /* шрифти */
  h1, h2, h3, .logo { font-family: var(--display); font-weight: 400; letter-spacing: .01em; }
  .hero h1 { font-size: clamp(50px, 8vw, 96px); text-shadow: 0 3px 18px rgba(0,0,0,.35); }
  .eyebrow { font: 400 24px/1.1 var(--script); letter-spacing: 0; text-transform: none; }
  .nav ul a, .btn, .ptab, .mnav a, legend, .lab, label.f, .cap, .zone label b, .feat strong, .rules strong, .pitem .n, .hcard .more, .copy { font-family: var(--mono); }
  .btn { font-weight: 700; font-size: 16px; }
  .num, .temp .big, .prices .row b, .cx-list b, .cx-list s, .pitem .v, .total b, .prepay b, .hcard .from, .svc .p, .stepper output, .stepper button, .zone label small, .checks small, .lines div span:last-child, .nav .phone, .cap, .hcard .ph .cnt, .lb .bar { font-family: var(--mono); font-variant-numeric: normal; }
  .pgroup { font: 400 26px/1.1 var(--script); letter-spacing: 0; text-transform: none; }
  .pitem .tag { font: 400 17px/1 var(--script); letter-spacing: 0; text-transform: none; }
  .feat strong, .rules strong { font-size: 18px; }

  /* гілочка під заголовками */
  .head h2::after, .cx-head h2::after, .hall-info h1::after {
    content: ""; display: block; width: 92px; height: 18px; margin-top: 12px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 18'%3E%3Cpath d='M2,8 Q40,4 88,9' stroke='%236B4A2B' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cline x1='7.5' y1='7.5' x2='12.2' y2='12.5' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='7.5' y1='7.5' x2='11.3' y2='1.8' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='13.1' y1='7.0' x2='17.6' y2='12.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='13.1' y1='7.0' x2='16.9' y2='1.5' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='18.7' y1='6.7' x2='23.1' y2='11.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='18.7' y1='6.7' x2='22.6' y2='1.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='24.5' y1='6.4' x2='28.7' y2='11.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='24.5' y1='6.4' x2='28.4' y2='1.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='30.4' y1='6.3' x2='34.4' y2='11.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='30.4' y1='6.3' x2='34.2' y2='1.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='36.4' y1='6.2' x2='40.2' y2='11.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='36.4' y1='6.2' x2='40.2' y2='1.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='42.5' y1='6.2' x2='46.2' y2='11.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='42.5' y1='6.2' x2='46.3' y2='1.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='48.7' y1='6.4' x2='52.2' y2='11.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='48.7' y1='6.4' x2='52.5' y2='1.9' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='55.0' y1='6.6' x2='58.4' y2='11.2' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='55.0' y1='6.6' x2='58.7' y2='2.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='61.4' y1='6.9' x2='64.6' y2='11.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='61.4' y1='6.9' x2='65.1' y2='2.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='67.9' y1='7.3' x2='71.0' y2='11.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='67.9' y1='7.3' x2='71.5' y2='3.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='74.5' y1='7.8' x2='77.4' y2='12.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='74.5' y1='7.8' x2='78.1' y2='3.9' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='81.2' y1='8.3' x2='84.0' y2='12.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='81.2' y1='8.3' x2='84.8' y2='4.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Ccircle cx='88' cy='9' r='3' fill='%23C9531F'/%3E%3C/svg%3E") no-repeat left center / contain;
  }

  /* дерев'яні дошки замість білих карток */
  .hall, .hcard, .svc, form, .summary, .gift, .cx, .other a, .hall-info .card, .plist, .mapbox {
    --ink: var(--wood-ink); --muted: var(--wood-muted); --line: var(--wood-line);
    color: var(--ink);
    background-color: var(--wood);
    background-image:
      repeating-linear-gradient(180deg, transparent 0 70px, color-mix(in srgb, var(--wood-ink) 9%, transparent) 70px 71px, transparent 71px 72px),
      var(--grain);
    background-size: auto, 700px 280px;
    border: 1px solid color-mix(in srgb, var(--wood-ink) 22%, transparent);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 10px 26px -18px rgba(40, 24, 10, .55);
    position: relative;
  }
  .hcard.royal, .cx { border: 2px solid var(--ember); }
  .hcard .ph { border-bottom: 3px solid color-mix(in srgb, var(--wood-ink) 30%, transparent); }

  /* ялинкова гілочка з шишкою в кутку */
  .hall-info .card::before, .summary::before, .cx::before, .plist::before, form::before, .hcard .bd::before {
    content: ""; position: absolute; pointer-events: none;
    width: 150px; height: 72px; top: -18px; right: -14px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 170 80'%3E%3Cpath d='M158,8 Q100,20 18,62' stroke='%236B4A2B' stroke-width='2.6' fill='none' stroke-linecap='round'/%3E%3Cline x1='153.5' y1='9.0' x2='142.0' y2='-0.3' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='153.5' y1='9.0' x2='147.1' y2='22.3' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='148.9' y1='10.0' x2='137.5' y2='1.1' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='148.9' y1='10.0' x2='142.8' y2='23.2' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='144.3' y1='11.2' x2='132.9' y2='2.5' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='144.3' y1='11.2' x2='138.5' y2='24.2' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='139.6' y1='12.4' x2='128.3' y2='4.1' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='139.6' y1='12.4' x2='134.0' y2='25.3' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='134.8' y1='13.7' x2='123.5' y2='5.7' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='134.8' y1='13.7' x2='129.5' y2='26.5' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='130.0' y1='15.1' x2='118.8' y2='7.3' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='130.0' y1='15.1' x2='124.9' y2='27.8' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='125.0' y1='16.6' x2='114.0' y2='9.1' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='125.0' y1='16.6' x2='120.2' y2='29.1' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='120.0' y1='18.2' x2='109.1' y2='11.0' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='120.0' y1='18.2' x2='115.5' y2='30.6' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='115.0' y1='19.9' x2='104.1' y2='12.9' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='115.0' y1='19.9' x2='110.6' y2='32.1' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='109.8' y1='21.7' x2='99.1' y2='14.9' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='109.8' y1='21.7' x2='105.7' y2='33.7' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='104.6' y1='23.5' x2='94.0' y2='17.0' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='104.6' y1='23.5' x2='100.7' y2='35.3' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='99.3' y1='25.5' x2='88.9' y2='19.2' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='99.3' y1='25.5' x2='95.6' y2='37.1' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='94.0' y1='27.5' x2='83.6' y2='21.4' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='94.0' y1='27.5' x2='90.4' y2='39.0' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='88.6' y1='29.6' x2='78.4' y2='23.8' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='88.6' y1='29.6' x2='85.2' y2='40.9' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='83.1' y1='31.8' x2='73.0' y2='26.2' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='83.1' y1='31.8' x2='79.9' y2='42.9' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='77.5' y1='34.1' x2='67.6' y2='28.7' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='77.5' y1='34.1' x2='74.5' y2='45.0' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='71.9' y1='36.5' x2='62.1' y2='31.3' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='71.9' y1='36.5' x2='69.0' y2='47.2' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='66.2' y1='39.0' x2='56.6' y2='33.9' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='66.2' y1='39.0' x2='63.4' y2='49.5' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='60.4' y1='41.6' x2='51.0' y2='36.7' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='60.4' y1='41.6' x2='57.8' y2='51.9' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='54.6' y1='44.2' x2='45.3' y2='39.5' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='54.6' y1='44.2' x2='52.1' y2='54.3' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='48.7' y1='47.0' x2='39.6' y2='42.4' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='48.7' y1='47.0' x2='46.3' y2='56.8' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='42.7' y1='49.8' x2='33.7' y2='45.4' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='42.7' y1='49.8' x2='40.5' y2='59.5' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='36.6' y1='52.7' x2='27.9' y2='48.5' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='36.6' y1='52.7' x2='34.5' y2='62.2' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='30.5' y1='55.7' x2='21.9' y2='51.7' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='30.5' y1='55.7' x2='28.5' y2='65.0' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='24.3' y1='58.8' x2='15.9' y2='54.9' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='24.3' y1='58.8' x2='22.4' y2='67.9' stroke='%232F5E3B' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='M104,20 Q92,40 70,62' stroke='%236B4A2B' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3Cline x1='101.5' y1='24.0' x2='91.0' y2='25.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='101.5' y1='24.0' x2='104.9' y2='34.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='98.8' y1='28.1' x2='88.6' y2='28.8' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='98.8' y1='28.1' x2='101.8' y2='37.8' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='95.9' y1='32.2' x2='86.1' y2='32.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='95.9' y1='32.2' x2='98.5' y2='41.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='92.8' y1='36.3' x2='83.4' y2='36.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='92.8' y1='36.3' x2='95.1' y2='45.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='89.5' y1='40.5' x2='80.5' y2='40.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='89.5' y1='40.5' x2='91.4' y2='49.3' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='86.0' y1='44.7' x2='77.4' y2='44.4' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='86.0' y1='44.7' x2='87.7' y2='53.2' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='82.3' y1='49.0' x2='74.1' y2='48.5' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='82.3' y1='49.0' x2='83.7' y2='57.1' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='78.4' y1='53.3' x2='70.6' y2='52.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='78.4' y1='53.3' x2='79.6' y2='61.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='74.3' y1='57.6' x2='66.9' y2='56.9' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='74.3' y1='57.6' x2='75.3' y2='65.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='M60,40 Q50,30 34,24' stroke='%236B4A2B' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3Cline x1='57.0' y1='37.2' x2='57.4' y2='28.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='57.0' y1='37.2' x2='48.6' y2='38.8' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='53.8' y1='34.6' x2='53.6' y2='26.5' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='53.8' y1='34.6' x2='45.9' y2='36.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='50.3' y1='32.2' x2='49.6' y2='24.5' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='50.3' y1='32.2' x2='43.0' y2='34.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='46.6' y1='29.9' x2='45.5' y2='22.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='46.6' y1='29.9' x2='39.8' y2='32.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='42.7' y1='27.8' x2='41.2' y2='21.0' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='42.7' y1='27.8' x2='36.4' y2='30.7' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='38.4' y1='25.8' x2='36.8' y2='19.6' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cline x1='38.4' y1='25.8' x2='32.8' y2='28.8' stroke='%233C7148' stroke-width='2.1' stroke-linecap='round'/%3E%3Cg transform='translate(112,40) rotate(20)'%3E%3Cellipse rx='7' ry='13' fill='%238A5A2E'/%3E%3Cpath d='M-6,-8 Q0,-4 6,-8' stroke='%235A3A1C' stroke-width='1.2' fill='none'/%3E%3Cpath d='M-6,-4 Q0,0 6,-4' stroke='%235A3A1C' stroke-width='1.2' fill='none'/%3E%3Cpath d='M-6,0 Q0,4 6,0' stroke='%235A3A1C' stroke-width='1.2' fill='none'/%3E%3Cpath d='M-6,4 Q0,8 6,4' stroke='%235A3A1C' stroke-width='1.2' fill='none'/%3E%3Cpath d='M-6,8 Q0,12 6,8' stroke='%235A3A1C' stroke-width='1.2' fill='none'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
    filter: drop-shadow(0 3px 3px rgba(0,0,0,.18));
    z-index: 2;
  }
  .hcard { overflow: hidden; }
  .hcard .bd { position: relative; }
  .hcard .bd::before { top: auto; bottom: 6px; right: -8px; width: 120px; height: 58px; opacity: .9; transform: scaleY(-1); }
  .summary h3, .hall-info .card > :first-child { padding-right: 90px; }

  /* листочки */
  .plist::after, .gift::after {
    content: ""; position: absolute; pointer-events: none; width: 64px; height: 42px;
    left: -10px; bottom: -14px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 40'%3E%3Cg transform='translate(18,22) rotate(-30)'%3E%3Cpath d='M0,-16 C10,-9 11,5 0,16 C-11,5 -10,-9 0,-16Z' fill='%235E8C3A'/%3E%3Cpath d='M0,-14 V16' stroke='%233E6526' stroke-width='1.2'/%3E%3C/g%3E%3Cg transform='translate(42,18) rotate(25)'%3E%3Cpath d='M0,-13 C8,-7 9,4 0,13 C-9,4 -8,-7 0,-13Z' fill='%237FA548'/%3E%3Cpath d='M0,-11 V13' stroke='%234E7530' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
  }
  .gift { overflow: visible; }
  .gift::after { left: auto; right: 14px; bottom: -12px; }

  /* прайс: дерев'яна дошка */
  .plist { border-radius: 20px; padding: 44px clamp(18px, 3vw, 34px) 26px; }
  .pitem { border-bottom: 1.5px dotted var(--line); }
  .ptab { background: var(--wood-field); }

  /* поля форми на дереві */
  input[type=date], input[type=text], select, .stepper { background: var(--wood-field); border-color: var(--line); color: var(--ink); }
  .zone label { background: color-mix(in srgb, var(--wood-field) 70%, transparent); }
  .prepay { background: color-mix(in srgb, var(--ember) 16%, var(--wood-field)); }

  /* пункти списків ялинками */
  .hall ul li::before, .hall-info .card ul li::before {
    width: 12px; height: 14px; border-radius: 0; margin-top: 5px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 14'%3E%3Cpath d='M6 0 L11 6 H8.5 L12 11 H0 L3.5 6 H1 Z' fill='%232F6B40'/%3E%3Crect x='5' y='11' width='2' height='3' fill='%238A5A2E'/%3E%3C/svg%3E") no-repeat center / contain;
  }

  /* лісовий силует на темно-зелених блоках */
  .home-cta, .contact-box, .addr, .hero {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 100' preserveAspectRatio='none'%3E%3Cg fill='%23E9EFE7' fill-opacity='.07'%3E%3Cpath d='M14 45 L28 100 H0 Z'/%3E%3Cpath d='M38 37 L54 100 H22 Z'/%3E%3Cpath d='M75 20 L95 100 H55 Z'/%3E%3Cpath d='M94 22 L114 100 H75 Z'/%3E%3Cpath d='M110 30 L128 100 H93 Z'/%3E%3Cpath d='M138 25 L156 100 H119 Z'/%3E%3Cpath d='M157 48 L170 100 H144 Z'/%3E%3Cpath d='M196 26 L214 100 H177 Z'/%3E%3Cpath d='M226 35 L242 100 H210 Z'/%3E%3Cpath d='M246 46 L259 100 H232 Z'/%3E%3Cpath d='M272 27 L290 100 H254 Z'/%3E%3Cpath d='M306 13 L328 100 H284 Z'/%3E%3Cpath d='M322 18 L343 100 H302 Z'/%3E%3Cpath d='M334 50 L347 100 H322 Z'/%3E%3Cpath d='M356 41 L370 100 H341 Z'/%3E%3Cpath d='M373 43 L388 100 H359 Z'/%3E%3Cpath d='M412 22 L431 100 H392 Z'/%3E%3Cpath d='M443 15 L464 100 H422 Z'/%3E%3Cpath d='M469 35 L486 100 H453 Z'/%3E%3Cpath d='M497 52 L509 100 H485 Z'/%3E%3Cpath d='M526 54 L537 100 H514 Z'/%3E%3Cpath d='M545 52 L557 100 H533 Z'/%3E%3Cpath d='M579 47 L592 100 H566 Z'/%3E%3Cpath d='M613 17 L634 100 H592 Z'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: repeat-x; background-position: bottom; background-size: 600px 90px;
  }
  .home-cta, .contact-box, .addr { position: relative; }

  .temp.hot, .temp.cold { position: relative; overflow: hidden; }
  footer { font-family: var(--mono); }
  .par-note { font: 400 14px/1.45 var(--body); color: var(--ice); background: color-mix(in srgb, var(--ice) 10%, var(--wood-field)); border-radius: 10px; padding: 10px 12px; }
  .par-note[hidden] { display: none; }

  @media (max-width: 520px) {
    .hall-info .card::before, .summary::before, .cx::before, .plist::before, form::before { width: 110px; height: 54px; top: -14px; right: -6px; }
    .summary h3 { padding-right: 70px; }
  }


  /* ---------- багатосторінкова версія ---------- */
  .head h1 { font-size: clamp(30px, 4.4vw, 44px); }
  .head h1::after { content: ""; display: block; width: 92px; height: 18px; margin-top: 12px; background: var(--divider) no-repeat left center / contain; }
  .crumbs { padding-top: 28px; }
  .crumbs + section { padding-top: 24px; }
  .skip { position: absolute; left: -9999px; }
  .skip:focus { left: 16px; top: 12px; z-index: 50; background: var(--surface); padding: 8px 12px; border-radius: 8px; }
  .plist[hidden] { display: none; }
  .page.on { animation: none; }
  .nf { text-align: center; padding-block: 90px 40px; display: grid; gap: 18px; justify-items: center; }
  .nf h1 { font-size: clamp(40px, 7vw, 72px); }
