/* KOSHKOBROW V500 CLEAN COMPILED CSS
   Two layout modes: mobile <=760px / desktop >=761px.
   Source order preserved from the live V437 site. */

/* ===== SOURCE: assets/style-v241.css ===== */
:root {
  --bg: #eadfdd;
  --bg-soft: #f3ece9;
  --ink: #20191b;
  --muted: #766a6d;
  --line: rgba(63,44,50,.13);
  --line-light: rgba(255,255,255,.58);
  --brand: #a76579;
  --brand-2: #c595a4;
  --brand-dark: #4b343d;
  --cream: #f7f1ee;
  --glass: rgba(250,246,243,.64);
  --shadow: 0 30px 90px rgba(70,46,54,.14);
  --shadow-soft: 0 18px 50px rgba(70,46,54,.09);
  --ease: cubic-bezier(.2,.75,.2,1);
  --content: 1320px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  font-family: "Manrope", system-ui, sans-serif;
  background:
    linear-gradient(rgba(247,238,236,.40), rgba(247,238,236,.40)),
    url("/assets/topo-milk-pink-v39.webp"),
    linear-gradient(180deg, #f4ecea 0%, #f1e6e3 50%, #f6ece9 100%);
  background-size: auto, 640px 640px, auto;
  background-repeat: repeat, repeat, no-repeat;
  background-position: 0 0, center top, 0 0;
  overflow-x: hidden;
}

body::before {
  content: none;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  opacity: .55;
  background:
    repeating-linear-gradient(118deg, rgba(85,58,67,.012) 0 1px, transparent 1px 18px),
    repeating-linear-gradient(28deg, rgba(255,255,255,.02) 0 1px, transparent 1px 18px);
}

body.modal-lock { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
iframe { display: block; border: 0; }

.container {
  width: min(calc(100% - 42px), var(--content));
  margin: 0 auto;
}

.serif {
  font-family: "Prata", Georgia, serif;
  letter-spacing: -.045em;
}

.kicker {
  display: inline-flex;
  align-items: center;
  color: #75686c;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* navigation */
.topbar {
  position: fixed;
  inset: 18px 0 auto;
  z-index: 80;
  pointer-events: none;
}

.nav {
  width: min(calc(100% - 32px), 1360px);
  min-height: 72px;
  margin: 0 auto;
  padding: 0 13px 0 22px;
  border: 1px solid rgba(255,255,255,.74);
  border-radius: 999px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,0) 62%),
    rgba(242,233,230,.70);
  backdrop-filter: blur(28px) saturate(1.14);
  -webkit-backdrop-filter: blur(28px) saturate(1.14);
  box-shadow:
    0 3px 10px rgba(62,42,49,.045),
    0 14px 34px rgba(75,52,61,.075),
    0 26px 58px rgba(167,101,121,.055),
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 -1px 0 rgba(110,78,89,.035);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  pointer-events: auto;
}

.logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  line-height: 0;
}

.logo img {
  display: block;
  height: 60px;
  width: auto;
  max-width: min(38vw, 335px);
  object-fit: contain;
}

.navlinks {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 800;
  color: var(--text);
}

.navlinks a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  transition: transform .25s var(--ease), opacity .25s ease, background .25s ease, box-shadow .25s ease;
}

.navlinks a:hover {
  opacity: 1;
  background: rgba(255,255,255,.58);
  box-shadow:
    0 6px 16px rgba(55,35,41,.045),
    inset 0 1px 0 rgba(255,255,255,.62);
  transform: translateY(-1px);
}

.btn {
  min-height: 48px;
  padding: 0 21px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-weight: 800;
  font-size: 13px;
  transition: transform .3s var(--ease), box-shadow .3s ease, background .3s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-brand {
  color: white;
  background: var(--brand);
  box-shadow: 0 13px 34px rgba(167,101,121,.28);
}
.btn-dark {
  color: white;
  background: var(--brand-dark);
  box-shadow: 0 13px 34px rgba(75,52,61,.22);
}
.nav .btn-dark {
  min-height: 54px;
  padding: 0 28px;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 13px 34px rgba(75,52,61,.22);
}
.nav .btn-dark:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 36px rgba(75,52,61,.24);
}
.btn-light {
  background: rgba(255,255,255,.54);
  border: 1px solid var(--line);
}
.btn-xl { min-height: 58px; padding: 0 27px; }

/* hero */
.hero {
  min-height: 100svh;
  padding: 110px 0 54px;
  display: flex;
  align-items: stretch;
}
.hero-grid {
  display: grid;
  grid-template-columns: .93fr 1.07fr;
  gap: clamp(24px,4vw,58px);
  align-items: stretch;
}
.hero-copy {
  padding: 70px 0 34px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-overline {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--brand-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.hero-overline .dot {
  position: relative;
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow:
    0 0 0 7px rgba(167,101,121,.10),
    0 0 10px rgba(215,137,166,.30);
  animation: heroOverlineDotGlow 2.15s ease-in-out infinite;
}
.hero-overline .dot::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 999px;
  background: rgba(191,127,149,.20);
  animation: dotPulse 2.15s ease-in-out infinite;
}
.hero-brand-wrap {
  margin: 26px 0 28px !important;
  font-size: 0 !important;
  line-height: 0 !important;
  font-weight: 400 !important;
}
.hero-brand {
  display: block;
  width: min(108%, 700px);
  height: auto;
  object-fit: contain;
  object-position: left center;
}
.hero-copy > p {
  max-width: 590px;
  margin: 0;
  font-size: clamp(17px,1.45vw,21px);
  line-height: 1.65;
  color: #574a4e;
}
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 30px; }
.hero-facts {
  margin-top: auto;
  padding-top: 52px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
}
.hero-fact {
  border-top: 1px solid var(--line);
  padding-top: 14px;
}
.hero-fact b { display: block; font-size: 14px; }
.hero-fact span { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }

.hero-photo-wrap {
  position: relative;
  min-height: 750px;
  padding: 16px;
  border-radius: 52px 52px 180px 52px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.52), rgba(255,255,255,.14)),
    radial-gradient(70% 60% at 88% 10%, rgba(189,128,148,.35), transparent 70%);
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: var(--shadow);
}
.hero-photo {
  width: 100%;
  height: 100%;
  min-height: 718px;
  object-fit: cover;
  object-position: 50% center;
  border-radius: 40px 40px 166px 40px;
}

/* intro brand strip */
.brand-strip { padding: 18px 0 0; }
.brand-strip-inner {
  overflow: hidden;
  border-radius: 30px;
  background:
    linear-gradient(90deg, rgba(110,72,84,.96), rgba(145,100,117,.92), rgba(119,79,92,.96));
  color: #fbf3f2;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(255,255,255,.16);
}
.brand-track {
  width: max-content;
  display: flex;
  gap: 0;
  animation: brandRoll 30s linear infinite;
  will-change: transform;
}
.brand-set {
  display: flex;
  align-items: center;
  gap: 34px;
  padding: 17px 18px;
}
.brand-set span {
  position: relative;
  white-space: nowrap;
  font-family: "Prata", Georgia, serif;
  font-size: 19px;
  line-height: 1;
  opacity: .96;
}
.brand-set span::after {
  content: "✦";
  display: inline-block;
  margin-left: 34px;
  color: #e4bdca;
  opacity: .84;
  font-family: Georgia, serif;
  font-size: 13px;
  transform: translateY(-1px);
}
@keyframes brandRoll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* sections */
.section { padding: 104px 0; }
.section-title {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 430px);
  gap: 34px;
  align-items: end;
  margin-bottom: 40px;
}
.section-title h2 {
  margin: 8px 0 0;
  font-size: clamp(52px,6.5vw,94px);
  line-height: .94;
  font-weight: 400;
}
.section-title p {
  margin: 0;
  color: var(--muted);
  line-height: 1.68;
  font-size: 15px;
}

/* services */
.services-wrap {
  display: grid;
  grid-template-columns: .68fr 1.32fr;
  gap: 56px;
}
.services-intro {
  position: sticky;
  top: 116px;
  align-self: start;
}
.services-intro h2 {
  margin: 10px 0 20px;
  font-size: clamp(56px,6.3vw,92px);
  line-height: .94;
  font-weight: 400;
}
.services-intro p { margin: 0; color: var(--muted); line-height: 1.7; max-width: 390px; }
.service-stack { border-top: 1px solid var(--line); }
.service {
  position: relative;
  overflow: hidden;
  z-index: 1;
  display: grid;
  grid-template-columns: 46px 1fr auto auto;
  gap: 18px;
  align-items: center;
  min-height: 148px;
  padding: 24px 12px;
  border-bottom: 1px solid var(--line);
  transform: scale(1);
  transform-origin: center center;
  transition:
    transform 1.85s cubic-bezier(.16,1,.3,1),
    border-radius 1.85s cubic-bezier(.16,1,.3,1),
    box-shadow 1.85s cubic-bezier(.16,1,.3,1);
}
.service::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(110deg, rgba(255,255,255,.72), rgba(237,216,222,.50));
  opacity: 0;
  transition: opacity 1.65s cubic-bezier(.16,1,.3,1);
}
.service::after {
  content: "";
  position: absolute;
  top: -60%;
  bottom: -60%;
  width: 34%;
  left: -42%;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.54), transparent);
  opacity: 0;
}
.service:hover {
  z-index: 3;
  transform: scale(1.035);
  border-radius: 26px;
  box-shadow: 0 24px 56px rgba(80,52,61,.10);
}
.service:hover::before {
  opacity: 1;
}
.service:hover::after {
  opacity: 1;
  left: 118%;
  transition: left 1.75s var(--ease), opacity .70s ease;
}
.service-no {
  color: var(--brand);
  font-family: "Prata", Georgia, serif;
  font-size: 14px;
}
.service-main h3 { margin: 0 0 9px; font-size: clamp(21px,2vw,31px); letter-spacing: -.035em; }
.service-main p { margin: 0; max-width: 570px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.service-price { text-align: right; white-space: nowrap; }
.service-price b { display: block; font-size: 18px; }
.service-price span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.service-btn {
  min-width: 102px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.52);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 800;
  transition:
    transform 1.25s cubic-bezier(.16,1,.3,1),
    background 1.25s ease,
    border-color 1.25s ease;
}
.service-btn svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.service:hover .service-btn { transform: translateY(-1px); background: white; border-color: rgba(167,101,121,.28); }

/* works */
.works-grid {
  display: grid;
  grid-template-columns: 1.16fr .92fr .92fr;
  grid-template-rows: 268px 268px;
  gap: 6px;
  align-items: stretch;
}
.work-card {
  margin: 0;
  position: relative;
  overflow: hidden;
  min-height: 0;
  border-radius: 28px;
  background: #d2c4c2;
  box-shadow: var(--shadow-soft);
}
.work-card.big { grid-row: 1 / span 2; }
.work-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .8s var(--ease), filter .6s ease;
}
.work-card:hover img { transform: scale(1.045); filter: saturate(1.04) contrast(1.02); }
.work-tag {
  position: absolute;
  left: 14px;
  bottom: 14px;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(249,243,240,.84);
  border: 1px solid rgba(255,255,255,.72);
  backdrop-filter: blur(10px);
  font-size: 11px;
  font-weight: 800;
}

/* price */
.price-shell {
  overflow: hidden;
  border-radius: 42px;
  color: white;
  background:
    radial-gradient(700px 400px at 100% 0%, rgba(169,101,121,.28), transparent 62%),
    #382b30;
  box-shadow: var(--shadow);
}
.price-head {
  padding: 46px 48px 32px;
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 34px;
  align-items: end;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.price-head h2 { margin: 7px 0 0; font-size: clamp(52px,6.4vw,88px); font-weight: 400; }
.price-head p { margin: 0; color: rgba(255,255,255,.62); line-height: 1.65; }
.price-body { padding: 26px 48px 42px; }
.price-category { margin-top: 22px; }
.price-category:first-child { margin-top: 0; }
.price-category-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
  padding: 11px 14px;
  width: fit-content;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  color: #f1d6de;
  background: rgba(255,255,255,.06);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 800;
}
.price-category-title::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #d2a3b1;
  box-shadow: 0 0 0 5px rgba(210,163,177,.09);
}
.price-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto auto;
  gap: 26px;
  align-items: center;
  min-height: 78px;
  border-bottom: 1px solid rgba(255,255,255,.11);
}
.price-row strong { font-size: 17px; }
.price-row small { color: rgba(255,255,255,.52); white-space: nowrap; }
.price-row b { font-family: "Prata", Georgia, serif; font-size: 22px; font-weight: 400; white-space: nowrap; }
.price-actions { display: flex; justify-content: space-between; gap: 12px; padding-top: 32px; }
.price-shell .btn-light { color: white; border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.05); }

/* reviews */
.reviews-summary {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.review-stat {
  padding: 10px 13px;
  border: 1px solid rgba(255,255,255,.72);
  background: rgba(255,255,255,.45);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 10px 30px rgba(70,45,54,.05);
}
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 12px;
}
.review-card {
  min-height: 310px;
  padding: 25px;
  border: 1px solid rgba(127,91,103,.14);
  border-radius: 28px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.70), rgba(250,245,242,.46));
  box-shadow: 0 18px 42px rgba(70,45,54,.07);
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: transform .45s var(--ease), box-shadow .45s ease, border-color .45s ease, background .45s ease;
}
.review-card:hover {
  transform: translateY(-6px);
  border-color: rgba(167,101,121,.34);
  box-shadow: 0 28px 64px rgba(70,45,54,.12);
  background: rgba(255,255,255,.78);
}
.review-card-top { display: flex; justify-content: space-between; align-items: center; }
.stars { color: var(--brand); letter-spacing: .1em; font-size: 12px; }
.review-go {
  width: 35px; height: 35px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--line);
  transition: transform .4s var(--ease);
}
.review-card:hover .review-go { transform: rotate(-35deg); }
.review-card p {
  margin: 28px 0 28px;
  font-family: "Prata", Georgia, serif;
  font-size: 20px;
  line-height: 1.55;
}
.review-author { margin-top: auto; }
.review-author b { display: block; font-size: 13px; }
.review-author span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }

.reviews-footer {
  margin-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
}
.reviews-footer p { margin: 0; color: var(--muted); font-size: 13px; }

/* contacts */
.contact-shell {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 12px;
  padding: 12px;
  border-radius: 40px;
  background: rgba(249,244,241,.62);
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: var(--shadow);
}
.contact-copy {
  padding: 42px;
  display: flex;
  flex-direction: column;
}
.contact-copy h2 { margin: 9px 0 22px; font-size: clamp(50px,6vw,84px); line-height: .96; font-weight: 400; }
.contact-copy > p { margin: 0; color: var(--muted); line-height: 1.7; max-width: 530px; }
.contact-list { margin-top: 28px; }
.contact-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}
.contact-row span { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.contact-row b { font-size: 15px; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 26px; }
.map-wrap { min-height: 560px; border-radius: 31px; overflow: hidden; background: #d6cbc7; }
.map-wrap iframe { width: 100%; height: 100%; min-height: 560px; }

/* footer */
.footer { padding: 34px 0 110px; font-size: 11px; color: var(--muted); }
.footer-row { padding-top: 18px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 18px; }

/* booking modal */
.modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  padding: 18px;
  display: grid;
  place-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .28s ease, visibility .28s ease;
}
.modal.open { opacity: 1; visibility: visible; }
.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(38,28,32,.52);
  backdrop-filter: blur(18px);
}
.modal-panel {
  position: relative;
  z-index: 2;
  width: min(100%, 820px);
  max-height: min(92svh, 850px);
  overflow: auto;
  border-radius: 34px;
  background: #f6efec;
  box-shadow: 0 40px 130px rgba(30,18,23,.36);
  transform: translateY(24px) scale(.975);
  transition: transform .38s var(--ease);
}
.modal.open .modal-panel { transform: none; }
.modal-head {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 25px 28px 18px;
  display: flex;
  justify-content: space-between;
  align-items: start;
  background: rgba(246,239,236,.90);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(70,45,54,.08);
}
.modal-head h3 { margin: 7px 0 0; font-family: "Prata", Georgia, serif; font-size: 40px; font-weight: 400; }
.modal-close {
  width: 42px; height: 42px;
  border: 0; border-radius: 50%;
  background: #e8ddda; cursor: pointer; font-size: 22px;
}
.steps {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 6px;
  padding: 20px 28px 0;
}
.step-dot {
  height: 5px;
  border-radius: 999px;
  background: #e0d4d1;
  transition: background .35s ease;
}
.step-dot.active { background: var(--brand); }
.step-labels {
  padding: 9px 28px 0;
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}
.booking-form { padding: 8px 28px 28px; }
.booking-step { display: none; }
.booking-step.active { display: block; animation: stepIn .34s var(--ease); }
@keyframes stepIn { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
.step-title { margin: 18px 0 12px; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.service-options { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }
.service-choice { position: relative; }
.service-choice input { position: absolute; opacity: 0; pointer-events: none; }
.service-choice label {
  min-height: 104px;
  padding: 15px;
  display: block;
  border: 1px solid var(--line);
  border-radius: 19px;
  background: rgba(255,255,255,.58);
  cursor: pointer;
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.service-choice label:hover { background: white; }
.service-choice input:checked + label {
  border-color: var(--brand);
  background: white;
  box-shadow: 0 0 0 2px rgba(167,101,121,.12);
}
.service-choice b { display: block; font-size: 14px; line-height: 1.4; }
.service-choice span { display: flex; justify-content: space-between; margin-top: 15px; gap: 10px; color: var(--muted); font-size: 11px; }
.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.field {
  width: 100%;
  min-height: 56px;
  padding: 0 15px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: rgba(255,255,255,.68);
  outline: none;
  transition: border-color .25s ease, background .25s ease;
}
.field:focus { border-color: var(--brand); background: white; }
textarea.field { min-height: 100px; padding-top: 14px; resize: vertical; }
.booking-summary {
  padding: 20px;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.62);
}
.summary-row { display: flex; justify-content: space-between; gap: 18px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.summary-row:last-child { border-bottom: 0; }
.summary-row span { color: var(--muted); font-size: 12px; }
.summary-row b { text-align: right; font-size: 13px; }
.booking-nav {
  margin-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.booking-nav .right { margin-left: auto; display: flex; gap: 8px; }
.form-error { margin: 10px 0 0; color: #99485e; font-size: 12px; display: none; }

/* all reviews modal */
.all-reviews-panel { width: min(100%, 900px); }
.all-reviews-body { padding: 8px 24px 28px; }
.all-review-row {
  display: grid;
  grid-template-columns: 42px 1fr auto 36px;
  gap: 14px;
  align-items: center;
  min-height: 70px;
  border-bottom: 1px solid var(--line);
  transition: background .25s ease, padding .25s ease;
}
.all-review-row:hover { background: rgba(255,255,255,.55); padding-left: 10px; padding-right: 10px; }
.all-review-index { color: var(--brand); font-family: "Prata", Georgia, serif; font-size: 12px; }
.all-review-person b { display: block; font-size: 13px; }
.all-review-person small { display: block; margin-top: 4px; color: var(--muted); }
.all-review-stars { color: var(--brand); font-size: 10px; letter-spacing: .08em; }
.all-review-arrow { display: grid; place-items: center; }

/* reveal */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .75s var(--ease), transform .75s var(--ease);
}
.reveal.in { opacity: 1; transform: none; }

.mobile-book {
  display: none;
  position: fixed;
  left: 12px; right: 12px; bottom: 12px;
  z-index: 75;
}
.mobile-book .btn { width: 100%; min-height: 56px; }

/* responsive */
@media (max-width:1279px) {
  .navlinks { display: none; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-photo-wrap { min-height: 720px; }
  .hero-copy { order: 2; padding-top: 28px; }
  .hero-facts { margin-top: 42px; }
  .services-wrap { grid-template-columns: 1fr; gap: 30px; }
  .services-intro { position: static; }
  .reviews-grid { grid-template-columns: repeat(2,1fr); }
  .contact-shell { grid-template-columns: 1fr; }
  .price-head { grid-template-columns: 1fr; }
}
@media (max-width: 1279px) {
  .container { width: min(calc(100% - 24px), var(--content)); }
  .topbar { top: 10px; }
  .nav { width: calc(100% - 20px); min-height: 58px; }
  .logo img { height: 46px; max-width: 220px; }
  .nav .btn-dark {
    min-height: 48px;
    padding: 0 18px;
    font-size: 13px;
  }
  .hero { padding-top: 82px; }
  .hero-photo-wrap { min-height: 66svh; padding: 10px; border-radius: 30px 30px 96px 30px; }
  .hero-photo { min-height: calc(66svh - 20px); border-radius: 22px 22px 86px 22px; }
  .hero-brand-wrap { margin: 22px 0 24px !important; }
  .hero-brand { width: min(106%, 560px); }
  .hero-copy > p { font-size: 16px; }
  .hero-facts { grid-template-columns: 1fr; gap: 8px; }
  .hero-fact { display: flex; justify-content: space-between; gap: 12px; }
  .section { padding: 76px 0; }
  .section-title { grid-template-columns: 1fr; }
  .service { grid-template-columns: 30px 1fr auto; min-height: 0; padding: 21px 4px; }
  .service-price { grid-column: 2; text-align: left; display: flex; gap: 10px; align-items: baseline; }
  .service-btn { grid-column: 3; grid-row: 1 / span 2; }
  .works-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 250px 210px 210px; gap: 8px; }
  .work-card.big { grid-column: 1 / span 2; grid-row: auto; }
  .work-card { border-radius: 20px; }
  .price-shell { border-radius: 30px; }
  .price-head { padding: 32px 22px 22px; }
  .price-body { padding: 20px 22px 28px; }
  .price-row { grid-template-columns: 1fr auto; gap: 12px; padding: 13px 0; }
  .price-row small { grid-row: 2; }
  .price-row b { grid-column: 2; grid-row: 1 / span 2; }
  .price-actions { flex-direction: column; }
  .price-actions .btn { width: 100%; }
  .reviews-grid { grid-template-columns: 1fr; }
  .review-card { min-height: 250px; }
  .contact-copy { padding: 26px 18px; }
  .contact-row { grid-template-columns: 1fr; gap: 6px; }
  .map-wrap, .map-wrap iframe { min-height: 420px; }
  .footer-row { flex-direction: column; }
  .footer { padding-bottom: 100px; }
  .mobile-book { display: block; }
  .modal { padding: 7px; align-items: end; }
  .modal-panel { border-radius: 28px 28px 18px 18px; max-height: 94svh; }
  .modal-head { padding: 22px 18px 15px; }
  .modal-head h3 { font-size: 34px; }
  .steps, .step-labels, .booking-form { padding-left: 18px; padding-right: 18px; }
  .service-options, .fields { grid-template-columns: 1fr; }
  .service-choice label { min-height: 88px; }
  .all-reviews-body { padding-left: 14px; padding-right: 14px; }
  .all-review-row { grid-template-columns: 32px 1fr 30px; }
  .all-review-stars { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}


/* v3.1 reviews - endless left-to-right motion */
:root { --reviews-speed: 56s; }

.reviews-marquee-shell {
  overflow: hidden;
  width: 100%;
  padding: 10px 0 18px;
  position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}
.reviews-marquee-track {
  width: max-content;
  display: flex;
  gap: 14px;
  transform: translateX(-50%);
  animation: reviewsMoveRight var(--reviews-speed) linear infinite;
  will-change: transform;
}
.reviews-marquee-shell:hover .reviews-marquee-track {
  animation-play-state: paused;
}
.reviews-marquee-set {
  display: flex;
  gap: 14px;
  padding-right: 14px;
}
.review-marquee-card {
  flex: 0 0 365px;
  min-height: 300px;
  padding: 26px;
  border: 1px solid rgba(127,91,103,.18);
  border-radius: 30px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.82), rgba(248,240,238,.58));
  box-shadow: 0 18px 44px rgba(70,45,54,.08);
  display: flex;
  flex-direction: column;
  transition: transform .45s var(--ease), box-shadow .45s ease, border-color .45s ease;
}
.review-marquee-card:hover {
  transform: translateY(-5px);
  border-color: rgba(167,101,121,.38);
  box-shadow: 0 26px 62px rgba(70,45,54,.13);
}
.review-marquee-card p {
  margin: 28px 0 30px;
  font-family: "Prata", Georgia, serif;
  font-size: 20px;
  line-height: 1.55;
}
.review-marquee-card .review-author { margin-top: auto; }
.review-marquee-card .review-author b { display: block; font-size: 13px; }
.review-marquee-card .review-author span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }

@keyframes reviewsMoveRight {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}

@media (max-width: 1279px) {
  .review-marquee-card {
    flex-basis: 82vw;
    min-height: 260px;
  }
  :root { --reviews-speed: 42s; }
}


/* v3.2 tweaks */
.contact-actions .btn-light { background: rgba(255,255,255,.64); }

@media (max-width: 1279px) {
  .works-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 220px 220px 220px;
    gap: 5px;
  }
  .brand-set { gap: 24px; padding: 16px 14px; }
  .brand-set span { font-size: 16px; }
  .brand-set span::after { margin-left: 24px; font-size: 14px; }
}

.service > * { position: relative; z-index: 1; }

/* v3.4 date picker */
.steps { grid-template-columns: repeat(4, 1fr); }
.date-note { margin: 0 0 14px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.date-options { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
.date-chip {
  min-height: 90px;
  padding: 10px 7px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.58);
  cursor: pointer;
  text-align: center;
  transition: transform .35s var(--ease), background .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.date-chip:hover { transform: translateY(-2px); background: white; }
.date-chip.selected {
  color: white;
  background: var(--brand);
  border-color: var(--brand);
  box-shadow: 0 12px 28px rgba(167,101,121,.25);
}
.date-chip .dow { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.08em; opacity:.68; }
.date-chip .day { display:block; margin:7px 0 4px; font-family:"Prata", Georgia, serif; font-size:24px; line-height:1; }
.date-chip .month { display:block; font-size:10px; opacity:.68; }
@media (max-width:1279px) { .date-options { grid-template-columns:repeat(4,1fr); } .date-chip { min-height:82px; } }


.hero-mark,
.hero-dot,
.kicker-dot,
.hero-badge-dot,
.about-dot,
.persona-dot {
  position: relative;
}
.hero-mark::after,
.hero-dot::after,
.kicker-dot::after,
.hero-badge-dot::after,
.about-dot::after,
.persona-dot::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 999px;
  background: rgba(196, 120, 145, .20);
  animation: dotPulse 2.15s ease-in-out infinite;
  z-index: -1;
}
@keyframes dotPulse {
  0% { transform: scale(1); opacity: .15; }
  50% { transform: scale(1.75); opacity: .34; }
  100% { transform: scale(1); opacity: .15; }
}


.hero-kicker .dot,
.hero-kicker-dot,
.eyebrow .dot,
.kicker .dot,
.label-dot,
.hero-lead .dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: #bf7f95;
  display: inline-block;
  position: relative;
  box-shadow: 0 0 0 0 rgba(191,127,149,.16);
  animation: dotGlow 2.15s ease-in-out infinite;
}
.hero-kicker .dot::after,
.hero-kicker-dot::after,
.eyebrow .dot::after,
.kicker .dot::after,
.label-dot::after,
.hero-lead .dot::after {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 999px;
  background: rgba(191,127,149,.18);
  animation: dotPulse 2.15s ease-in-out infinite;
}
@keyframes dotGlow {
  0% { box-shadow: 0 0 0 0 rgba(191,127,149,.12); opacity: .9; }
  50% { box-shadow: 0 0 0 8px rgba(191,127,149,0); opacity: 1; }
  100% { box-shadow: 0 0 0 0 rgba(191,127,149,.12); opacity: .9; }
}

@keyframes heroOverlineDotGlow {
  0% { box-shadow: 0 0 0 7px rgba(167,101,121,.10), 0 0 8px rgba(215,137,166,.22); opacity: .92; }
  50% { box-shadow: 0 0 0 9px rgba(167,101,121,.06), 0 0 14px rgba(215,137,166,.40); opacity: 1; }
  100% { box-shadow: 0 0 0 7px rgba(167,101,121,.10), 0 0 8px rgba(215,137,166,.22); opacity: .92; }
}


.section-title,
.services-title,
.works-title,
.block-title,
.display-title,
.showcase-title,
.section-head h2,
.works-head h2,
.services-head h2,
.gallery-head h2,
.portfolio-head h2 {
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
  line-height: .92 !important;
  text-transform: none !important;
  font-feature-settings: "kern" 1, "liga" 1;
}


.section-title,
.services-title,
.works-title,
.block-title,
.display-title,
.showcase-title {
  font-size: clamp(52px, 7vw, 112px) !important;
}

.works-title,
.portfolio-head h2,
.gallery-head h2 {
  max-width: 7.8ch;
}


/* ===========================================================
   v4.6 - clean final visual layer
   =========================================================== */

/* No section over-headings. */
.kicker {
  display: none !important;
}

/* Removed helper text must not leave a second empty grid column. */
.section-title,
.price-head {
  grid-template-columns: 1fr !important;
  align-items: start !important;
}
.section-title > p,
.price-head > p,
.services-intro > p,
.contact-copy > p,
.reviews-footer > p {
  display: none !important;
}
.reviews-footer {
  justify-content: flex-end !important;
}

/* Modern section titles. The line is clearly BELOW the title. */
.section-display,
.services-intro h2.section-display,
.section-title h2.section-display,
.price-head h2.section-display,
.contact-copy h2.section-display {
  position: relative !important;
  display: inline-block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 0 36px !important;
  padding: 0 0 19px !important;

  font-family: "Manrope", Arial, sans-serif !important;
  font-size: clamp(52px, 5.4vw, 84px) !important;
  font-weight: 800 !important;
  font-style: normal !important;
  line-height: .96 !important;
  letter-spacing: -.055em !important;
  text-transform: none !important;
  text-wrap: balance !important;
}

.section-display::before {
  content: none !important;
}

.section-display::after {
  content: "" !important;
  position: absolute !important;
  left: 2px !important;
  bottom: 0 !important;
  width: clamp(92px, 38%, 162px) !important;
  height: 4px !important;
  border-radius: 999px !important;
  background:
    linear-gradient(
      90deg,
      #8f5068 0%,
      #ba718b 38%,
      #e7a9bd 70%,
      rgba(231,169,189,0) 100%
    ) !important;
  box-shadow:
    0 4px 14px rgba(167,101,121,.17),
    0 0 16px rgba(218,145,168,.10) !important;
}

.price-head .section-display {
  color: #fff !important;
}
.price-head .section-display::after {
  background:
    linear-gradient(
      90deg,
      #e4a7bb 0%,
      #f0c0cf 58%,
      rgba(240,192,207,0) 100%
    ) !important;
}

@media (max-width: 1279px) {
  .section-display,
  .services-intro h2.section-display,
  .section-title h2.section-display,
  .price-head h2.section-display,
  .contact-copy h2.section-display {
    font-size: clamp(43px, 11.8vw, 66px) !important;
    line-height: .99 !important;
    letter-spacing: -.045em !important;
    margin-bottom: 28px !important;
    padding-bottom: 16px !important;
  }
  .section-display::after {
    width: clamp(82px, 36%, 128px) !important;
    height: 3px !important;
  }
}

/* Tighten Price -> Reviews only. */
#price {
  padding-bottom: 40px !important;
}
#reviews {
  padding-top: 40px !important;
}

/* ===========================================================
   Price category dots - visible pulse + expanding ring.
   =========================================================== */

.price-category-title::before,
.price-category-title::after {
  content: none !important;
  display: none !important;
}

.price-category-dot {
  position: relative !important;
  display: inline-block !important;
  flex: 0 0 10px !important;
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  background: #dfa5b7 !important;
  box-shadow:
    0 0 0 4px rgba(223,165,183,.10),
    0 0 11px rgba(223,165,183,.20) !important;
  animation: priceDotPulse46 1.55s ease-in-out infinite !important;
}

.price-category-dot::after {
  content: "" !important;
  position: absolute !important;
  inset: -6px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255,215,228,.76) !important;
  opacity: 0;
  animation: priceDotRing46 1.55s ease-out infinite !important;
}

@keyframes priceDotPulse46 {
  0%, 100% {
    transform: scale(.82);
    background: #c9879d;
    box-shadow:
      0 0 0 4px rgba(223,165,183,.09),
      0 0 9px rgba(223,165,183,.16);
  }
  50% {
    transform: scale(1.34);
    background: #ffd9e5;
    box-shadow:
      0 0 0 8px rgba(239,179,198,.16),
      0 0 24px rgba(255,204,220,.40);
  }
}

@keyframes priceDotRing46 {
  0% {
    transform: scale(.70);
    opacity: .68;
  }
  76%, 100% {
    transform: scale(1.95);
    opacity: 0;
  }
}


/* ===========================================================
   v4.7 - section heading system
   Research direction:
   strong typographic hierarchy + clear visual surface,
   not a decorative underline pretending to be hierarchy.
   =========================================================== */

/* Kill every older underline/marker experiment for section titles. */
.section-display::before,
.section-display::after,
.services-intro h2.section-display::before,
.services-intro h2.section-display::after,
.section-title h2.section-display::before,
.section-title h2.section-display::after,
.price-head h2.section-display::before,
.price-head h2.section-display::after,
.contact-copy h2.section-display::before,
.contact-copy h2.section-display::after {
  content: none !important;
  display: none !important;
}

/* The title is now a distinct editorial/glass label.
   This separates it from ordinary text at a glance. */
.section-display,
.services-intro h2.section-display,
.section-title h2.section-display,
.price-head h2.section-display,
.contact-copy h2.section-display {
  position: relative !important;
  display: inline-block !important;
  width: fit-content !important;
  max-width: min(100%, 980px) !important;

  margin: 0 0 38px !important;
  padding: 15px 28px 18px 32px !important;

  font-family: "Brygada 1918", Georgia, serif !important;
  font-size: clamp(50px, 5.25vw, 82px) !important;
  font-weight: 600 !important;
  font-style: normal !important;
  line-height: .98 !important;
  letter-spacing: -.032em !important;
  text-transform: none !important;
  text-wrap: balance !important;
  font-kerning: normal !important;
  font-feature-settings: "kern" 1, "liga" 1 !important;

  color: #241b1e !important;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.66) 0%,
      rgba(255,252,252,.50) 42%,
      rgba(236,205,216,.27) 100%
    ) !important;

  border: 1px solid rgba(255,255,255,.82) !important;
  border-left: 4px solid #b66f87 !important;
  border-radius: 24px !important;

  box-shadow:
    0 18px 46px rgba(83,52,62,.075),
    inset 0 1px 0 rgba(255,255,255,.78),
    inset 0 -1px 0 rgba(171,105,128,.05) !important;

  -webkit-backdrop-filter: blur(11px) saturate(108%);
  backdrop-filter: blur(11px) saturate(108%);
}

/* A very soft brand glow, separate from the text itself. */
.section-display {
  isolation: isolate;
}
.section-display > * {
  position: relative;
  z-index: 1;
}

/* Dark price block gets the same component, adapted to the dark surface. */
.price-head .section-display {
  color: #fff9fb !important;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.10) 0%,
      rgba(255,255,255,.055) 52%,
      rgba(194,116,145,.16) 100%
    ) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-left: 4px solid #e8aec1 !important;
  box-shadow:
    0 18px 42px rgba(17,9,12,.14),
    inset 0 1px 0 rgba(255,255,255,.08) !important;
}

/* Services title should not inherit the giant legacy serif proportions. */
.services-intro h2.section-display {
  font-size: clamp(50px, 5.25vw, 82px) !important;
}

/* Contact title can wrap naturally inside the same component. */
.contact-copy h2.section-display {
  line-height: 1.02 !important;
}

/* Mobile stays clear without turning into a giant banner. */
@media (max-width: 1279px) {
  .section-display,
  .services-intro h2.section-display,
  .section-title h2.section-display,
  .price-head h2.section-display,
  .contact-copy h2.section-display {
    max-width: 100% !important;
    margin-bottom: 28px !important;
    padding: 12px 19px 14px 22px !important;
    border-left-width: 3px !important;
    border-radius: 18px !important;

    font-size: clamp(40px, 10.8vw, 62px) !important;
    line-height: 1 !important;
    letter-spacing: -.024em !important;
  }
}


/* ===========================================================
   v4.8 - compact headings, light price, real orbiting neon
   =========================================================== */

/* -----------------------------------------------------------
   Compact headings.
   Keep them visually separate, but stop them dominating the page.
   ----------------------------------------------------------- */
.section-display,
.services-intro h2.section-display,
.section-title h2.section-display,
.price-head h2.section-display,
.contact-copy h2.section-display {
  max-width: min(100%, 760px) !important;
  margin: 0 0 30px !important;
  padding: 10px 20px 12px 23px !important;

  font-size: clamp(38px, 3.65vw, 58px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.022em !important;

  border-radius: 18px !important;
  border-left-width: 3px !important;

  box-shadow:
    0 12px 30px rgba(83,52,62,.06),
    inset 0 1px 0 rgba(255,255,255,.76) !important;
}

.services-intro h2.section-display {
  font-size: clamp(38px, 3.65vw, 58px) !important;
}

@media (max-width: 1279px) {
  .section-display,
  .services-intro h2.section-display,
  .section-title h2.section-display,
  .price-head h2.section-display,
  .contact-copy h2.section-display {
    max-width: 100% !important;
    margin-bottom: 24px !important;
    padding: 9px 15px 11px 18px !important;
    border-radius: 15px !important;
    font-size: clamp(33px, 9vw, 48px) !important;
    line-height: 1.04 !important;
    letter-spacing: -.018em !important;
  }
}

/* -----------------------------------------------------------
   Price - no more dark slab. Same milk-pink visual language
   as the rest of the site.
   ----------------------------------------------------------- */
.price-shell {
  color: var(--ink) !important;
  background:
    radial-gradient(720px 420px at 100% 0%,
      rgba(208,143,164,.18),
      transparent 62%),
    linear-gradient(
      145deg,
      rgba(255,255,255,.72),
      rgba(247,233,237,.66)
    ) !important;

  border: 1px solid rgba(255,255,255,.78) !important;
  box-shadow:
    0 28px 70px rgba(78,48,58,.09),
    inset 0 1px 0 rgba(255,255,255,.84) !important;
}

.price-head {
  border-bottom: 1px solid rgba(127,91,103,.14) !important;
}

.price-head .section-display {
  color: #241b1e !important;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.76) 0%,
      rgba(255,252,252,.56) 46%,
      rgba(233,201,212,.28) 100%
    ) !important;
  border: 1px solid rgba(255,255,255,.84) !important;
  border-left: 3px solid #b66f87 !important;
  box-shadow:
    0 12px 30px rgba(83,52,62,.06),
    inset 0 1px 0 rgba(255,255,255,.78) !important;
}

.price-category-title {
  color: #7f5664 !important;
  background: rgba(255,255,255,.58) !important;
  border: 1px solid rgba(133,94,108,.15) !important;
}

.price-row {
  border-bottom: 1px solid rgba(127,91,103,.13) !important;
}

.price-row strong {
  color: #2b2225 !important;
}

.price-row small {
  color: #8a7a7f !important;
}

.price-row b {
  color: #4b343c !important;
}

.price-shell .btn-light {
  color: #302429 !important;
  border-color: rgba(125,91,102,.18) !important;
  background: rgba(255,255,255,.58) !important;
}

.price-shell .btn-light:hover {
  background: rgba(255,255,255,.88) !important;
}

/* ===========================================================
   v4.9 - restore dark price + true single neon runner
   =========================================================== */

/* PRICE: restore the original dark salon block.
   Only the title treatment is lightened; the block itself stays dark. */
.price-shell {
  color: #fff !important;
  background:
    radial-gradient(700px 400px at 100% 0%,
      rgba(169,101,121,.28),
      transparent 62%),
    #382b30 !important;
  border: 0 !important;
  box-shadow: var(--shadow) !important;
}

.price-head {
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
}

.price-head .section-display {
  color: #f8e9ee !important;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.10) 0%,
      rgba(255,255,255,.055) 52%,
      rgba(194,116,145,.16) 100%
    ) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-left: 3px solid #e3a5ba !important;
  box-shadow:
    0 12px 30px rgba(17,9,12,.15),
    inset 0 1px 0 rgba(255,255,255,.08) !important;
}

.price-category-title {
  color: #f1d6de !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
}

.price-row {
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

.price-row strong,
.price-row b {
  color: #fff !important;
}

.price-row small {
  color: rgba(255,255,255,.58) !important;
}

.price-shell .btn-light {
  color: #fff !important;
  border-color: rgba(255,255,255,.24) !important;
  background: rgba(255,255,255,.04) !important;
}

.price-shell .btn-light:hover {
  background: rgba(255,255,255,.10) !important;
}

/* ===========================================================
   PRICE:
   the large price section stays dark.
   ONLY the small title card with "Прайс" becomes light.
   =========================================================== */

.price-shell {
  color: #fff !important;
  background:
    radial-gradient(700px 400px at 100% 0%,
      rgba(169,101,121,.28),
      transparent 62%
    ),
    #382b30 !important;
  border: 0 !important;
  box-shadow: var(--shadow) !important;
}

.price-head {
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
}

.price-head .section-display {
  color: #2a2024 !important;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.96) 0%,
      rgba(249,239,242,.96) 58%,
      rgba(239,215,223,.94) 100%
    ) !important;

  border: 1px solid rgba(255,255,255,.92) !important;
  border-left: 3px solid #bd7890 !important;

  box-shadow:
    0 14px 34px rgba(15,8,11,.18),
    inset 0 1px 0 rgba(255,255,255,.98) !important;
}

.price-category-title {
  color: #f1d6de !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
}

.price-row {
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}
.price-row strong,
.price-row b {
  color: #fff !important;
}
.price-row small {
  color: rgba(255,255,255,.58) !important;
}
.price-shell .btn-light {
  color: #fff !important;
  border-color: rgba(255,255,255,.24) !important;
  background: rgba(255,255,255,.04) !important;
}
.price-shell .btn-light:hover {
  background: rgba(255,255,255,.10) !important;
}

.price-shell,
section#price .price-shell {
  color: #fff !important;
  background:
    radial-gradient(680px 360px at 100% 0%, rgba(170,102,122,.26), transparent 60%),
    linear-gradient(180deg, rgba(57,42,48,1) 0%, rgba(53,40,45,1) 100%) !important;
  border: 0 !important;
  box-shadow: 0 26px 64px rgba(31,18,23,.28) !important;
}

.price-head,
section#price .price-head {
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  background: transparent !important;
}

.price-head .section-display,
section#price .price-head .section-display {
  color: #2b2025 !important;
  background:
    linear-gradient(135deg, #fffefe 0%, #fbf3f6 52%, #f4e1e8 100%) !important;
  border: 1px solid rgba(255,255,255,.94) !important;
  border-left: 3px solid #cf7f9d !important;
  box-shadow:
    0 12px 28px rgba(21,11,15,.16),
    inset 0 1px 0 rgba(255,255,255,.98) !important;
}

.price-head .section-display::before,
.price-head .section-display::after {
  display: none !important;
}

.price-category-title {
  color: #f0d8df !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
}

.price-row {
  border-bottom: 1px solid rgba(255,255,255,.09) !important;
}

.price-row strong,
.price-row b,
.price-shell .btn-light,
.price-shell .btn-brand {
  color: #fff !important;
}

.price-row small {
  color: rgba(255,255,255,.58) !important;
}

.price-shell .btn-light {
  border-color: rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.04) !important;
}

.price-shell .btn-light:hover {
  background: rgba(255,255,255,.10) !important;
}



/* ===========================================================
   v6.3 - hero geometry fix
   Separate inner shell for the white contour and clipped photo.
   Neon follows the same geometry outside the shell, so bends stay clean.
   =========================================================== */

@property --hero-neon-angle-v63 {
  syntax: "<angle>";
  inherits: false;
  initial-value: 320deg;
}

@keyframes hero-neon-rotate-v63 {
  to { --hero-neon-angle-v63: 680deg; }
}

.hero-photo-wrap,
.hero-photo-wrap.reveal {
  --hero-neon-angle-v63: 320deg;

  position: relative !important;
  isolation: isolate !important;
  overflow: visible !important;

  min-height: 718px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 40px 40px 166px 40px !important;

  background: transparent !important;
  box-shadow: none !important;
}

.hero-photo-shell {
  position: relative !important;
  z-index: 3 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 718px !important;
  overflow: hidden !important;
  border-radius: 40px 40px 166px 40px !important;
  outline: 1px solid rgba(255,255,255,.94) !important;
  outline-offset: 0 !important;
  box-shadow: 0 24px 58px rgba(50,34,39,.14) !important;
  background: transparent !important;
}

.hero-photo {
  display: block !important;
  position: relative !important;
  z-index: 1 !important;

  width: 100% !important;
  height: 100% !important;
  min-height: 718px !important;

  object-fit: cover !important;
  object-position: 50% center !important;

  border: 0 !important;
  border-radius: 0 !important;
  outline: none !important;
  outline-offset: 0 !important;

  transform: scale(1.012) !important;
  transform-origin: center center !important;
  transition: none !important;

  background: transparent !important;
  box-shadow: none !important;
}

.hero-photo-wrap::before,
.hero-photo-wrap::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  pointer-events: none !important;

  background: conic-gradient(
    from var(--hero-neon-angle-v63),

    rgba(219,113,152,0) 0deg,
    rgba(231,120,166,.12) 10deg,
    rgba(241,136,182,.44) 22deg,
    rgba(249,171,206,.92) 36deg,
    rgba(255,216,231,1) 48deg,
    rgba(255,248,251,1) 55deg,
    rgba(255,255,255,1) 59deg,
    rgba(255,248,251,1) 63deg,
    rgba(255,216,231,1) 71deg,
    rgba(249,171,206,.92) 84deg,
    rgba(241,136,182,.44) 98deg,
    rgba(231,120,166,.12) 110deg,
    rgba(219,113,152,0) 120deg,

    rgba(219,113,152,0) 180deg,
    rgba(231,120,166,.12) 190deg,
    rgba(241,136,182,.44) 202deg,
    rgba(249,171,206,.92) 216deg,
    rgba(255,216,231,1) 228deg,
    rgba(255,248,251,1) 235deg,
    rgba(255,255,255,1) 239deg,
    rgba(255,248,251,1) 243deg,
    rgba(255,216,231,1) 251deg,
    rgba(249,171,206,.92) 264deg,
    rgba(241,136,182,.44) 278deg,
    rgba(231,120,166,.12) 290deg,
    rgba(219,113,152,0) 300deg,

    rgba(219,113,152,0) 360deg
  ) !important;

  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0) !important;
  -webkit-mask-composite: xor !important;
          mask-composite: exclude !important;

  will-change: --hero-neon-angle-v63 !important;
  animation: hero-neon-rotate-v63 10.8s linear infinite !important;
}

/* main visible neon line */
.hero-photo-wrap::before {
  inset: -4px !important;
  z-index: 4 !important;
  padding: 2px !important;
  border-radius:
    calc(40px + 4px)
    calc(40px + 4px)
    calc(166px + 4px)
    calc(40px + 4px) !important;
  filter:
    drop-shadow(0 0 4px rgba(255,247,251,.98))
    drop-shadow(0 0 12px rgba(255,170,206,.98))
    drop-shadow(0 0 24px rgba(243,114,171,.78)) !important;
}

/* soft bloom only */
.hero-photo-wrap::after {
  inset: -5px !important;
  z-index: 1 !important;
  padding: 3px !important;
  border-radius:
    calc(40px + 5px)
    calc(40px + 5px)
    calc(166px + 5px)
    calc(40px + 5px) !important;
  opacity: .26 !important;
  filter:
    blur(4px)
    drop-shadow(0 0 8px rgba(255,160,198,.58))
    drop-shadow(0 0 16px rgba(238,109,167,.38)) !important;
}

.hero-neon-frame,
.hero-neon-svg,
.hero-neon-base,
.hero-neon-runner,
.hero-neon-hotspot,
.hero-neon-glow,
.hero-neon-core,
.hero-neon-orbit {
  display: none !important;
  animation: none !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    min-height: calc(66svh - 4px) !important;
    border-radius: 22px 22px 86px 22px !important;
  }

  .hero-photo-shell {
    min-height: calc(66svh - 4px) !important;
    border-radius: 22px 22px 86px 22px !important;
    outline-width: 1px !important;
  }

  .hero-photo {
    min-height: calc(66svh - 4px) !important;
  }

  .hero-photo-wrap::before,
  .hero-photo-wrap::after {
    animation-duration: 12s !important;
  }

  .hero-photo-wrap::before {
    inset: -3px !important;
    padding: 1px !important;
    border-radius:
      calc(22px + 3px)
      calc(22px + 3px)
      calc(86px + 3px)
      calc(22px + 3px) !important;
    filter:
      drop-shadow(0 0 3px rgba(255,247,251,.98))
      drop-shadow(0 0 9px rgba(255,166,203,.94))
      drop-shadow(0 0 16px rgba(243,112,170,.64)) !important;
  }

  .hero-photo-wrap::after {
    inset: -4px !important;
    padding: 2px !important;
    border-radius:
      calc(22px + 4px)
      calc(22px + 4px)
      calc(86px + 4px)
      calc(22px + 4px) !important;
    opacity: .22 !important;
    filter:
      blur(3px)
      drop-shadow(0 0 6px rgba(255,160,198,.54))
      drop-shadow(0 0 12px rgba(238,109,167,.34)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-photo-wrap::before,
  .hero-photo-wrap::after {
    animation: none !important;
  }
}

/* ===========================================================
   v5.6 - restore hero overline pulse + price neon frame
   Price block gets a darker mauve-rose version of the hero neon.
   =========================================================== */

@property --price-neon-angle-v59 {
  syntax: "<angle>";
  inherits: false;
  initial-value: 336deg;
}

@keyframes price-neon-rotate-v59 {
  to { --price-neon-angle-v59: 696deg; }
}

.price-shell,
section#price .price-shell {
  --price-neon-angle-v59: 336deg;
  position: relative !important;
  isolation: isolate !important;
  overflow: visible !important;
}

.price-head,
.price-body {
  position: relative;
  z-index: 3;
}

/* Single price neon contour. No separate white frame. */
.price-shell::before {
  display: none !important;
  content: none !important;
}

.price-shell::after {
  content: "" !important;
  position: absolute !important;
  pointer-events: none !important;
  display: block !important;
  inset: -2px !important;
  z-index: 2 !important;
  padding: 3px !important;
  border-radius: inherit !important;

  background: conic-gradient(
    from var(--price-neon-angle-v59),

    rgba(203,118,158,0) 0deg,
    rgba(214,122,167,.16) 10deg,
    rgba(236,150,194,.56) 22deg,
    rgba(251,176,214,.98) 36deg,
    rgba(255,220,236,1) 48deg,
    rgba(255,248,251,1) 56deg,
    rgba(255,220,236,1) 64deg,
    rgba(251,176,214,.98) 72deg,
    rgba(236,150,194,.56) 86deg,
    rgba(214,122,167,.16) 100deg,
    rgba(203,118,158,0) 112deg,

    rgba(203,118,158,0) 180deg,
    rgba(214,122,167,.16) 190deg,
    rgba(236,150,194,.56) 202deg,
    rgba(251,176,214,.98) 216deg,
    rgba(255,220,236,1) 228deg,
    rgba(255,248,251,1) 236deg,
    rgba(255,220,236,1) 244deg,
    rgba(251,176,214,.98) 252deg,
    rgba(236,150,194,.56) 266deg,
    rgba(214,122,167,.16) 280deg,
    rgba(203,118,158,0) 292deg,

    rgba(203,118,158,0) 360deg
  ) !important;

  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0) !important;
  -webkit-mask-composite: xor !important;
          mask-composite: exclude !important;

  will-change: --price-neon-angle-v59 !important;
  animation: price-neon-rotate-v59 11.8s linear infinite !important;
  opacity: 1 !important;
  filter:
    drop-shadow(0 0 6px rgba(255,248,251,.98))
    drop-shadow(0 0 18px rgba(247,176,213,.98))
    drop-shadow(0 0 36px rgba(228,116,173,.88))
    drop-shadow(0 0 54px rgba(214,120,165,.72)) !important;
}

.price-shell {
  box-shadow:
    0 26px 64px rgba(31,18,23,.28),
    0 0 34px rgba(234,149,192,.22),
    0 0 56px rgba(234,149,192,.14) !important;
}

@media (max-width: 1279px) {
  .price-shell::before {
    display: none !important;
    content: none !important;
  }

  .price-shell::after {
    inset: -1px !important;
    padding: 2px !important;
    filter:
      drop-shadow(0 0 4px rgba(255,248,251,.98))
      drop-shadow(0 0 12px rgba(247,176,213,.94))
      drop-shadow(0 0 24px rgba(228,116,173,.76)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-overline .dot,
  .hero-overline .dot::after,
  .price-shell::after {
    animation: none !important;
  }
}


/* ===========================================================
   v7.1 - crisp typography brand lockup instead of raster logo
   Fixes rough edges, dirty highlights and blurry letterforms.
   =========================================================== */

.logo-lockup {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  flex: 0 0 auto;
  line-height: 1;
  white-space: nowrap;
}

.logo-lockup .logo-main {
  display: block;
  font-family: "Prata", Georgia, serif;
  font-size: 27px;
  line-height: .92;
  letter-spacing: -.06em;
  font-weight: 400;
}

.logo-lockup .logo-koshko { color: #4b343d; }
.logo-lockup .logo-brow { color: #b78598; }

.logo-lockup .logo-sub {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
  padding-left: 2px;
  color: #8e6977;
}

.logo-lockup .logo-line {
  width: 82px;
  height: 1.5px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(167,101,121,.92), rgba(197,149,164,.68));
}

.logo-lockup .logo-studio {
  font-size: 11px;
  line-height: 1;
  letter-spacing: .52em;
  font-weight: 500;
}

.logo-lockup .logo-star {
  font-size: 11px;
  line-height: 1;
  color: #c595a4;
  transform: translateY(-.5px);
}

.hero-brand-wrap {
  margin: 26px 0 28px !important;
}

.hero-brand-lockup {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 100%;
  white-space: nowrap;
}

.hero-brand-main {
  display: block;
  font-family: "Prata", Georgia, serif;
  font-size: clamp(92px, 9vw, 166px);
  line-height: .90;
  letter-spacing: -.065em;
  font-weight: 400;
}

.hero-brand-koshko { color: #2f252b; }
.hero-brand-brow { color: #b88298; }

.hero-brand-sub {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 10px;
  padding-left: 12px;
  color: #8e6977;
}

.hero-brand-line {
  width: clamp(110px, 13vw, 190px);
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(167,101,121,.92), rgba(197,149,164,.72));
}

.hero-brand-studio {
  font-size: clamp(18px, 1.25vw, 24px);
  line-height: 1;
  letter-spacing: .56em;
  font-weight: 500;
}

.hero-brand-star {
  font-size: clamp(22px, 1.5vw, 30px);
  line-height: 1;
  color: #c595a4;
  transform: translateY(-1px);
}

/* legacy raster logo sizing disabled */
.logo img,
.hero-brand {
  display: none !important;
}

@media (max-width: 1279px) {
  .logo-lockup .logo-main {
    font-size: 21px;
  }

  .logo-lockup .logo-sub {
    gap: 6px;
    margin-top: 3px;
  }

  .logo-lockup .logo-line {
    width: 42px;
  }

  .logo-lockup .logo-studio {
    font-size: 9px;
    letter-spacing: .38em;
  }

  .logo-lockup .logo-star {
    font-size: 9px;
  }

  .hero-brand-wrap {
    margin: 22px 0 24px !important;
  }

  .hero-brand-main {
    font-size: clamp(60px, 16vw, 96px);
    line-height: .92;
  }

  .hero-brand-sub {
    gap: 10px;
    margin-top: 8px;
    padding-left: 6px;
  }

  .hero-brand-line {
    width: clamp(52px, 15vw, 92px);
    height: 1.5px;
  }

  .hero-brand-studio {
    font-size: 14px;
    letter-spacing: .36em;
  }

  .hero-brand-star {
    font-size: 18px;
  }
}


/* ===========================================================
   v7.2 - hero grid containment fix
   Keep V71 crisp brand, but never let it push the photo column away.
   Header geometry is intentionally untouched.
   =========================================================== */

.hero-grid > * {
  min-width: 0 !important;
}

.hero-copy {
  min-width: 0 !important;
  container-type: inline-size;
}

.hero-photo-wrap {
  min-width: 0 !important;
  width: 100% !important;
}

.hero-brand-wrap {
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;
}

.hero-brand-lockup {
  width: 100% !important;
  max-width: 100% !important;
  white-space: nowrap !important;
}

.hero-brand-main {
  /* Sized from the LEFT hero column, not from the viewport. */
  font-size: clamp(70px, 13.25cqw, 108px) !important;
  letter-spacing: -.065em !important;
  line-height: .90 !important;
}

.hero-brand-sub {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  gap: clamp(8px, 2cqw, 16px) !important;
  padding-left: 6px !important;
}

.hero-brand-line {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 34px !important;
  max-width: 150px !important;
}

.hero-brand-studio {
  flex: 0 0 auto !important;
  font-size: clamp(15px, 3.1cqw, 21px) !important;
  letter-spacing: .48em !important;
}

.hero-brand-star {
  flex: 0 0 auto !important;
  font-size: clamp(18px, 3.6cqw, 26px) !important;
}

@media (max-width:1279px) {
  .hero-copy {
    container-type: normal;
  }

  .hero-brand-main {
    font-size: clamp(68px, 12vw, 118px) !important;
  }
}

@media (max-width: 1279px) {
  .hero-brand-main {
    font-size: clamp(54px, 15vw, 88px) !important;
  }

  .hero-brand-studio {
    font-size: 13px !important;
    letter-spacing: .34em !important;
  }

  .hero-brand-star {
    font-size: 17px !important;
  }

  .hero-brand-sub {
    gap: 8px !important;
  }
}


/* ===========================================================
   v7.3 - stretch brand underline system
   Make the lower decorative lines extend cleanly from K to W
   in both the header and the hero block.
   =========================================================== */

.logo-lockup {
  width: fit-content;
}

.logo-lockup .logo-sub {
  width: 100%;
  box-sizing: border-box;
  gap: 8px;
  padding-left: 2px;
  padding-right: 2px;
}

.logo-lockup .logo-line {
  flex: 1 1 auto;
  width: auto;
  min-width: 28px;
  max-width: none;
}

.hero-brand-lockup {
  width: 100%;
  max-width: 100%;
}

.hero-brand-sub {
  width: 100%;
  box-sizing: border-box;
  gap: clamp(10px, 1.2vw, 18px) !important;
  padding-left: 6px !important;
  padding-right: 6px !important;
}

.hero-brand-line {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 36px !important;
  max-width: none !important;
}

@media (max-width: 1279px) {
  .logo-lockup .logo-sub {
    gap: 6px;
    padding-right: 1px;
  }

  .logo-lockup .logo-line {
    min-width: 18px;
  }

  .hero-brand-sub {
    gap: 8px !important;
    padding-right: 2px !important;
  }

  .hero-brand-line {
    min-width: 18px !important;
  }
}


/* ===========================================================
   v7.4 - new hero portrait + tuned contour system
   Uses the new portrait image in optimized WebP and slightly refines
   the white contour/neon geometry so it hugs the new photo cleaner.
   =========================================================== */

.hero-photo-wrap,
.hero-photo-wrap.reveal {
  min-height: 728px !important;
  border-radius: 42px 42px 174px 42px !important;
}

.hero-photo-shell {
  min-height: 728px !important;
  border-radius: 42px 42px 174px 42px !important;
  outline-color: rgba(255,255,255,.95) !important;
  box-shadow: 0 22px 54px rgba(50,34,39,.12) !important;
}

.hero-photo {
  min-height: 728px !important;
  object-position: 50% 30% !important;
  transform: none !important;
}

.hero-photo-wrap::before {
  inset: -4px !important;
  padding: 2px !important;
  border-radius:
    calc(42px + 4px)
    calc(42px + 4px)
    calc(174px + 4px)
    calc(42px + 4px) !important;
}

.hero-photo-wrap::after {
  inset: -5px !important;
  padding: 3px !important;
  border-radius:
    calc(42px + 5px)
    calc(42px + 5px)
    calc(174px + 5px)
    calc(42px + 5px) !important;
  opacity: .24 !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    min-height: calc(68svh - 4px) !important;
    border-radius: 24px 24px 92px 24px !important;
  }

  .hero-photo-shell {
    min-height: calc(68svh - 4px) !important;
    border-radius: 24px 24px 92px 24px !important;
  }

  .hero-photo {
    min-height: calc(68svh - 4px) !important;
    object-position: 50% 24% !important;
  }

  .hero-photo-wrap::before {
    inset: -3px !important;
    padding: 1px !important;
    border-radius:
      calc(24px + 3px)
      calc(24px + 3px)
      calc(92px + 3px)
      calc(24px + 3px) !important;
  }

  .hero-photo-wrap::after {
    inset: -4px !important;
    padding: 2px !important;
    border-radius:
      calc(24px + 4px)
      calc(24px + 4px)
      calc(92px + 4px)
      calc(24px + 4px) !important;
  }
}


/* ===========================================================
   v7.5 - rebalance hero + personal first-screen copy
   Smaller portrait, aligned to the text block, with fresh contour geometry.
   =========================================================== */

@media (min-width:1280px) {
  .hero {
    min-height: 100svh;
    padding-top: 112px;
    padding-bottom: 50px;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(470px, 560px) !important;
    gap: clamp(34px, 4vw, 64px) !important;
    align-items: center !important;
  }

  .hero-copy {
    padding: 46px 0 30px !important;
  }

  .hero-copy > p {
    max-width: 630px !important;
    font-size: clamp(17px, 1.25vw, 20px) !important;
    line-height: 1.68 !important;
  }

  .hero-facts {
    padding-top: 42px !important;
  }

  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    width: 100% !important;
    max-width: 560px !important;
    height: clamp(610px, 68vh, 680px) !important;
    min-height: 0 !important;
    justify-self: end !important;
    align-self: center !important;
    border-radius: 38px 38px 148px 38px !important;
  }

  .hero-photo-shell {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    border-radius: 38px 38px 148px 38px !important;
    outline: 1px solid rgba(255,255,255,.95) !important;
  }

  .hero-photo {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: 50% 28% !important;
  }

  .hero-photo-wrap::before {
    inset: -4px !important;
    padding: 2px !important;
    border-radius:
      calc(38px + 4px)
      calc(38px + 4px)
      calc(148px + 4px)
      calc(38px + 4px) !important;
  }

  .hero-photo-wrap::after {
    inset: -5px !important;
    padding: 3px !important;
    border-radius:
      calc(38px + 5px)
      calc(38px + 5px)
      calc(148px + 5px)
      calc(38px + 5px) !important;
    opacity: .24 !important;
  }
}

@media (max-width:1279px) and (min-width:1280px) {
  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    width: min(100%, 620px) !important;
    height: 700px !important;
    min-height: 0 !important;
    margin: 0 auto !important;
  }

  .hero-photo-shell,
  .hero-photo {
    height: 100% !important;
    min-height: 0 !important;
  }
}

@media (max-width: 1279px) {
  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    width: 100% !important;
    height: min(72svh, 620px) !important;
    min-height: 500px !important;
  }

  .hero-photo-shell,
  .hero-photo {
    height: 100% !important;
    min-height: 0 !important;
  }

  .hero-photo {
    object-position: 50% 24% !important;
  }
}


/* ===========================================================
   v7.6 - hero polish
   1) Raise the left brand block to the level of the photo top.
   2) Turn the plain paragraph into a personal "About me" note.
   3) Replace the lightweight dots with more solid premium separators.
   =========================================================== */

.hero-overline {
  gap: 10px !important;
}

.hero-overline-mark,
.hero-overline-sep {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: #b5798d;
  line-height: 1;
}

.hero-overline-mark {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.56), rgba(255,255,255,.18));
  box-shadow:
    0 0 0 1px rgba(181,121,141,.18) inset,
    0 8px 16px rgba(167,101,121,.10);
  font-size: 10px;
}

.hero-overline-sep {
  font-size: 10px;
  transform: translateY(-.5px);
}

.hero-story {
  position: relative;
  max-width: 640px;
  padding: 18px 22px 20px;
  border: 1px solid rgba(181,121,141,.10);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.30), rgba(255,255,255,.12));
  box-shadow:
    0 14px 34px rgba(59,38,45,.04),
    0 0 0 1px rgba(255,255,255,.26) inset;
}

.hero-story::before {
  content: "“";
  position: absolute;
  top: 10px;
  left: 18px;
  font-family: "Prata", Georgia, serif;
  font-size: 42px;
  line-height: 1;
  color: rgba(181,121,141,.16);
}

.hero-story-label {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding-left: 1px;
  color: #8f6978;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.hero-story-label::after {
  content: "";
  width: 34px;
  height: 1.5px;
  border-radius: 999px;
  background: rgba(181,121,141,.45);
}

.hero-story p {
  margin: 0;
  position: relative;
  z-index: 1;
  color: #5d4a52;
  font-size: clamp(17px, 1.25vw, 20px);
  line-height: 1.68;
}

@media (min-width:1280px) {
  .hero {
    padding-top: 112px !important;
    padding-bottom: 50px !important;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 520px) !important;
    gap: clamp(34px, 4vw, 60px) !important;
    align-items: start !important;
  }

  .hero-copy {
    padding: 2px 0 24px !important;
  }

  .hero-brand-wrap {
    margin: 8px 0 22px !important;
  }

  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    max-width: 520px !important;
    height: clamp(560px, 62vh, 628px) !important;
    align-self: start !important;
  }

  .hero-copy > p {
    display: none !important;
  }
}

@media (max-width:1279px) and (min-width:1280px) {
  .hero-copy > p {
    display: none !important;
  }

  .hero-story {
    max-width: 700px;
  }
}

@media (max-width: 1279px) {
  .hero-copy > p {
    display: none !important;
  }

  .hero-overline {
    gap: 8px !important;
    font-size: 11px !important;
    letter-spacing: .11em !important;
  }

  .hero-overline-mark {
    width: 15px;
    height: 15px;
    font-size: 8px;
  }

  .hero-overline-sep {
    font-size: 8px;
  }

  .hero-story {
    padding: 16px 16px 18px;
    border-radius: 20px;
  }

  .hero-story::before {
    top: 8px;
    left: 12px;
    font-size: 34px;
  }

  .hero-story-label {
    margin-bottom: 8px;
    font-size: 11px;
  }

  .hero-story-label::after {
    width: 24px;
  }

  .hero-story p {
    font-size: 16px;
    line-height: 1.62;
  }
}


/* ===========================================================
   v7.7 - first-screen cleanup
   1) Move the whole hero block a bit lower from the header.
   2) Lift the overline relative to the brand.
   3) Remove the small "О себе" label.
   4) Make the strip appear on the first screen at 100% zoom.
   5) Restore the hero photo via a stable asset path.
   =========================================================== */

.hero-overline {
  margin-bottom: 12px !important;
}

.hero-story-label {
  display: none !important;
}

.hero-story {
  padding: 18px 20px 18px !important;
  max-width: 620px !important;
}

.hero-story::before {
  top: 10px !important;
  left: 16px !important;
}

.hero-actions {
  margin-top: 18px !important;
}

.hero-facts {
  padding-top: 26px !important;
}

@media (min-width:1280px) {
  .hero {
    min-height: auto !important;
    padding-top: 128px !important;
    padding-bottom: 16px !important;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(400px, 500px) !important;
    gap: clamp(28px, 3.4vw, 54px) !important;
    align-items: start !important;
  }

  .hero-copy {
    padding: 4px 0 10px !important;
  }

  .hero-brand-wrap {
    margin: 0 0 16px !important;
  }

  .hero-brand-main {
    font-size: clamp(78px, 7.1vw, 124px) !important;
    line-height: .92 !important;
  }

  .hero-brand-sub {
    margin-top: 6px !important;
  }

  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    max-width: 500px !important;
    height: clamp(500px, 56vh, 580px) !important;
    margin-top: 18px !important;
    align-self: start !important;
  }

  .hero-photo-shell,
  .hero-photo {
    min-height: 0 !important;
    height: 100% !important;
  }

  .brand-strip {
    margin-top: -4px !important;
    padding-top: 0 !important;
  }

  .brand-strip-inner {
    margin-top: 0 !important;
  }
}

@media (max-width:1279px) and (min-width:1280px) {
  .hero {
    min-height: auto !important;
    padding-bottom: 18px !important;
  }

  .hero-grid {
    gap: 28px !important;
  }

  .brand-strip {
    margin-top: 4px !important;
  }
}

@media (max-width: 1279px) {
  .hero {
    min-height: auto !important;
    padding-bottom: 14px !important;
  }

  .hero-overline {
    margin-bottom: 10px !important;
  }

  .hero-story {
    padding: 16px 16px 16px !important;
  }

  .hero-actions {
    margin-top: 16px !important;
  }

  .hero-facts {
    padding-top: 20px !important;
  }

  .brand-strip {
    margin-top: 4px !important;
  }
}


/* ===========================================================
   v7.8 - first-screen premium alignment pass
   Lower the hero, restore the pulsing dot, tighten visual hierarchy,
   rebalance story/facts/photo, and soften marquee edges.
   =========================================================== */

.hero-overline {
  gap: 10px !important;
  margin-bottom: 14px !important;
  color: #59434c !important;
  font-size: 12px !important;
  letter-spacing: .135em !important;
}

.hero-overline .dot {
  width: 8px !important;
  height: 8px !important;
  flex: 0 0 8px !important;
  background: #b56f88 !important;
  box-shadow:
    0 0 0 6px rgba(181,111,136,.10),
    0 0 12px rgba(205,128,158,.34) !important;
  animation: heroOverlineDotGlow 2.15s ease-in-out infinite !important;
}

.hero-overline .dot::after {
  display: block !important;
  content: "" !important;
  inset: -6px !important;
  background: rgba(191,127,149,.18) !important;
  animation: dotPulse 2.15s ease-in-out infinite !important;
}

.hero-overline-divider {
  color: #bc8699;
  font-size: 15px;
  line-height: 1;
  letter-spacing: 0;
  transform: translateY(-1px);
}

.hero-brand-wrap {
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

.hero-brand-sub {
  margin-top: 5px !important;
}

.hero-story {
  max-width: 590px !important;
  padding: 17px 20px 18px 22px !important;
  border: 1px solid rgba(173,112,134,.09) !important;
  border-left: 3px solid rgba(181,121,141,.42) !important;
  border-radius: 6px 22px 22px 6px !important;
  background:
    linear-gradient(90deg, rgba(255,255,255,.34), rgba(255,255,255,.17)) !important;
  box-shadow:
    0 14px 32px rgba(59,38,45,.035),
    0 0 0 1px rgba(255,255,255,.22) inset !important;
}

.hero-story::before {
  display: none !important;
}

.hero-story p {
  color: #58484f !important;
  font-size: clamp(16px, 1.05vw, 18px) !important;
  line-height: 1.58 !important;
}

.hero-actions {
  margin-top: 16px !important;
  gap: 11px !important;
}

.hero-actions .btn {
  min-height: 50px !important;
}

.hero-facts {
  margin-top: 0 !important;
  padding-top: 22px !important;
  gap: 16px !important;
}

.hero-fact {
  padding-top: 12px !important;
  border-top-color: rgba(167,101,121,.16) !important;
}

.hero-fact b {
  font-size: 13px !important;
  color: #3f3036 !important;
}

.hero-fact span {
  margin-top: 4px !important;
  font-size: 11.5px !important;
  color: #8b7b80 !important;
}

.brand-strip-inner {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%);
}

.brand-set {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

.brand-set span {
  font-size: 18px !important;
}

@media (min-width:1280px) {
  .hero {
    min-height: auto !important;
    padding-top: 158px !important;
    padding-bottom: 12px !important;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(390px, 490px) !important;
    gap: clamp(34px, 3.5vw, 56px) !important;
    align-items: start !important;
  }

  .hero-copy {
    padding: 0 0 8px !important;
  }

  .hero-brand-main {
    font-size: clamp(76px, 6.7vw, 118px) !important;
    line-height: .91 !important;
  }

  .hero-brand-studio {
    font-size: clamp(14px, 1.25vw, 19px) !important;
  }

  .hero-brand-star {
    font-size: clamp(18px, 1.5vw, 23px) !important;
  }

  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    width: 100% !important;
    max-width: 490px !important;
    height: clamp(500px, 54vh, 548px) !important;
    margin-top: 0 !important;
    align-self: start !important;
    justify-self: end !important;
  }

  .hero-photo-shell,
  .hero-photo {
    min-height: 0 !important;
    height: 100% !important;
  }

  .hero-photo {
    object-position: 50% 26% !important;
  }

  .brand-strip {
    margin-top: 6px !important;
    padding-top: 0 !important;
  }
}

@media (max-width:1279px) and (min-width:1280px) {
  .hero {
    padding-top: 118px !important;
    padding-bottom: 14px !important;
  }

  .hero-copy {
    padding-top: 12px !important;
  }

  .hero-story {
    max-width: 690px !important;
  }

  .brand-strip {
    margin-top: 8px !important;
  }
}

@media (max-width: 1279px) {
  .hero {
    padding-top: 102px !important;
    padding-bottom: 12px !important;
  }

  .hero-overline {
    flex-wrap: wrap;
    row-gap: 4px !important;
    margin-bottom: 11px !important;
    font-size: 10.5px !important;
    letter-spacing: .10em !important;
  }

  .hero-overline .dot {
    width: 7px !important;
    height: 7px !important;
    flex-basis: 7px !important;
  }

  .hero-overline-divider {
    font-size: 13px;
  }

  .hero-story {
    padding: 15px 15px 16px 17px !important;
    border-radius: 5px 18px 18px 5px !important;
  }

  .hero-story p {
    font-size: 15.5px !important;
    line-height: 1.56 !important;
  }

  .hero-facts {
    padding-top: 18px !important;
  }

  .brand-strip {
    margin-top: 6px !important;
  }

  .brand-set {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}


/* ===========================================================
   v7.9 - built-in visual editor (?edit=1)
   =========================================================== */

body.ve-open::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9997;
  box-shadow: inset -360px 0 80px rgba(38,25,30,.035);
}

.ve-panel {
  position: fixed;
  z-index: 9999;
  top: 14px;
  right: 14px;
  width: 338px;
  max-height: calc(100vh - 28px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 24px;
  background: rgba(247,239,239,.94);
  backdrop-filter: blur(26px) saturate(1.15);
  box-shadow: 0 24px 70px rgba(54,35,42,.22);
  color: #3d2f35;
  font-family: Inter, system-ui, sans-serif;
}

.ve-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 12px 16px;
  border-bottom: 1px solid rgba(167,101,121,.12);
  background: rgba(255,255,255,.28);
}

.ve-head strong {
  font-size: 14px;
  letter-spacing: .02em;
}

.ve-head-actions { display: flex; gap: 6px; }

.ve-icon-btn {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.66);
  color: #4b343d;
  cursor: pointer;
  font-size: 15px;
  font-weight: 800;
}

.ve-body {
  max-height: calc(100vh - 142px);
  overflow-y: auto;
  padding: 12px 14px 18px;
}

.ve-group {
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid rgba(167,101,121,.09);
  border-radius: 18px;
  background: rgba(255,255,255,.30);
}

.ve-group-title {
  margin-bottom: 10px;
  color: #8e6977;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ve-control { margin-bottom: 11px; }
.ve-control:last-child { margin-bottom: 0; }

.ve-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 5px;
  font-size: 12px;
  font-weight: 700;
}

.ve-value {
  min-width: 54px;
  text-align: right;
  color: #9b687b;
  font-variant-numeric: tabular-nums;
}

.ve-control input[type="range"] {
  width: 100%;
  accent-color: #b8748e;
}

.ve-control input[type="text"],
.ve-control textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(167,101,121,.15);
  border-radius: 12px;
  outline: none;
  background: rgba(255,255,255,.72);
  color: #4b343d;
  font: 500 12px/1.45 Inter, system-ui, sans-serif;
  padding: 9px 10px;
}

.ve-control textarea {
  min-height: 94px;
  resize: vertical;
}

.ve-footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 12px 14px 14px;
  border-top: 1px solid rgba(167,101,121,.12);
  background: rgba(255,255,255,.30);
}

.ve-btn {
  min-height: 40px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}

.ve-btn-primary {
  color: white;
  background: #a76579;
}

.ve-btn-light {
  color: #4b343d;
  background: rgba(255,255,255,.72);
}

.ve-note {
  grid-column: 1 / -1;
  color: #8b7b80;
  font-size: 10.5px;
  line-height: 1.4;
  text-align: center;
}

.ve-collapsed .ve-body,
.ve-collapsed .ve-footer { display: none; }
.ve-collapsed { width: 210px; }

.ve-toast {
  position: fixed;
  z-index: 10000;
  right: 24px;
  bottom: 24px;
  padding: 10px 14px;
  border-radius: 999px;
  background: #4b343d;
  color: white;
  font: 700 12px/1 Inter, system-ui, sans-serif;
  box-shadow: 0 14px 34px rgba(55,35,41,.22);
  opacity: 0;
  transform: translateY(8px);
  transition: .25s ease;
  pointer-events: none;
}
.ve-toast.show { opacity: 1; transform: translateY(0); }

@media (max-width: 1279px) {
  .ve-panel {
    top: 8px;
    right: 8px;
    left: 8px;
    width: auto;
    max-height: calc(100vh - 16px);
  }
  .ve-body { max-height: calc(100vh - 146px); }
  .ve-collapsed { left: auto; width: 200px; }
}


/* ===========================================================
   v8.1 - visual editor footer fix
   Keep all action buttons visible at every viewport height.
   =========================================================== */
.ve-panel {
  display: flex !important;
  flex-direction: column !important;
  height: min(820px, calc(100vh - 28px)) !important;
  max-height: calc(100vh - 28px) !important;
  overflow: hidden !important;
}

.ve-head {
  flex: 0 0 auto !important;
}

.ve-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding-bottom: 18px !important;
}

.ve-footer {
  position: relative !important;
  z-index: 2 !important;
  flex: 0 0 auto !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
  padding: 10px 14px 12px !important;
  background: rgba(249,243,243,.98) !important;
  backdrop-filter: blur(20px) saturate(1.08);
  box-shadow: 0 -10px 28px rgba(69,46,54,.06);
}

.ve-footer .ve-btn {
  min-height: 42px !important;
  white-space: nowrap;
}

.ve-btn-copy {
  color: white !important;
  background: #76515f !important;
  box-shadow: 0 9px 22px rgba(75,52,61,.15);
}

.ve-note {
  margin-top: 1px;
  font-size: 9.5px !important;
  line-height: 1.3 !important;
}

.ve-collapsed {
  height: auto !important;
}

@media (max-width: 1279px) {
  .ve-panel {
    height: calc(100vh - 16px) !important;
    max-height: calc(100vh - 16px) !important;
  }
  .ve-footer {
    padding: 9px 10px 10px !important;
    gap: 6px !important;
  }
  .ve-footer .ve-btn {
    min-height: 40px !important;
    font-size: 11px !important;
  }
}


/* ===========================================================
   v8.2 - approved hero layout from editor V81
   Permanent public values + neon line touching the white contour.
   =========================================================== */

@media (min-width:1280px) {
  .hero {
    padding-top: 170px !important;
    padding-bottom: 80px !important;
  }

  .hero-grid {
    gap: 51px !important;
    grid-template-columns: minmax(0,1fr) minmax(360px,495px) !important;
  }

  .hero-brand-main {
    font-size: 105px !important;
  }

  .hero-overline {
    margin-bottom: 32px !important;
  }

  .hero-story {
    max-width: 710px !important;
    padding: 40px 24px !important;
  }

  .hero-story p {
    font-size: 20px !important;
  }

  .hero-actions {
    margin-top: 126px !important;
  }

  .hero-facts {
    padding-top: 60px !important;
  }

  .hero-photo-wrap,
  .hero-photo-wrap.reveal {
    width: 100% !important;
    max-width: 495px !important;
    height: 710px !important;
    margin-top: 9px !important;
    border-radius: 38px 38px 186px 38px !important;
  }

  .hero-photo-shell {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    border-radius: 38px 38px 186px 38px !important;
    outline: 1px solid rgba(255,255,255,.95) !important;
    outline-offset: 0 !important;
  }

  .hero-photo {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-position: 50% 0% !important;
  }

  /* Main neon: 2px thick and its INNER edge lands exactly on the photo contour. */
  .hero-photo-wrap::before {
    inset: -2px !important;
    padding: 2px !important;
    border-radius: 40px 40px 188px 40px !important;
    filter:
      drop-shadow(0 0 3px rgba(255,250,252,.98))
      drop-shadow(0 0 58px rgba(255,158,201,0.95))
      drop-shadow(0 0 135px rgba(235,92,157,0.95)) !important;
  }

  /* Bloom also reaches the same contour; it is blur only, not a second visible ring. */
  .hero-photo-wrap::after {
    inset: -3px !important;
    padding: 3px !important;
    border-radius: 41px 41px 189px 41px !important;
    opacity: 0.82 !important;
    filter:
      blur(16px)
      drop-shadow(0 0 100px rgba(255,151,197,0.82))
      drop-shadow(0 0 135px rgba(232,91,154,0.68)) !important;
  }

  .hero-photo-wrap {
    box-shadow: 0 0 55px rgba(225,105,164,0.28) !important;
  }

  .brand-strip {
    margin-top: -3px !important;
  }

  .brand-set span {
    font-size: 18px !important;
  }
}


/* ===========================================================
   v8.3 - spacing polish + universal click-to-edit UI
   =========================================================== */

@media (min-width:1280px) {
  .hero-story {
    margin-top: 32px !important;
  }
}
@media (max-width:1279px) {
  .hero-story {
    margin-top: 20px !important;
  }
}

body.ve-open .ue-hover {
  outline: 1px dashed rgba(181,101,137,.62) !important;
  outline-offset: 2px !important;
  cursor: crosshair !important;
}
body.ve-open .ue-selected {
  outline: 2px solid rgba(181,101,137,.95) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(181,101,137,.10) !important;
}
.ve-panel, .ve-panel * { cursor: default; }
.ve-panel input, .ve-panel textarea, .ve-panel select, .ve-panel button { cursor: pointer; }
.ve-panel textarea, .ve-panel input[type=text] { cursor: text; }

.ue-picker {
  border-color: rgba(167,101,121,.18) !important;
  background: rgba(255,255,255,.50) !important;
}
.ue-selected-name {
  margin-bottom: 5px;
  font-size: 12px;
  line-height: 1.35;
  font-weight: 850;
  color: #4b343d;
  word-break: break-word;
}
.ue-selected-path {
  margin-bottom: 10px;
  max-height: 52px;
  overflow: auto;
  color: #947d85;
  font: 500 9px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
  word-break: break-all;
}
.ue-pick-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 10px;
}
.ue-mini {
  min-height: 32px;
  border: 1px solid rgba(167,101,121,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  color: #4b343d;
  font-size: 10.5px;
  font-weight: 800;
}
.ue-subgroup {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(167,101,121,.10);
}
.ue-subtitle {
  margin-bottom: 8px;
  color: #9a6d7e;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
}
.ue-toggle-row,
.ue-color-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 8px 0 10px;
  font-size: 11px;
  font-weight: 700;
}
.ue-color-row input[type=color] {
  width: 42px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
}
.ue-color-row label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #8a737b;
  font-size: 9.5px;
}
.ue-select,
.ue-textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(167,101,121,.15);
  border-radius: 11px;
  background: rgba(255,255,255,.78);
  color: #4b343d;
  padding: 8px 9px;
  font: 600 11px/1.4 Inter,system-ui,sans-serif;
}
.ue-textarea { min-height: 86px; resize: vertical; }
.ue-legacy {
  margin: 0 0 14px;
  border: 1px solid rgba(167,101,121,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.24);
  overflow: hidden;
}
.ue-legacy > summary {
  padding: 12px 14px;
  color: #80616d;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
  cursor: pointer;
  user-select: none;
}
.ue-legacy-body { padding: 0 10px 4px; }
.ue-legacy-body > .ve-group { margin-bottom: 10px; }


/* ===========================================================
   v8.4 - universal editor quality pass
   =========================================================== */
body.ve-open::after { display:none !important; }

/* Selection should never whiten/re-style the selected block. */
body.ve-open .ue-hover {
  outline:1px dashed rgba(181,101,137,.62) !important;
  outline-offset:2px !important;
  box-shadow:none !important;
}
body.ve-open .ue-selected {
  outline:2px solid rgba(181,101,137,.92) !important;
  outline-offset:3px !important;
  box-shadow:none !important;
}

.ue-pick-actions-v84 { grid-template-columns:1fr 1fr 1fr !important; }
.ue-danger { color:#8f465d !important; background:rgba(255,239,244,.82) !important; }

.ve-head { cursor:grab !important; user-select:none; touch-action:none; }
.ve-head.ue-dragging { cursor:grabbing !important; }
.ve-head-actions,.ve-head-actions * { cursor:pointer !important; }

.ue-resize-handle {
  position:absolute; right:3px; bottom:3px; z-index:8;
  width:20px; height:20px; cursor:nwse-resize; opacity:.62;
  background:linear-gradient(135deg,transparent 0 47%,rgba(142,105,119,.64) 48% 54%,transparent 55% 64%,rgba(142,105,119,.46) 65% 71%,transparent 72%);
}
.ve-panel { min-width:300px !important; min-height:380px !important; max-width:min(680px,calc(100vw - 12px)) !important; max-height:calc(100vh - 12px) !important; }

@media(max-width:1279px){
  .ue-pick-actions-v84{grid-template-columns:1fr 1fr !important;}
  .ue-resize-handle{display:none !important;}
  .ve-head{cursor:default !important;}
}


/* V84 selection boxes are separate fixed overlays; the site element itself stays untouched. */
body.ve-open .ue-hover,
body.ve-open .ue-selected { outline: revert !important; outline-offset: revert !important; box-shadow: revert !important; }
.ue-outline-box { position:fixed; display:none; z-index:9996; pointer-events:none; box-sizing:border-box; border-radius:4px; }
.ue-outline-hover { border:1px dashed rgba(181,101,137,.62); background:rgba(181,101,137,.018); }
.ue-outline-selected { border:2px solid rgba(181,101,137,.94); box-shadow:0 0 0 3px rgba(255,255,255,.72),0 0 0 5px rgba(181,101,137,.12); }


/* ===========================================================
   v8.5 - baked visual-editor layout from user export
   These settings are permanent for regular visitors.
   =========================================================== */

@media (min-width:1280px){
  .hero{padding-top:170px!important;padding-bottom:80px!important;}
  .hero-grid{gap:51px!important;grid-template-columns:minmax(0,1fr) minmax(360px,495px)!important;}
  .hero-brand-main{font-size:105px!important;}
  .hero-overline{margin-bottom:32px!important;}
  .hero-story{max-width:710px!important;padding:40px 24px!important;}
  .hero-story p{font-size:20px!important;}
  .hero-actions{margin-top:126px!important;}
  .hero-facts{padding-top:60px!important;}
  .hero-photo-wrap,.hero-photo-wrap.reveal{max-width:495px!important;height:710px!important;margin-top:9px!important;border-radius:38px 38px 186px 38px!important;}
  .hero-photo-shell{border-radius:38px 38px 186px 38px!important;}
  .hero-photo{object-position:50% 0%!important;}
  .hero-photo-wrap::before{inset:-2px!important;padding:2px!important;border-radius:calc(38px + 2px) calc(38px + 2px) calc(186px + 2px) calc(38px + 2px)!important;filter:drop-shadow(0 0 3px rgba(255,250,252,.98)) drop-shadow(0 0 58px rgba(255,158,201,0.95)) drop-shadow(0 0 135px rgba(235,92,157,0.95))!important;}
  .hero-photo-wrap::after{inset:-3px!important;padding:3px!important;border-radius:calc(38px + 3px) calc(38px + 3px) calc(186px + 3px) calc(38px + 3px)!important;opacity:0.82!important;filter:blur(16px) drop-shadow(0 0 100px rgba(255,151,197,0.82)) drop-shadow(0 0 135px rgba(232,91,154,0.68))!important;}
  .hero-photo-wrap{box-shadow:0 0 55px rgba(225,105,164,0.28)!important;}
  .brand-strip{margin-top:-3px!important;}
  .brand-set span{font-size:18px!important;}
}

main#top > section.hero:nth-of-type(1) > div.container.hero-grid > div.hero-copy.reveal:nth-of-type(1) > div.hero-story:nth-of-type(2){translate:0px 19px!important;height:auto!important}
main#top > section.hero:nth-of-type(1) > div.container.hero-grid > div.hero-copy.reveal:nth-of-type(1) > div.hero-facts:nth-of-type(4) > div.hero-fact:nth-of-type(1){translate:0px -35px!important}
main#top > section.hero:nth-of-type(1) > div.container.hero-grid > div.hero-copy.reveal:nth-of-type(1) > div.hero-facts:nth-of-type(4) > div.hero-fact:nth-of-type(2){translate:0px -35px!important}
main#top > section.hero:nth-of-type(1) > div.container.hero-grid > div.hero-copy.reveal:nth-of-type(1) > div.hero-facts:nth-of-type(4) > div.hero-fact:nth-of-type(3){translate:0px -35px!important}
main#top > section.hero:nth-of-type(1) > div.container.hero-grid > div.hero-copy.reveal:nth-of-type(1) > div.hero-actions:nth-of-type(3) > button.btn.btn-brand{translate:0px -20px!important}
main#top > section.hero:nth-of-type(1) > div.container.hero-grid > div.hero-copy.reveal:nth-of-type(1) > div.hero-actions:nth-of-type(3) > a.btn.btn-light{translate:0px -20px!important}
main#top > section.hero:nth-of-type(1) > div.container.hero-grid > div.hero-copy.reveal:nth-of-type(1) > div.hero-overline:nth-of-type(1) > span.dot:nth-of-type(1){border-radius:400px!important;opacity:0.7!important;background-color:#a76579!important}
section#reviews > div.container > div.reviews-marquee-shell.reveal:nth-of-type(3){border-radius:45px!important;opacity:1!important}
section#services > div.container.services-wrap > div.service-stack:nth-of-type(2) > article.service.reveal:nth-of-type(1){translate:0px 0px!important;width:1004px!important}
section#services > div.container.services-wrap > div.service-stack:nth-of-type(2) > article.service.reveal:nth-of-type(2){width:auto!important}
section#services > div.container.services-wrap > div.services-intro.reveal:nth-of-type(1){width:235px!important}
section#services > div.container.services-wrap > div.services-intro.reveal:nth-of-type(1) > h2.serif.section-display{background-color:transparent!important}
main#top > section.brand-strip:nth-of-type(2){translate:0px -30px!important}
main#top > section.hero:nth-of-type(1) > div.container.hero-grid{translate:0px -15px!important}


/* ===========================================================
   v8.6 - merged SERVICES + PRICE section
   Dark premium price shell + interactive service rows.
   =========================================================== */
.anchor-alias{position:absolute;transform:translateY(-110px);width:1px;height:1px;pointer-events:none;}
.legacy-price-slot{display:none!important;}
.section-services-price{position:relative;overflow:visible;}

@property --sp-neon-angle{
  syntax:"<angle>";
  inherits:false;
  initial-value:336deg;
}
@keyframes sp-neon-rotate{to{--sp-neon-angle:696deg;}}
@keyframes sp-dot-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(234,154,192,.12),0 0 8px rgba(243,171,207,.48);}
  50%{box-shadow:0 0 0 7px rgba(234,154,192,0),0 0 14px rgba(243,171,207,.84);}
}

.services-price-shell{
  --sp-neon-angle:336deg;
  position:relative;
  isolation:isolate;
  overflow:visible;
  border-radius:46px;
  color:#fff;
  background:
    radial-gradient(900px 520px at 100% 0%,rgba(169,101,121,.30),transparent 62%),
    radial-gradient(700px 420px at 0% 100%,rgba(125,76,94,.16),transparent 68%),
    #382b30;
  box-shadow:
    0 30px 76px rgba(31,18,23,.30),
    0 0 34px rgba(234,149,192,.20),
    0 0 58px rgba(234,149,192,.11);
}
.services-price-shell::after{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:1;
  padding:3px;
  border-radius:inherit;
  pointer-events:none;
  background:conic-gradient(from var(--sp-neon-angle),
    rgba(203,118,158,0) 0deg,
    rgba(214,122,167,.14) 10deg,
    rgba(236,150,194,.52) 22deg,
    rgba(251,176,214,.96) 36deg,
    rgba(255,220,236,1) 48deg,
    rgba(255,248,251,1) 56deg,
    rgba(255,220,236,1) 64deg,
    rgba(251,176,214,.96) 72deg,
    rgba(236,150,194,.52) 86deg,
    rgba(214,122,167,.14) 100deg,
    rgba(203,118,158,0) 112deg,
    rgba(203,118,158,0) 180deg,
    rgba(214,122,167,.14) 190deg,
    rgba(236,150,194,.52) 202deg,
    rgba(251,176,214,.96) 216deg,
    rgba(255,220,236,1) 228deg,
    rgba(255,248,251,1) 236deg,
    rgba(255,220,236,1) 244deg,
    rgba(251,176,214,.96) 252deg,
    rgba(236,150,194,.52) 266deg,
    rgba(214,122,167,.14) 280deg,
    rgba(203,118,158,0) 292deg,
    rgba(203,118,158,0) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  filter:
    drop-shadow(0 0 6px rgba(255,248,251,.96))
    drop-shadow(0 0 18px rgba(247,176,213,.94))
    drop-shadow(0 0 36px rgba(228,116,173,.82));
  animation:sp-neon-rotate 11.8s linear infinite;
}
.sp-head,.sp-body{position:relative;z-index:3;}
.sp-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,430px);
  gap:42px;
  align-items:end;
  padding:48px 50px 34px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.sp-kicker{
  display:flex;align-items:center;gap:10px;
  margin-bottom:10px;
  color:#e8c3cf;
  font-size:11px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;
}
.sp-kicker-dot,.sp-group-dot{
  width:9px;height:9px;border-radius:50%;background:#dfa8ba;
  animation:sp-dot-pulse 2.2s ease-in-out infinite;
}
.sp-title{margin:0;font-size:clamp(58px,6.5vw,94px);line-height:.95;font-weight:400;letter-spacing:-.045em;}
.sp-head-side{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding-bottom:4px;}
.sp-head-side p{margin:0;color:rgba(255,255,255,.64);font-size:14px;line-height:1.7;max-width:390px;}
.sp-dikidi-link{
  display:inline-flex;align-items:center;gap:10px;
  color:#f5dce4;font-size:12px;font-weight:800;letter-spacing:.03em;
  border-bottom:1px solid rgba(245,220,228,.28);padding-bottom:4px;
  transition:color .3s ease,border-color .3s ease,transform .3s ease;
}
.sp-dikidi-link:hover{color:#fff;border-color:rgba(255,255,255,.72);transform:translateX(2px);}
.sp-body{padding:30px 50px 44px;}
.sp-group+.sp-group{margin-top:34px;}
.sp-group-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:8px;}
.sp-group-head>p{margin:0;color:rgba(255,255,255,.46);font-size:12px;}
.sp-group-pill{
  display:inline-flex;align-items:center;gap:11px;
  min-height:40px;padding:0 16px;
  border:1px solid rgba(255,255,255,.14);border-radius:999px;
  background:rgba(255,255,255,.055);color:#f1d6de;
  font-size:11px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;
}
.sp-service{
  position:relative;overflow:hidden;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 110px 112px 128px;
  gap:18px;align-items:center;
  min-height:110px;padding:18px 14px;
  border-bottom:1px solid rgba(255,255,255,.10);
  border-radius:0;
  transition:transform .55s cubic-bezier(.16,1,.3,1),border-radius .55s ease,background .55s ease,box-shadow .55s ease;
}
.sp-service::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:0;
  background:linear-gradient(110deg,rgba(255,255,255,.095),rgba(197,149,164,.075));
  transition:opacity .5s ease;
}
.sp-service::after{
  content:"";position:absolute;top:-70%;bottom:-70%;left:-34%;width:18%;
  transform:skewX(-18deg);opacity:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);
}
.sp-service:hover{
  transform:translateY(-2px) scale(1.008);
  border-radius:22px;
  background:rgba(255,255,255,.025);
  box-shadow:0 18px 38px rgba(17,9,12,.17),0 0 0 1px rgba(255,255,255,.06) inset;
}
.sp-service:hover::before{opacity:1;}
.sp-service:hover::after{left:116%;opacity:1;transition:left 1.25s var(--ease),opacity .25s ease;}
.sp-no{font-family:"Prata",Georgia,serif;color:#d49aae;font-size:13px;}
.sp-main h3{margin:0 0 7px;font-size:clamp(18px,1.55vw,24px);line-height:1.18;letter-spacing:-.025em;color:#fff;}
.sp-main p{margin:0;max-width:620px;color:rgba(255,255,255,.49);font-size:12px;line-height:1.55;}
.sp-time{color:rgba(255,255,255,.48);font-size:11px;line-height:1.35;text-align:right;}
.sp-price{font-family:"Prata",Georgia,serif;font-size:21px;white-space:nowrap;text-align:right;color:#fff;}
.sp-book{
  height:46px;padding:0 14px;border-radius:999px;
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.075);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  cursor:pointer;font:800 11px/1 Inter,system-ui,sans-serif;
  transition:transform .32s ease,background .32s ease,border-color .32s ease,box-shadow .32s ease;
}
.sp-book b{font-size:13px;font-weight:600;color:#eab5c6;}
.sp-book:hover{transform:translateY(-1px);background:#fff;color:#4b343d;border-color:#fff;box-shadow:0 12px 28px rgba(17,9,12,.20);}
.sp-book:hover b{color:#a76579;}
.sp-more{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin-top:30px;padding:22px 24px;
  border:1px solid rgba(255,255,255,.11);border-radius:24px;
  background:linear-gradient(110deg,rgba(255,255,255,.055),rgba(167,101,121,.085));
}
.sp-more-copy{display:grid;gap:4px;}
.sp-more-copy span{color:#d7a9b8;font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;}
.sp-more-copy strong{font-family:"Prata",Georgia,serif;font-size:20px;font-weight:400;color:#fff;}
.sp-more-copy p{margin:0;color:rgba(255,255,255,.48);font-size:11px;}
.sp-more-link{
  flex:0 0 auto;height:48px;padding:0 20px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  color:#4b343d;background:#f4e8eb;font-size:11px;font-weight:900;
  box-shadow:0 12px 30px rgba(20,10,14,.16);transition:transform .3s ease,background .3s ease;
}
.sp-more-link:hover{transform:translateY(-1px);background:#fff;}

@media(max-width:1279px){
  .sp-head{grid-template-columns:1fr;gap:20px;}
  .sp-service{grid-template-columns:36px minmax(0,1fr) 100px 105px;}
  .sp-book{grid-column:2/-1;justify-self:end;min-width:128px;}
}
@media(max-width:1279px){
  .services-price-shell{border-radius:30px;}
  .services-price-shell::after{inset:-1px;padding:2px;filter:drop-shadow(0 0 4px rgba(255,248,251,.96)) drop-shadow(0 0 12px rgba(247,176,213,.88)) drop-shadow(0 0 24px rgba(228,116,173,.68));}
  .sp-head{padding:28px 22px 24px;}
  .sp-title{font-size:clamp(46px,14vw,64px);}
  .sp-head-side p{font-size:13px;}
  .sp-body{padding:22px 18px 28px;}
  .sp-group-head{align-items:flex-start;flex-direction:column;gap:8px;}
  .sp-group-head>p{padding-left:4px;}
  .sp-service{grid-template-columns:30px minmax(0,1fr) auto;padding:18px 6px;gap:12px;}
  .sp-main{grid-column:2/4;}
  .sp-time{grid-column:2;text-align:left;margin-top:3px;}
  .sp-price{grid-column:3;font-size:20px;}
  .sp-book{grid-column:2/4;width:100%;justify-self:stretch;margin-top:5px;}
  .sp-more{flex-direction:column;align-items:stretch;padding:20px;}
  .sp-more-link{width:100%;}
}
@media(prefers-reduced-motion:reduce){.services-price-shell::after,.sp-kicker-dot,.sp-group-dot{animation:none!important;}}


/* ===========================================================
   v8.7 - complete DIKIDI services + reliable booking hitbox
   Adds lashes/add-ons, restores calendar icon, and keeps the shine
   purely decorative so it can never intercept a click.
   =========================================================== */

.sp-service::before,
.sp-service::after{
  pointer-events:none!important;
}

.sp-service::before{z-index:0!important;}
.sp-service::after{z-index:1!important;}
.sp-service>*{position:relative;z-index:2;}

.sp-book{
  position:relative!important;
  z-index:8!important;
  pointer-events:auto!important;
  isolation:isolate;
  user-select:none;
  touch-action:manipulation;
}

.sp-book::before,
.sp-book::after{
  pointer-events:none!important;
}

.sp-book-icon{
  width:17px;
  height:17px;
  flex:0 0 17px;
  fill:none;
  stroke:#eab5c6;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:stroke .28s ease,transform .28s ease;
}

.sp-book:hover .sp-book-icon{
  stroke:#a76579;
  transform:translateY(-.5px);
}

.sp-note{
  display:inline-block;
  margin-left:8px;
  padding:4px 8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  color:#dcb0bf;
  background:rgba(255,255,255,.045);
  font:800 9px/1 Inter,system-ui,sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
  vertical-align:middle;
  white-space:nowrap;
}

/* Avoid hover geometry moving the clickable button away from the pointer. */
.sp-service:hover{
  transform:none!important;
}

.sp-service:hover::after{
  transition:left .92s var(--ease),opacity .18s ease!important;
}

@media(max-width:1279px){
  .sp-note{display:block;width:max-content;margin:7px 0 0;}
  .sp-book-icon{width:18px;height:18px;flex-basis:18px;}
}


/* ===========================================================
   v8.8 - services/premium markers cleanup
   - remove the KOSHKOBROW MENU eyebrow
   - reorder groups: brows, lashes, complexes, extra
   - replace pulsing dots with more premium static jewel markers
   =========================================================== */

.sp-title-wrap {
  gap: 0 !important;
}

.sp-kicker {
  display: none !important;
}

/* premium jewel marker system instead of pulsing dots */
.hero-overline .dot,
.sp-kicker-dot,
.sp-group-dot,
.price-category-dot,
.hero-dot,
.kicker-dot,
.hero-badge-dot,
.about-dot,
.persona-dot,
.hero-kicker .dot,
.hero-kicker-dot,
.eyebrow .dot,
.kicker .dot,
.label-dot,
.hero-lead .dot {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 12px !important;
  height: 12px !important;
  min-width: 12px !important;
  border-radius: 3px !important;
  background: linear-gradient(135deg, rgba(239,197,212,.96), rgba(177,109,132,.92)) !important;
  transform: rotate(45deg) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.34) inset,
    0 6px 16px rgba(173,108,128,.18),
    0 0 14px rgba(234,163,191,.16) !important;
  animation: none !important;
  overflow: visible;
}

.hero-overline .dot::before,
.sp-kicker-dot::before,
.sp-group-dot::before,
.price-category-dot::before,
.hero-dot::before,
.kicker-dot::before,
.hero-badge-dot::before,
.about-dot::before,
.persona-dot::before,
.hero-kicker .dot::before,
.hero-kicker-dot::before,
.eyebrow .dot::before,
.kicker .dot::before,
.label-dot::before,
.hero-lead .dot::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 2px;
  background: rgba(255,248,251,.96);
  box-shadow: 0 0 8px rgba(255,255,255,.42);
}

.hero-overline .dot::after,
.sp-kicker-dot::after,
.sp-group-dot::after,
.price-category-dot::after,
.hero-dot::after,
.kicker-dot::after,
.hero-badge-dot::after,
.about-dot::after,
.persona-dot::after,
.hero-kicker .dot::after,
.hero-kicker-dot::after,
.eyebrow .dot::after,
.kicker .dot::after,
.label-dot::after,
.hero-lead .dot::after {
  content: none !important;
  animation: none !important;
}

.hero-overline,
.sp-group-pill {
  gap: 10px !important;
}

.sp-group-pill {
  padding: 10px 16px 10px 14px !important;
  letter-spacing: .12em !important;
}

.sp-group-head > p {
  color: rgba(255,255,255,.52) !important;
}

@media (max-width: 1279px) {
  .hero-overline .dot,
  .sp-kicker-dot,
  .sp-group-dot,
  .price-category-dot,
  .hero-dot,
  .kicker-dot,
  .hero-badge-dot,
  .about-dot,
  .persona-dot,
  .hero-kicker .dot,
  .hero-kicker-dot,
  .eyebrow .dot,
  .kicker .dot,
  .label-dot,
  .hero-lead .dot {
    width: 10px !important;
    height: 10px !important;
    min-width: 10px !important;
    border-radius: 2px !important;
  }

  .hero-overline .dot::before,
  .sp-kicker-dot::before,
  .sp-group-dot::before,
  .price-category-dot::before,
  .hero-dot::before,
  .kicker-dot::before,
  .hero-badge-dot::before,
  .about-dot::before,
  .persona-dot::before,
  .hero-kicker .dot::before,
  .hero-kicker-dot::before,
  .eyebrow .dot::before,
  .kicker .dot::before,
  .label-dot::before,
  .hero-lead .dot::before {
    width: 4px;
    height: 4px;
    border-radius: 1.5px;
  }
}


/* ===========================================================
   v8.9 - services title spacing + category icons
   =========================================================== */

.sp-title {
  letter-spacing: .012em !important;
  line-height: .98 !important;
}

.sp-group-pill {
  gap: 10px !important;
  padding: 0 18px 0 14px !important;
}

.sp-group-pill > span:last-child {
  display: inline-block;
  letter-spacing: .13em;
}

.sp-group-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 999px;
  color: #efc9d6;
  background: linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.04));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12), 0 10px 22px rgba(16,8,12,.18);
}

.sp-group-icon svg {
  width: 16px;
  height: 16px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sp-group-icon-combo svg { width: 17px; height: 17px; }
.sp-group-icon-extra svg { width: 15px; height: 15px; }

.sp-group-pill .sp-group-dot {
  display: none !important;
}

@media (max-width: 1279px) {
  .sp-title {
    letter-spacing: .008em !important;
  }

  .sp-group-pill {
    padding: 0 16px 0 12px !important;
    gap: 8px !important;
  }

  .sp-group-icon {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
  }

  .sp-group-icon svg {
    width: 14px;
    height: 14px;
  }
}


/* ===========================================================
   v9.0 - services polish
   - slightly larger category markers
   - remove DIKIDI head link
   - fix service numbering and make it elegant
   - make title a bit smaller and visually highlighted
   =========================================================== */

.sp-dikidi-link {
  display: none !important;
}

.sp-head {
  gap: 34px !important;
}

.sp-title-wrap {
  display: inline-flex !important;
  align-items: center;
  max-width: max-content;
  padding: 10px 18px 14px !important;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 16px 34px rgba(22,12,18,.12);
}

.sp-title {
  font-size: clamp(52px, 5.9vw, 84px) !important;
  letter-spacing: .016em !important;
  line-height: .98 !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.06);
}

.sp-title-wrap::after {
  content: "";
  display: block;
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 10px;
  height: 1px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(241,181,205,.0), rgba(241,181,205,.55), rgba(255,255,255,.72), rgba(241,181,205,.55), rgba(241,181,205,.0));
  opacity: .8;
}

.sp-group-icon {
  width: 32px !important;
  height: 32px !important;
  flex-basis: 32px !important;
}

.sp-group-icon svg {
  width: 18px !important;
  height: 18px !important;
  stroke-width: 1.8 !important;
}

.sp-group-icon-extra svg {
  width: 16px !important;
  height: 16px !important;
}

.sp-service {
  grid-template-columns: 58px minmax(0,1fr) 110px 112px 128px !important;
}

.sp-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  font-family: "Prata", Georgia, serif;
  font-size: 18px !important;
  line-height: 1;
  color: #efc0d0 !important;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10), 0 10px 26px rgba(18,9,14,.18);
  align-self: center;
}

.sp-service:hover .sp-no {
  color: #fff4f8 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18), 0 12px 30px rgba(18,9,14,.24), 0 0 18px rgba(236,150,194,.15);
}

@media (max-width:1279px) {
  .sp-service {
    grid-template-columns: 54px minmax(0,1fr) 100px 105px !important;
  }
}

@media (max-width: 1279px) {
  .sp-title-wrap {
    padding: 8px 14px 12px !important;
    border-radius: 20px;
  }

  .sp-title {
    font-size: clamp(42px, 11vw, 58px) !important;
    letter-spacing: .012em !important;
  }

  .sp-title-wrap::after {
    left: 14px;
    right: 14px;
    bottom: 8px;
  }

  .sp-group-icon {
    width: 28px !important;
    height: 28px !important;
    flex-basis: 28px !important;
  }

  .sp-group-icon svg {
    width: 16px !important;
    height: 16px !important;
  }

  .sp-service {
    grid-template-columns: 46px minmax(0,1fr) auto !important;
    gap: 12px !important;
    align-items: start !important;
  }

  .sp-no {
    width: 36px;
    height: 36px;
    font-size: 16px !important;
    align-self: start;
    margin-top: 2px;
  }

  .sp-main {
    grid-column: 2 / 4;
  }

  .sp-time {
    grid-column: 2;
    text-align: left;
    margin-top: 4px;
  }

  .sp-price {
    grid-column: 3;
    text-align: right;
    align-self: center;
  }
}


/* ===========================================================
   v9.1 - services header and labels cleanup
   1) better-centered service numbering
   2) category labels as two bubbles: title left, icon right
   3) title block lighter and centered
   4) remove the lower divider line under the heading
   5) center the supporting copy properly
   =========================================================== */

.sp-head {
  grid-template-columns: 1fr !important;
  justify-items: center !important;
  text-align: center !important;
  gap: 16px !important;
  padding: 34px 42px 24px !important;
  border-bottom: none !important;
}

.sp-title-wrap {
  position: relative;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: min(100%, 980px);
  margin: 0 auto !important;
  padding: 12px 28px 16px !important;
  border-radius: 32px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.018)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.07),
    0 14px 32px rgba(18,10,15,.10) !important;
}

.sp-title {
  display: block !important;
  margin: 0 auto !important;
  text-align: center !important;
  font-size: clamp(50px, 5.6vw, 82px) !important;
  letter-spacing: .02em !important;
  line-height: .96 !important;
}

.sp-title-wrap::after {
  left: 28px !important;
  right: 28px !important;
  bottom: 10px !important;
}

.sp-head-side {
  align-items: center !important;
  padding-bottom: 0 !important;
  gap: 8px !important;
}

.sp-head-side p {
  max-width: 1279px !important;
  text-align: center !important;
  margin: 0 auto !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: rgba(255,255,255,.66) !important;
}

.sp-group-head {
  align-items: center !important;
}

/* two-bubble category pill system */
.sp-group-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

.sp-group-pill > span:last-child {
  order: 1;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px;
  padding: 0 18px !important;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.13);
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
  color: #f2d8df;
  letter-spacing: .14em !important;
}

.sp-group-icon {
  order: 2;
  width: 44px !important;
  height: 44px !important;
  flex: 0 0 44px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.035)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.14),
    0 10px 24px rgba(16,8,12,.20) !important;
}

.sp-group-icon svg {
  width: 19px !important;
  height: 19px !important;
}

/* cleaner centered numbering */
.sp-no {
  justify-self: center !important;
  align-self: center !important;
  text-align: center !important;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: 'tnum' 1, 'lnum' 1;
  letter-spacing: 0 !important;
  padding-left: 1px;
}

/* tweak vertical centering on service rows */
.sp-service {
  align-items: center !important;
}

@media (max-width:1279px) {
  .sp-head {
    padding: 30px 26px 22px !important;
  }

  .sp-title-wrap {
    width: min(100%, 860px);
  }

  .sp-title {
    font-size: clamp(46px, 7vw, 74px) !important;
  }
}

@media (max-width: 1279px) {
  .sp-head {
    padding: 24px 18px 18px !important;
    gap: 12px !important;
  }

  .sp-title-wrap {
    width: 100%;
    padding: 10px 16px 14px !important;
    border-radius: 24px !important;
  }

  .sp-title {
    font-size: clamp(40px, 10.4vw, 54px) !important;
    letter-spacing: .016em !important;
  }

  .sp-title-wrap::after {
    left: 16px !important;
    right: 16px !important;
    bottom: 8px !important;
  }

  .sp-head-side p {
    font-size: 14px !important;
    line-height: 1.65 !important;
  }

  .sp-group-pill {
    gap: 8px !important;
  }

  .sp-group-pill > span:last-child {
    min-height: 40px;
    padding: 0 16px !important;
  }

  .sp-group-icon {
    width: 40px !important;
    height: 40px !important;
    flex-basis: 40px !important;
  }

  .sp-group-icon svg {
    width: 17px !important;
    height: 17px !important;
  }

  .sp-no {
    width: 38px !important;
    height: 38px !important;
    font-size: 16px !important;
    padding-left: 1px !important;
  }
}


/* ===========================================================
   v9.2 - services header layout + numbering + invisible dividers
   =========================================================== */

/* header: title left, copy right */
.sp-head {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr) !important;
  align-items: center !important;
  justify-items: stretch !important;
  text-align: left !important;
  gap: 28px !important;
  padding: 36px 42px 16px !important;
}

.sp-title-wrap {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  justify-content: flex-start !important;
}

.sp-title {
  margin: 0 !important;
  text-align: left !important;
  font-size: clamp(48px, 5.1vw, 76px) !important;
  letter-spacing: .012em !important;
  line-height: .94 !important;
}

.sp-title-wrap::after {
  content: none !important;
}

.sp-head-side {
  align-items: flex-end !important;
  justify-content: center !important;
}

.sp-head-side p {
  max-width: 520px !important;
  margin: 0 0 0 auto !important;
  text-align: right !important;
  font-size: 15px !important;
  line-height: 1.72 !important;
}

/* service row dividers off */
.sp-service {
  border-bottom: none !important;
}

/* numbering perfectly centered */
.sp-no {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: center !important;
  align-self: center !important;
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: center !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  padding-left: 0 !important;
  transform: translateY(-1px) !important;
}

@media (max-width:1279px) {
  .sp-head {
    grid-template-columns: 1fr !important;
    justify-items: start !important;
    gap: 12px !important;
    padding: 30px 26px 14px !important;
  }

  .sp-head-side {
    align-items: flex-start !important;
  }

  .sp-head-side p {
    max-width: 720px !important;
    margin: 0 !important;
    text-align: left !important;
  }
}

@media (max-width: 1279px) {
  .sp-head {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 24px 18px 12px !important;
  }

  .sp-title {
    font-size: clamp(38px, 9.8vw, 52px) !important;
    line-height: .96 !important;
  }

  .sp-head-side,
  .sp-head-side p {
    align-items: flex-start !important;
    text-align: left !important;
    margin: 0 !important;
  }

  .sp-no {
    width: 38px !important;
    height: 38px !important;
    font-size: 16px !important;
    transform: translateY(0) !important;
  }
}


/* ===========================================================
   v9.3 - restore the single header divider requested by user
   One clean line under BOTH the left title and the right copy.
   =========================================================== */

.sp-head {
  position: relative !important;
  padding-bottom: 28px !important;
}

.sp-head::after {
  content: "" !important;
  position: absolute !important;
  left: 42px !important;
  right: 42px !important;
  bottom: 0 !important;
  height: 1px !important;
  border-radius: 999px !important;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,.04),
    rgba(238,186,208,.30) 12%,
    rgba(255,255,255,.22) 50%,
    rgba(238,186,208,.30) 88%,
    rgba(255,255,255,.04)
  ) !important;
  box-shadow: 0 0 8px rgba(236,157,193,.08) !important;
  pointer-events: none !important;
}

@media (max-width:1279px) {
  .sp-head {
    padding-bottom: 24px !important;
  }
  .sp-head::after {
    left: 26px !important;
    right: 26px !important;
  }
}

@media (max-width: 1279px) {
  .sp-head {
    padding-bottom: 20px !important;
  }
  .sp-head::after {
    left: 18px !important;
    right: 18px !important;
  }
}


/* ===========================================================
   v9.4 - baked editor adjustments from user
   =========================================================== */
@media (min-width:1280px){
  .hero{padding-top:170px!important;padding-bottom:80px!important;}
  .hero-grid{gap:51px!important;grid-template-columns:minmax(0,1fr) minmax(360px,495px)!important;}
  .hero-brand-main{font-size:105px!important;}
  .hero-overline{margin-bottom:32px!important;}
  .hero-story{max-width:710px!important;padding:40px 24px!important;}
  .hero-story p{font-size:20px!important;}
  .hero-actions{margin-top:126px!important;}
  .hero-facts{padding-top:60px!important;}
  .hero-photo-wrap,.hero-photo-wrap.reveal{max-width:495px!important;height:710px!important;margin-top:9px!important;border-radius:38px 38px 186px 38px!important;}
  .hero-photo-shell{border-radius:38px 38px 186px 38px!important;}
  .hero-photo{object-position:50% 0%!important;}
  .hero-photo-wrap::before{inset:-2px!important;padding:2px!important;border-radius:calc(38px + 2px) calc(38px + 2px) calc(186px + 2px) calc(38px + 2px)!important;filter:drop-shadow(0 0 3px rgba(255,250,252,.98)) drop-shadow(0 0 58px rgba(255,158,201,0.95)) drop-shadow(0 0 135px rgba(235,92,157,0.95))!important;}
  .hero-photo-wrap::after{inset:-3px!important;padding:3px!important;border-radius:calc(38px + 3px) calc(38px + 3px) calc(186px + 3px) calc(38px + 3px)!important;opacity:0.82!important;filter:blur(16px) drop-shadow(0 0 100px rgba(255,151,197,0.82)) drop-shadow(0 0 135px rgba(232,91,154,0.68))!important;}
  .hero-photo-wrap{box-shadow:0 0 55px rgba(225,105,164,0.28)!important;}
  .brand-strip{margin-top:-3px!important;}
  .brand-set span{font-size:18px!important;}
}

section#services > div.container > div.services-price-shell.reveal > div.sp-head:nth-of-type(1) > div.sp-head-side:nth-of-type(2) > p{border-radius:0px!important;opacity:1!important;box-shadow:none!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-head:nth-of-type(1){translate:0px 0px!important;width:1351px!important;height:155px!important;font-size:16px!important;line-height:1.2!important;font-weight:500!important;border-radius:0px!important;opacity:1!important;box-shadow:none!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(1) > div.sp-group-head > p{translate:0px 10px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(2) > div.sp-group-head > p{translate:0px 10px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(3) > div.sp-group-head > p{translate:0px 10px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(4) > div.sp-group-head > p{translate:0px 10px!important}
section#works{translate:0px -48px!important}


/* ===========================================================
   v9.5 - baked editor settings from user + true between-service separators
   =========================================================== */

@media (min-width:1280px){
  .hero{padding-top:170px!important;padding-bottom:80px!important;}
  .hero-grid{gap:51px!important;grid-template-columns:minmax(0,1fr) minmax(360px,495px)!important;}
  .hero-brand-main{font-size:105px!important;}
  .hero-overline{margin-bottom:32px!important;}
  .hero-story{max-width:710px!important;padding:40px 24px!important;}
  .hero-story p{font-size:20px!important;}
  .hero-actions{margin-top:126px!important;}
  .hero-facts{padding-top:60px!important;}
  .hero-photo-wrap,.hero-photo-wrap.reveal{max-width:495px!important;height:710px!important;margin-top:9px!important;border-radius:38px 38px 186px 38px!important;}
  .hero-photo-shell{border-radius:38px 38px 186px 38px!important;}
  .hero-photo{object-position:50% 0%!important;}
  .hero-photo-wrap::before{inset:-2px!important;padding:2px!important;border-radius:calc(38px + 2px) calc(38px + 2px) calc(186px + 2px) calc(38px + 2px)!important;filter:drop-shadow(0 0 3px rgba(255,250,252,.98)) drop-shadow(0 0 58px rgba(255,158,201,0.95)) drop-shadow(0 0 135px rgba(235,92,157,0.95))!important;}
  .hero-photo-wrap::after{inset:-3px!important;padding:3px!important;border-radius:calc(38px + 3px) calc(38px + 3px) calc(186px + 3px) calc(38px + 3px)!important;opacity:0.82!important;filter:blur(16px) drop-shadow(0 0 100px rgba(255,151,197,0.82)) drop-shadow(0 0 135px rgba(232,91,154,0.68))!important;}
  .hero-photo-wrap{box-shadow:0 0 55px rgba(225,105,164,0.28)!important;}
  .brand-strip{margin-top:-3px!important;}
  .brand-set span{font-size:18px!important;}
}

section#services > div.container > div.services-price-shell.reveal > div.sp-head:nth-of-type(1) > div.sp-head-side:nth-of-type(2) > p{translate:23px 0px!important;border-radius:0px!important;opacity:1!important;box-shadow:none!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-head:nth-of-type(1){translate:0px 0px!important;width:1318px!important;height:155px!important;font-size:16px!important;line-height:1.2!important;font-weight:500!important;border-radius:0px!important;opacity:1!important;box-shadow:none!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(1) > div.sp-group-head > p{translate:0px 10px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(2) > div.sp-group-head > p{translate:0px 10px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(3) > div.sp-group-head > p{translate:0px 10px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(4) > div.sp-group-head > p{translate:0px 10px!important}
section#works{translate:0px -48px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(3) > article.sp-service:nth-of-type(2) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(3) > article.sp-service:nth-of-type(3) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(4) > article.sp-service > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(3) > article.sp-service:nth-of-type(1) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(2) > article.sp-service:nth-of-type(3) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(2) > article.sp-service:nth-of-type(2) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(2) > article.sp-service:nth-of-type(1) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(1) > article.sp-service:nth-of-type(2) > div.sp-time:nth-of-type(3){translate:10px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(1) > article.sp-service:nth-of-type(1) > div.sp-time:nth-of-type(3){translate:10px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(4) > article.sp-service > div.sp-no:nth-of-type(1){translate:0px 0px!important;height:44px!important;padding-top:3px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(3) > article.sp-service:nth-of-type(3) > div.sp-no:nth-of-type(1){padding-top:3px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(3) > article.sp-service:nth-of-type(2) > div.sp-no:nth-of-type(1){padding-top:3px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(3) > article.sp-service:nth-of-type(1) > div.sp-no:nth-of-type(1){padding-top:3px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(2) > article.sp-service:nth-of-type(3) > div.sp-no:nth-of-type(1){padding-top:3px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(2) > article.sp-service:nth-of-type(2) > div.sp-no:nth-of-type(1){padding-top:3px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(2) > article.sp-service:nth-of-type(1) > div.sp-no:nth-of-type(1){padding-top:3px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(1) > article.sp-service:nth-of-type(2) > div.sp-no:nth-of-type(1){padding-top:3px!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(1) > article.sp-service:nth-of-type(1) > div.sp-no:nth-of-type(1){padding-top:3px!important}

/* True separators live in the gap between rows, not as a border on a service. */
.sp-service-separator{
  height:1px;
  width:calc(100% - 56px);
  margin:8px auto;
  background:linear-gradient(90deg,
    rgba(255,255,255,0),
    rgba(244,190,211,.16) 12%,
    rgba(255,255,255,.16) 50%,
    rgba(244,190,211,.16) 88%,
    rgba(255,255,255,0));
  box-shadow:0 0 10px rgba(224,133,173,.05);
  pointer-events:none;
}

.sp-service{border-bottom:none!important;}

@media(max-width:1279px){
  .sp-service-separator{
    width:calc(100% - 20px);
    margin:6px auto;
    opacity:.8;
  }
}


/* ===========================================================
   v9.6 - separators ABOVE services, not between/below them
   =========================================================== */

/* kill the v9.5 inserted gap separators completely */
.sp-service-separator{
  display:none!important;
}

/* each service gets its own subtle line on the TOP edge */
.sp-service{
  border-bottom:none!important;
  border-top:1px solid transparent!important;
  border-image:linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(232,164,194,.10) 7%,
    rgba(247,210,224,.22) 24%,
    rgba(255,255,255,.20) 50%,
    rgba(247,210,224,.22) 76%,
    rgba(232,164,194,.10) 93%,
    rgba(255,255,255,0) 100%) 1!important;
}

/* keep the first line a little softer after a category heading */
.sp-group > .sp-service:first-of-type{
  border-image:linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(232,164,194,.07) 9%,
    rgba(255,255,255,.15) 50%,
    rgba(232,164,194,.07) 91%,
    rgba(255,255,255,0) 100%) 1!important;
}

@media(max-width:1279px){
  .sp-service{
    border-top-color:rgba(255,255,255,.10)!important;
  }
}


/* ===========================================================
   v9.7 - separators only BETWEEN services inside a group
   Keep the single divider under "Услуги и прайс"
   Remove lines directly under group headers / descriptions
   =========================================================== */

/* reset v9.6 top-edge separators */
.sp-group > .sp-service{
  border-top:none !important;
  border-image:none !important;
}

/* add separators only between sibling services */
.sp-group > .sp-service + .sp-service{
  border-top:1px solid transparent !important;
  border-image:linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(232,164,194,.10) 7%,
    rgba(247,210,224,.22) 24%,
    rgba(255,255,255,.20) 50%,
    rgba(247,210,224,.22) 76%,
    rgba(232,164,194,.10) 93%,
    rgba(255,255,255,0) 100%) 1 !important;
}

@media(max-width:1279px){
  .sp-group > .sp-service + .sp-service{
    border-top-color: rgba(255,255,255,.10) !important;
  }
}


/* ===========================================================
   v9.8 - clearly visible separators BETWEEN services only
   Keep header divider under "Услуги и прайс" untouched.
   =========================================================== */

/* absolutely no separator immediately below a category heading */
.sp-group > .sp-service:first-of-type{
  border-top:none !important;
  border-image:none !important;
  box-shadow:none;
}

/* visible separator only before the 2nd/3rd/etc service in each category */
.sp-group > .sp-service + .sp-service{
  position:relative;
  border-top:1px solid rgba(239,190,211,.28) !important;
  border-image:none !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 -7px 16px rgba(220,132,172,.035) !important;
}

/* keep separator visible even while the row is hovered */
.sp-group > .sp-service + .sp-service:hover{
  border-top-color:rgba(248,207,224,.38) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 -7px 18px rgba(225,137,178,.055),
    0 18px 38px rgba(17,9,12,.17),
    0 0 0 1px rgba(255,255,255,.06) inset !important;
}

@media(max-width:1279px){
  .sp-group > .sp-service + .sp-service{
    border-top-color:rgba(239,190,211,.24) !important;
  }
}


/* ===========================================================
   v9.9 - real DOM dividers between services
   These are actual elements, not borders/pseudo-elements, so they
   remain visible regardless of row hover/background effects.
   =========================================================== */

/* disable all legacy service border separators */
.sp-group > .sp-service,
.sp-group > .sp-service + .sp-service,
.sp-group > .sp-service:hover,
.sp-group > .sp-service + .sp-service:hover {
  border-top: none !important;
  border-bottom: none !important;
  border-image: none !important;
}

/* explicit separator between services only */
.sp-service-divider-v99 {
  display: block !important;
  position: relative;
  z-index: 4;
  width: calc(100% - 40px);
  height: 1px;
  margin: 0 auto;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(228,155,187,.32) 8%,
    rgba(247,206,224,.62) 24%,
    rgba(255,239,246,.72) 50%,
    rgba(247,206,224,.62) 76%,
    rgba(228,155,187,.32) 92%,
    rgba(255,255,255,0) 100%
  );
  box-shadow:
    0 0 6px rgba(243,183,209,.16),
    0 0 14px rgba(217,128,168,.08);
  opacity: .9;
  pointer-events: none;
}

@media (max-width: 1279px) {
  .sp-service-divider-v99 {
    width: calc(100% - 16px);
    opacity: .82;
  }
}


/* ===========================================================
   v10.0 - only 4 section dividers:
   1) between header and brows
   2) between 02 and lashes
   3) between 05 and combo
   4) between 08 and extra
   =========================================================== */

/* disable all previous per-service divider systems */
.sp-group > .sp-service + .sp-service,
.sp-group > .sp-service + .sp-service:hover,
.sp-service-divider-v99,
.sp-service-separator {
  border-top: none !important;
  border-image: none !important;
  display: none !important;
  box-shadow: none !important;
}

/* the only intended dividers */
.sp-boundary-divider {
  width: 100%;
  height: 1px;
  margin: 14px 0 18px;
  border: 0;
  background: linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(239,195,214,.16) 6%,
    rgba(248,223,233,.34) 22%,
    rgba(255,255,255,.26) 50%,
    rgba(248,223,233,.34) 78%,
    rgba(239,195,214,.16) 94%,
    rgba(255,255,255,0) 100%);
  box-shadow:
    0 0 10px rgba(235,152,188,.08),
    0 0 18px rgba(235,152,188,.05);
}

/* keep spacing clean around groups */
.sp-group {
  margin-top: 0 !important;
}

.sp-group-head {
  padding-top: 0 !important;
}

@media (max-width: 1279px) {
  .sp-boundary-divider {
    margin: 10px 0 14px;
    background: linear-gradient(90deg,
      rgba(255,255,255,0) 0%,
      rgba(248,223,233,.24) 9%,
      rgba(255,255,255,.24) 50%,
      rgba(248,223,233,.24) 91%,
      rgba(255,255,255,0) 100%);
  }
}


/* ===========================================================
   v10.1 - remove duplicate divider under services header
   Keep sp-head::after as the ONLY divider before Brows.
   Keep boundary dividers only before Lashes, Complexes, Extra.
   =========================================================== */

.sp-head + .sp-body > .sp-boundary-divider:first-child {
  display: none !important;
}


/* ===========================================================
   v10.2 - clean category boundaries + editorial works gallery
   =========================================================== */

/* Selected works — a light editorial counterpoint to the dark price shell. */
.works-v102 {
  position: relative;
  padding-top: 96px;
  padding-bottom: 82px;
}

.works-v102-shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 44px;
  border: 1px solid rgba(255,255,255,.88);
  border-radius: 52px;
  background:
    radial-gradient(circle at 88% 0%, rgba(222,139,172,.15), transparent 34%),
    radial-gradient(circle at 4% 94%, rgba(255,255,255,.76), transparent 30%),
    linear-gradient(145deg, rgba(255,252,252,.79), rgba(245,230,234,.66));
  box-shadow:
    0 36px 90px rgba(87,51,64,.13),
    0 10px 30px rgba(126,77,96,.07),
    inset 0 1px 0 rgba(255,255,255,.94);
  backdrop-filter: blur(22px) saturate(1.08);
  -webkit-backdrop-filter: blur(22px) saturate(1.08);
}

.works-v102-shell::before {
  content: "09";
  position: absolute;
  z-index: -1;
  right: 18px;
  top: -86px;
  color: rgba(103,64,79,.035);
  font-family: "Prata", Georgia, serif;
  font-size: 320px;
  line-height: 1;
  letter-spacing: -.08em;
  pointer-events: none;
}

.works-v102-shell::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 7%;
  right: 7%;
  top: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(213,124,160,.22) 18%, rgba(255,255,255,.98) 50%, rgba(213,124,160,.22) 82%, transparent);
  box-shadow: 0 0 18px rgba(214,123,160,.22);
  pointer-events: none;
}

.works-v102-head {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(330px,.72fr);
  align-items: end;
  gap: 54px;
  padding: 2px 4px 34px;
}

.works-v102-title {
  min-width: 0;
}

.works-v102-kicker {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 15px;
  color: #7a5b66;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.works-v102-kicker i {
  width: 26px;
  height: 1px;
  background: linear-gradient(90deg, #b96f8b, rgba(185,111,139,.15));
  box-shadow: 0 0 8px rgba(185,111,139,.26);
}

.works-v102-title h2 {
  margin: 0;
  color: #2b2024;
  font-size: clamp(62px,7vw,106px);
  font-weight: 400;
  line-height: .92;
  letter-spacing: -.062em;
}

.works-v102-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  padding-bottom: 4px;
}

.works-v102-intro p {
  max-width: 430px;
  margin: 0;
  color: #716268;
  font-size: 14px;
  line-height: 1.7;
}

.works-v102-all {
  display: inline-flex;
  align-items: center;
  min-height: 56px;
  padding: 5px 6px 5px 22px;
  border: 1px solid rgba(77,48,59,.10);
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #49333c, #38272e);
  box-shadow: 0 16px 34px rgba(63,39,48,.18), inset 0 1px 0 rgba(255,255,255,.08);
  font-size: 12px;
  font-weight: 800;
  transition: transform .3s var(--ease), box-shadow .3s ease;
}

.works-v102-all span {
  padding-right: 16px;
}

.works-v102-all b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 50%;
  color: #edc8d6;
  background: rgba(255,255,255,.06);
  font-size: 11px;
}

.works-v102-all i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-left: 5px;
  border-radius: 50%;
  color: #35252b;
  background: #fbf3f6;
  font-size: 18px;
  font-style: normal;
  transition: transform .3s var(--ease);
}

.works-v102-all:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(63,39,48,.22), inset 0 1px 0 rgba(255,255,255,.09);
}

.works-v102-all:hover i {
  transform: rotate(7deg);
}

.works-v102-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr) minmax(0,.88fr);
  grid-template-rows: repeat(2, minmax(0, 322px));
  gap: 12px;
}

.works-v102-card {
  position: relative;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.74);
  color: #fff;
  background: #3b2c32;
  box-shadow: 0 18px 42px rgba(66,41,50,.16), inset 0 1px 0 rgba(255,255,255,.10);
  cursor: zoom-in;
  text-align: left;
  appearance: none;
}

.works-v102-card-a {
  grid-row: 1 / 3;
  border-radius: 30px 30px 92px 30px;
}

.works-v102-card-b {
  grid-row: 1 / 3;
  border-radius: 30px 78px 30px 30px;
}

.works-v102-card-c {
  border-radius: 30px 30px 30px 68px;
}

.works-v102-card-d {
  border-radius: 30px 30px 68px 30px;
}

.works-v102-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .9s var(--ease), filter .6s ease;
}

.works-v102-card-b img {
  object-position: 50% 50%;
}

.works-v102-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(26,14,19,.18) 0%, transparent 32%, transparent 58%, rgba(27,15,20,.79) 100%),
    linear-gradient(90deg, rgba(34,17,24,.12), transparent 44%);
  transition: background .45s ease;
  pointer-events: none;
}

.works-v102-card-no {
  position: absolute;
  top: 16px;
  left: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.46);
  border-radius: 999px;
  color: #fff;
  background: rgba(46,26,34,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 8px 22px rgba(32,17,23,.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-family: "Prata", Georgia, serif;
  font-size: 12px;
}

.works-v102-caption {
  position: absolute;
  left: 18px;
  right: 62px;
  bottom: 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.works-v102-caption small {
  margin-bottom: 5px;
  color: #f0c9d8;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.works-v102-caption strong {
  color: #fff;
  font-size: 16px;
  line-height: 1.25;
  text-shadow: 0 2px 12px rgba(20,10,14,.20);
}

.works-v102-caption em {
  margin-top: 4px;
  color: rgba(255,255,255,.70);
  font-size: 11px;
  font-style: normal;
}

.works-v102-open {
  position: absolute;
  right: 16px;
  bottom: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.46);
  border-radius: 50%;
  color: #34242b;
  background: rgba(255,249,251,.91);
  box-shadow: 0 10px 24px rgba(25,12,17,.17);
  font-size: 17px;
  transition: transform .35s var(--ease), background .35s ease;
}

.works-v102-card:hover img,
.works-v102-card:focus-visible img {
  transform: scale(1.035);
  filter: saturate(1.035) contrast(1.015);
}

.works-v102-card:hover .works-v102-open,
.works-v102-card:focus-visible .works-v102-open {
  transform: rotate(7deg) translateY(-2px);
  background: #fff;
}

.works-v102-card:focus-visible {
  outline: 3px solid rgba(189,101,137,.72);
  outline-offset: 3px;
}

.works-v102-foot {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 25px 5px 2px;
  color: #796970;
  font-size: 11px;
  font-weight: 700;
}

.works-v102-foot > span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.works-v102-foot > span i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #bc728e;
  box-shadow: 0 0 0 5px rgba(188,114,142,.09), 0 0 12px rgba(188,114,142,.28);
}

.works-v102-foot a {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: #49333c;
  font-weight: 800;
}

.works-v102-foot a b {
  font-size: 16px;
  transition: transform .25s ease;
}

.works-v102-foot a:hover b {
  transform: translateX(3px);
}

/* Shared lightbox for the selected and full portfolio galleries. */
body.works-lightbox-open {
  overflow: hidden;
}

.works-lightbox {
  position: fixed;
  z-index: 220;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 28px;
  visibility: hidden;
  opacity: 0;
  transition: opacity .28s ease, visibility .28s ease;
}

.works-lightbox.open {
  visibility: visible;
  opacity: 1;
}

.works-lightbox-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(26,16,20,.82);
  backdrop-filter: blur(18px) saturate(.86);
  -webkit-backdrop-filter: blur(18px) saturate(.86);
  cursor: zoom-out;
}

.works-lightbox-panel {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: min(92vw, 1040px);
  height: min(88vh, 920px);
  padding: 20px 70px 72px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 36px;
  background: linear-gradient(145deg, rgba(69,48,57,.96), rgba(42,29,34,.97));
  box-shadow: 0 40px 120px rgba(0,0,0,.44), inset 0 1px 0 rgba(255,255,255,.07);
  transform: translateY(12px) scale(.985);
  transition: transform .34s var(--ease);
}

.works-lightbox.open .works-lightbox-panel {
  transform: translateY(0) scale(1);
}

.works-lightbox-panel > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 24px;
  box-shadow: 0 22px 58px rgba(0,0,0,.28);
}

.works-lightbox-close,
.works-lightbox-nav {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  color: #fff;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
  transition: transform .25s ease, background .25s ease;
}

.works-lightbox-close:hover,
.works-lightbox-nav:hover {
  transform: scale(1.05);
  background: rgba(255,255,255,.14);
}

.works-lightbox-close {
  top: 18px;
  right: 18px;
  font-size: 27px;
  font-weight: 300;
}

.works-lightbox-prev {
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
}

.works-lightbox-next {
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
}

.works-lightbox-prev:hover,
.works-lightbox-next:hover {
  transform: translateY(-50%) scale(1.05);
}

.works-lightbox-meta {
  position: absolute;
  left: 70px;
  right: 70px;
  bottom: 23px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: rgba(255,255,255,.70);
  font-size: 11px;
}

.works-lightbox-meta span {
  color: #edc3d3;
  font-weight: 800;
  letter-spacing: .12em;
}

.works-lightbox-meta strong {
  color: #fff;
  font-size: 13px;
  text-align: right;
}

/* Full portfolio subpage. */
.portfolio-page {
  min-height: 100vh;
  padding: 148px 0 80px;
}

.portfolio-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(300px,.7fr);
  align-items: end;
  gap: 56px;
  margin-bottom: 20px;
  padding: 46px 50px;
  border: 1px solid rgba(255,255,255,.88);
  border-radius: 46px;
  background:
    radial-gradient(circle at 90% 10%, rgba(217,132,165,.14), transparent 34%),
    rgba(255,250,250,.70);
  box-shadow: 0 28px 74px rgba(83,51,62,.11), inset 0 1px 0 rgba(255,255,255,.92);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

.portfolio-hero::after {
  content: "09";
  position: absolute;
  right: 18px;
  top: -58px;
  color: rgba(99,60,74,.04);
  font-family: "Prata", Georgia, serif;
  font-size: 230px;
  line-height: 1;
  pointer-events: none;
}

.portfolio-hero-copy,
.portfolio-hero-side {
  position: relative;
  z-index: 1;
}

.portfolio-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  color: #866773;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.portfolio-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: #b56c87;
}

.portfolio-hero h1 {
  margin: 0;
  color: #2c2125;
  font-size: clamp(66px,8.5vw,126px);
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.065em;
}

.portfolio-hero-side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
}

.portfolio-hero-side p {
  max-width: 430px;
  margin: 0;
  color: #716168;
  font-size: 14px;
  line-height: 1.75;
}

.portfolio-back {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #49333c;
  font-size: 12px;
  font-weight: 800;
}

.portfolio-back b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(78,48,59,.12);
  border-radius: 50%;
  background: rgba(255,255,255,.62);
}

.portfolio-gallery {
  padding: 20px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 42px;
  background: rgba(255,248,249,.48);
  box-shadow: 0 26px 68px rgba(81,48,61,.09), inset 0 1px 0 rgba(255,255,255,.80);
}

.portfolio-masonry {
  columns: 3;
  column-gap: 14px;
}

.portfolio-card {
  position: relative;
  display: block;
  width: 100%;
  margin: 0 0 14px;
  padding: 0;
  overflow: hidden;
  break-inside: avoid;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 28px;
  color: #fff;
  background: #3b2b31;
  box-shadow: 0 16px 36px rgba(61,37,46,.13);
  cursor: zoom-in;
  appearance: none;
  text-align: left;
}

.portfolio-card:nth-child(3n+1) {
  border-radius: 28px 28px 68px 28px;
}

.portfolio-card:nth-child(3n+2) {
  border-radius: 28px 68px 28px 28px;
}

.portfolio-card img {
  width: 100%;
  height: auto;
  transition: transform .8s var(--ease), filter .5s ease;
}

.portfolio-card::after {
  content: "";
  position: absolute;
  inset: 48% 0 0;
  background: linear-gradient(180deg, transparent, rgba(26,14,19,.76));
  pointer-events: none;
}

.portfolio-card-meta {
  position: absolute;
  z-index: 2;
  left: 16px;
  right: 16px;
  bottom: 15px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
}

.portfolio-card-meta span {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.portfolio-card-meta small {
  color: #edc4d4;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.portfolio-card-meta strong {
  color: #fff;
  font-size: 14px;
}

.portfolio-card-meta b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 50%;
  color: #33232a;
  background: rgba(255,250,251,.92);
  font-size: 15px;
}

.portfolio-card:hover img,
.portfolio-card:focus-visible img {
  transform: scale(1.025);
  filter: saturate(1.03) contrast(1.01);
}

.portfolio-card:focus-visible {
  outline: 3px solid rgba(187,102,136,.72);
  outline-offset: 3px;
}

.portfolio-cta {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-top: 20px;
  padding: 34px 40px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 36px;
  color: #fff;
  background:
    radial-gradient(circle at 86% 10%, rgba(214,121,158,.18), transparent 34%),
    linear-gradient(135deg, #443139, #322229);
  box-shadow: 0 24px 60px rgba(52,31,39,.22), inset 0 1px 0 rgba(255,255,255,.07);
}

.portfolio-cta-copy span {
  display: block;
  margin-bottom: 6px;
  color: #e6b8c9;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.portfolio-cta-copy strong {
  display: block;
  max-width: 680px;
  font-family: "Prata", Georgia, serif;
  font-size: clamp(24px,3vw,40px);
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -.035em;
}

.portfolio-cta .btn {
  flex: 0 0 auto;
  min-height: 58px;
  padding: 0 28px;
  color: #38272e;
  background: #fbf2f5;
  box-shadow: 0 15px 34px rgba(17,8,12,.18);
}

.portfolio-source {
  margin: 18px 0 0;
  color: #87777d;
  font-size: 10px;
  text-align: center;
}

@media (max-width:1279px) {
  .works-v102-shell {
    padding: 34px;
    border-radius: 42px;
  }

  .works-v102-head {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .works-v102-intro {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .works-v102-intro p {
    max-width: 480px;
  }

  .works-v102-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, 300px);
  }

  .works-v102-card-a,
  .works-v102-card-b {
    grid-row: span 2;
  }

  .works-v102-card-c,
  .works-v102-card-d {
    grid-row: 3;
  }

  .portfolio-hero {
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .portfolio-hero-side {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (max-width: 1279px) {
  .works-v102 {
    padding-top: 70px;
    padding-bottom: 58px;
  }

  .works-v102-shell {
    padding: 22px;
    border-radius: 30px;
  }

  .works-v102-shell::before {
    right: -8px;
    top: -34px;
    font-size: 150px;
  }

  .works-v102-head {
    padding: 0 0 24px;
  }

  .works-v102-title h2 {
    font-size: clamp(52px,16vw,76px);
  }

  .works-v102-kicker {
    margin-bottom: 12px;
    font-size: 9px;
  }

  .works-v102-intro {
    flex-direction: column;
    align-items: stretch;
  }

  .works-v102-intro p {
    font-size: 13px;
  }

  .works-v102-all {
    width: 100%;
    justify-content: flex-end;
  }

  .works-v102-all span {
    margin-right: auto;
  }

  .works-v102-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 190px 190px 190px;
    gap: 7px;
  }

  .works-v102-card-a,
  .works-v102-card-b {
    grid-row: 1 / 3;
  }

  .works-v102-card-c,
  .works-v102-card-d {
    grid-row: 3;
  }

  .works-v102-card-a {
    border-radius: 20px 20px 48px 20px;
  }

  .works-v102-card-b {
    border-radius: 20px 48px 20px 20px;
  }

  .works-v102-card-c,
  .works-v102-card-d {
    border-radius: 20px;
  }

  .works-v102-card-no {
    top: 10px;
    left: 10px;
    min-width: 30px;
    height: 30px;
    font-size: 9px;
  }

  .works-v102-caption {
    left: 11px;
    right: 42px;
    bottom: 11px;
  }

  .works-v102-caption small,
  .works-v102-caption em {
    display: none;
  }

  .works-v102-caption strong {
    font-size: 11px;
  }

  .works-v102-open {
    right: 9px;
    bottom: 9px;
    width: 30px;
    height: 30px;
    font-size: 12px;
  }

  .works-v102-foot {
    align-items: flex-start;
    flex-direction: column;
    padding-top: 18px;
  }

  .works-lightbox {
    padding: 10px;
  }

  .works-lightbox-panel {
    width: 100%;
    height: 88vh;
    padding: 58px 12px 72px;
    border-radius: 26px;
  }

  .works-lightbox-close {
    top: 10px;
    right: 10px;
  }

  .works-lightbox-nav {
    top: auto;
    bottom: 16px;
  }

  .works-lightbox-prev,
  .works-lightbox-prev:hover {
    left: 12px;
    transform: none;
  }

  .works-lightbox-next,
  .works-lightbox-next:hover {
    right: 12px;
    transform: none;
  }

  .works-lightbox-meta {
    left: 66px;
    right: 66px;
    bottom: 20px;
    flex-direction: column;
    gap: 2px;
    text-align: center;
  }

  .works-lightbox-meta strong {
    font-size: 10px;
    text-align: center;
  }

  .portfolio-page {
    padding: 112px 0 52px;
  }

  .portfolio-hero {
    gap: 22px;
    padding: 30px 24px;
    border-radius: 30px;
  }

  .portfolio-hero::after {
    top: -10px;
    right: -5px;
    font-size: 120px;
  }

  .portfolio-hero h1 {
    font-size: clamp(58px,18vw,86px);
  }

  .portfolio-hero-side {
    flex-direction: column;
    align-items: flex-start;
  }

  .portfolio-gallery {
    padding: 8px;
    border-radius: 28px;
  }

  .portfolio-masonry {
    columns: 2;
    column-gap: 7px;
  }

  .portfolio-card {
    margin-bottom: 7px;
    border-radius: 18px !important;
  }

  .portfolio-card-meta {
    left: 9px;
    right: 9px;
    bottom: 9px;
  }

  .portfolio-card-meta small {
    display: none;
  }

  .portfolio-card-meta strong {
    font-size: 10px;
  }

  .portfolio-card-meta b {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
    font-size: 11px;
  }

  .portfolio-cta {
    align-items: stretch;
    flex-direction: column;
    padding: 28px 24px;
    border-radius: 28px;
  }

  .portfolio-cta .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .works-v102-card img,
  .portfolio-card img,
  .works-lightbox,
  .works-lightbox-panel {
    transition: none !important;
  }
}


/* ===========================================================
   v10.5 - fluid snap works carousel
   ONLY section #works is redesigned below.
   =========================================================== */

.works-v105 {
  position: relative;
  padding-top: 62px;
  padding-bottom: 60px;
}

.works-v105-shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 30px 34px 24px;
  border: 1px solid rgba(255,255,255,.91);
  border-radius: 44px;
  background:
    radial-gradient(circle at 86% -20%, rgba(213,123,160,.17), transparent 38%),
    radial-gradient(circle at 2% 110%, rgba(255,255,255,.88), transparent 38%),
    linear-gradient(145deg, rgba(255,252,252,.88), rgba(245,230,235,.72));
  box-shadow:
    0 28px 72px rgba(77,45,57,.12),
    0 8px 22px rgba(125,73,94,.07),
    inset 0 1px 0 rgba(255,255,255,.96);
  backdrop-filter: blur(24px) saturate(1.08);
  -webkit-backdrop-filter: blur(24px) saturate(1.08);
}

.works-v105-shell::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(115deg, transparent 16%, rgba(255,255,255,.34) 42%, transparent 63%),
    repeating-linear-gradient(130deg, rgba(134,79,99,.022) 0 1px, transparent 1px 18px);
  pointer-events: none;
}

.works-v105-shell::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  bottom: 36px;
  width: 520px;
  height: 150px;
  border-radius: 50%;
  background: rgba(201,100,142,.13);
  filter: blur(62px);
  transform: translateX(-50%);
  pointer-events: none;
}

.works-v105-head {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 0 4px 20px;
}

.works-v105-title-wrap {
  display: flex;
  align-items: center;
  min-width: 0;
}

/* No decorative circle/star and no underline in this title. */
.works-v105-title-wrap::before,
.works-v105-title-wrap::after,
.works-v105-title-wrap h2::before,
.works-v105-title-wrap h2::after {
  content: none !important;
  display: none !important;
}

.works-v105-title-wrap h2 {
  margin: 0;
  padding: 0;
  border: 0;
  color: #302329;
  background: none;
  font-size: clamp(43px, 3.75vw, 58px);
  font-weight: 500;
  line-height: .94;
  letter-spacing: -.045em;
  text-decoration: none;
}

.works-v105-title-wrap h2 span {
  color: #ad5f7d;
}

.works-v105-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}

.works-v105-actions p {
  max-width: 210px;
  margin: 0;
  color: rgba(64,44,52,.59);
  font-size: 13px;
  line-height: 1.35;
  text-align: right;
}

.works-v105-all {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-height: 46px;
  padding: 0 8px 0 19px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(145deg, #3c2a31, #493039);
  box-shadow:
    0 14px 30px rgba(63,39,48,.17),
    inset 0 1px 0 rgba(255,255,255,.10);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.works-v105-all span {
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 50%;
  color: #3b2a31;
  background: rgba(255,250,251,.96);
  box-shadow: inset 0 1px 0 #fff;
  font-size: 13px;
}

.works-v105-all:hover,
.works-v105-all:focus-visible {
  outline: none;
  background: linear-gradient(145deg, #4a313a, #5d3947);
  box-shadow: 0 18px 38px rgba(63,39,48,.22);
  transform: translateY(-2px);
}

.works-carousel {
  position: relative;
  z-index: 2;
  outline: none;
}

.works-carousel:focus-visible .works-carousel-viewport {
  box-shadow: inset 0 0 0 2px rgba(181,91,127,.34);
}

.works-carousel-viewport {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  margin: 0 -10px;
  padding: 10px max(50%, 156px) 24px;
  border-radius: 34px;
  cursor: grab;
  scroll-behavior: smooth;
  scroll-padding-inline: 50%;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  touch-action: pan-y pinch-zoom;
  user-select: none;
  -webkit-user-select: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.works-carousel-viewport::-webkit-scrollbar {
  display: none;
}

.works-carousel.is-dragging .works-carousel-viewport {
  cursor: grabbing;
  scroll-behavior: auto;
  scroll-snap-type: none;
}

.works-carousel-track {
  display: flex;
  width: max-content;
  align-items: center;
  gap: 18px;
}

.works-slide {
  --work-image: none;
  position: relative;
  flex: 0 0 312px;
  width: 312px;
  height: 555px;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 30px;
  background: rgba(213,193,201,.84);
  box-shadow:
    0 17px 42px rgba(62,38,47,.15),
    inset 0 1px 0 rgba(255,255,255,.52);
  cursor: pointer;
  opacity: .62;
  scroll-snap-align: center;
  scroll-snap-stop: normal;
  transform: scale(.94);
  transition:
    transform .42s cubic-bezier(.2,.8,.2,1),
    opacity .34s ease,
    filter .34s ease,
    box-shadow .34s ease;
}

.works-slide::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -22px;
  background-image:
    linear-gradient(rgba(60,34,44,.05), rgba(60,34,44,.05)),
    var(--work-image);
  background-position: center;
  background-size: cover;
  filter: blur(18px) saturate(.9);
  opacity: .36;
  transform: scale(1.1);
  pointer-events: none;
}

.works-slide[data-active="true"] {
  z-index: 2;
  opacity: 1;
  filter: none;
  box-shadow:
    0 28px 58px rgba(62,38,47,.23),
    0 0 0 1px rgba(202,112,148,.12),
    0 0 34px rgba(197,93,135,.10),
    inset 0 1px 0 rgba(255,255,255,.62);
  transform: scale(1);
}

.works-slide-media {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
}

.works-slide-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
  transform: translateZ(0);
  transition: transform .55s cubic-bezier(.2,.8,.2,1), filter .35s ease;
}

.works-slide-shade {
  position: absolute;
  z-index: 2;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(35,21,27,.015) 52%, rgba(31,18,24,.12) 69%, rgba(31,18,24,.78) 100%);
  pointer-events: none;
}

.works-slide-caption {
  position: absolute;
  z-index: 3;
  right: 18px;
  bottom: 17px;
  left: 18px;
  display: grid;
  gap: 2px;
  padding: 11px 13px 10px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(145deg, rgba(49,31,38,.52), rgba(50,31,39,.28));
  box-shadow:
    0 10px 24px rgba(29,16,21,.13),
    inset 0 1px 0 rgba(255,255,255,.13);
  backdrop-filter: blur(13px) saturate(1.14);
  -webkit-backdrop-filter: blur(13px) saturate(1.14);
  text-align: left;
  pointer-events: none;
  transition: transform .35s ease, opacity .35s ease;
}

.works-slide-caption small {
  color: #f2bfd1;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.works-slide-caption strong {
  font-size: 17px;
  line-height: 1.16;
}

.works-slide-caption em {
  color: rgba(255,255,255,.71);
  font-size: 10px;
  font-style: normal;
}

.works-slide:not([data-active="true"]) .works-slide-caption {
  opacity: .72;
  transform: translateY(4px) scale(.98);
}

.works-slide[data-active="true"]:hover .works-slide-media img,
.works-slide[data-active="true"]:focus-visible .works-slide-media img {
  transform: scale(1.012);
}

.works-slide:focus-visible {
  outline: 2px solid rgba(172,83,119,.70);
  outline-offset: 3px;
}

/* Small mirrored / glass arrows floating over the carousel. */
.works-v105-arrows {
  position: absolute;
  z-index: 8;
  top: 49%;
  right: 6px;
  left: 6px;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  transform: translateY(-50%);
}

.works-v105-arrows button {
  position: relative;
  display: grid;
  width: 40px;
  height: 40px;
  padding: 0;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.66);
  border-radius: 50%;
  color: #3d2b32;
  background:
    linear-gradient(145deg, rgba(255,255,255,.78), rgba(235,211,220,.42));
  box-shadow:
    0 10px 24px rgba(58,35,44,.16),
    inset 0 1px 0 rgba(255,255,255,.94),
    inset 0 -8px 18px rgba(145,80,105,.05);
  backdrop-filter: blur(18px) saturate(1.35);
  -webkit-backdrop-filter: blur(18px) saturate(1.35);
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  pointer-events: auto;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.works-v105-arrows button::before {
  content: "";
  position: absolute;
  inset: 2px 5px auto;
  height: 42%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.62), transparent);
  pointer-events: none;
}

.works-v105-arrows button span {
  position: relative;
  z-index: 1;
  transform: translateY(-1px);
}

.works-v105-arrows button:hover,
.works-v105-arrows button:focus-visible {
  outline: none;
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(231,195,210,.62));
  box-shadow:
    0 13px 28px rgba(58,35,44,.21),
    inset 0 1px 0 #fff;
  transform: translateY(-2px) scale(1.04);
}

/* Compact glass counter + dots. No old progress line. */
.works-carousel-status {
  position: relative;
  z-index: 6;
  display: flex;
  width: max-content;
  max-width: calc(100% - 24px);
  min-height: 34px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 2px auto 0;
  padding: 5px 10px 5px 12px;
  border: 1px solid rgba(255,255,255,.70);
  border-radius: 999px;
  background: linear-gradient(145deg, rgba(255,255,255,.62), rgba(240,216,225,.38));
  box-shadow:
    0 9px 22px rgba(78,46,58,.08),
    inset 0 1px 0 rgba(255,255,255,.93);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}

.works-carousel-count {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: #75495c;
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: .02em;
  line-height: 1;
}

.works-carousel-count b {
  font-size: 14px;
  font-weight: 700;
}

.works-carousel-count i,
.works-carousel-count em {
  color: rgba(86,54,67,.52);
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.works-carousel-dots {
  display: flex;
  align-items: center;
  gap: 5px;
}

.works-carousel-dots i {
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: rgba(118,70,88,.22);
  box-shadow: inset 0 1px 1px rgba(255,255,255,.42);
  transition: width .28s ease, background .28s ease, box-shadow .28s ease;
}

.works-carousel-dots i.is-active {
  width: 18px;
  background: linear-gradient(90deg, #9e5874, #d182a2);
  box-shadow: 0 0 10px rgba(193,94,134,.18);
}

@media (max-width:1279px) {
  .works-v105 {
    padding-top: 52px;
  }

  .works-v105-shell {
    padding: 27px 22px 22px;
    border-radius: 38px;
  }

  .works-v105-head {
    align-items: flex-end;
  }

  .works-v105-actions p {
    display: none;
  }

  .works-carousel-viewport {
    margin-inline: -8px;
    padding-inline: max(50%, 148px);
  }

  .works-slide {
    flex-basis: 296px;
    width: 296px;
    height: 526px;
  }
}

@media (max-width: 1279px) {
  .works-v105 {
    padding-top: 34px;
    padding-bottom: 38px;
  }

  .works-v105-shell {
    padding: 21px 11px 17px;
    border-radius: 30px;
  }

  .works-v105-head {
    align-items: flex-start;
    gap: 14px;
    padding: 0 8px 15px;
  }

  .works-v105-title-wrap h2 {
    font-size: clamp(37px, 11.6vw, 49px);
    line-height: .96;
  }

  .works-v105-actions {
    gap: 7px;
  }

  .works-v105-all {
    min-height: 39px;
    gap: 8px;
    padding-left: 13px;
    font-size: 10px;
  }

  .works-v105-all span {
    width: 27px;
    height: 27px;
    font-size: 11px;
  }

  .works-carousel-viewport {
    margin: 0 -5px;
    padding-top: 7px;
    padding-bottom: 18px;
    padding-inline: max(50%, 132px);
    border-radius: 25px;
  }

  .works-carousel-track {
    gap: 12px;
  }

  .works-slide {
    flex-basis: min(72vw, 264px);
    width: min(72vw, 264px);
    height: min(128vw, 469px);
    min-height: 414px;
    border-radius: 25px;
    transform: scale(.965);
  }

  .works-slide[data-active="true"] {
    transform: scale(1);
  }

  .works-slide-caption {
    right: 13px;
    bottom: 13px;
    left: 13px;
    padding: 9px 11px 8px;
    border-radius: 14px;
  }

  .works-slide-caption strong {
    font-size: 15px;
  }

  .works-v105-arrows {
    right: 1px;
    left: 1px;
  }

  .works-v105-arrows button {
    width: 36px;
    height: 36px;
    font-size: 13px;
  }

  .works-carousel-status {
    min-height: 31px;
    gap: 9px;
    margin-top: 0;
    padding: 4px 9px 4px 10px;
  }

  .works-carousel-dots {
    gap: 4px;
  }

  .works-carousel-dots i {
    width: 4px;
    height: 4px;
  }

  .works-carousel-dots i.is-active {
    width: 14px;
  }
}

@media (max-width: 430px) {
  .works-v105-head {
    align-items: flex-end;
  }

  .works-v105-title-wrap h2 {
    font-size: 38px;
  }

  .works-v105-all {
    width: 39px;
    padding: 0;
    justify-content: center;
    color: transparent;
    font-size: 0;
  }

  .works-v105-all span {
    width: 29px;
    height: 29px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .works-slide,
  .works-slide-media img,
  .works-carousel-dots i,
  .works-v105-all,
  .works-v105-arrows button {
    transition: none !important;
  }

  .works-carousel-viewport {
    scroll-behavior: auto;
  }
}


/* ===========================================================
   v10.6 - smoother infinite carousel + cleaner lightbox
   =========================================================== */
.works-carousel {
  padding-bottom: 8px;
}

.works-carousel::after {
  content: "";
  position: absolute;
  z-index: 4;
  left: 26px;
  right: 26px;
  bottom: 34px;
  height: 110px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(247,240,242,0) 0%, rgba(247,240,242,.78) 32%, rgba(247,240,242,.96) 58%, rgba(247,240,242,1) 100%);
  pointer-events: none;
}

.works-carousel-viewport {
  padding-bottom: 58px;
}

.works-slide {
  transition:
    transform .52s cubic-bezier(.22,.86,.26,1),
    opacity .42s ease,
    filter .42s ease,
    box-shadow .42s ease;
}

.works-slide::before {
  opacity: .28;
}

.works-v105-arrows {
  top: 45%;
  right: 12px;
  left: 12px;
}

.works-v105-arrows button {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
  background: linear-gradient(155deg, rgba(83,53,64,.90), rgba(42,28,34,.86));
  box-shadow:
    0 12px 28px rgba(27,15,20,.28),
    inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter: blur(16px) saturate(1.08);
  -webkit-backdrop-filter: blur(16px) saturate(1.08);
}

.works-v105-arrows button::before {
  display: none;
}

.works-v105-arrows button span {
  transform: none;
  font-size: 18px;
  line-height: 1;
}

.works-v105-arrows button:hover,
.works-v105-arrows button:focus-visible {
  background: linear-gradient(155deg, rgba(98,62,76,.95), rgba(51,34,42,.92));
  box-shadow:
    0 16px 36px rgba(27,15,20,.34),
    inset 0 1px 0 rgba(255,255,255,.14);
  transform: translateY(-2px) scale(1.05);
}

.works-carousel-status {
  position: relative;
  z-index: 7;
  min-height: 38px;
  gap: 10px;
  margin-top: -4px;
  padding: 6px 14px;
  border: 1px solid rgba(255,255,255,.84);
  background: linear-gradient(145deg, rgba(255,255,255,.86), rgba(245,231,236,.95));
  box-shadow:
    0 12px 28px rgba(78,46,58,.10),
    inset 0 1px 0 rgba(255,255,255,.96);
}

.works-carousel-count {
  gap: 5px;
}

.works-carousel-count b {
  font-size: 15px;
}

.works-carousel-dots {
  gap: 6px;
}

.works-carousel-dots i {
  width: 6px;
  height: 6px;
  background: rgba(118,70,88,.18);
}

.works-carousel-dots i.is-active {
  width: 20px;
}

.works-lightbox {
  padding: 20px;
}

.works-lightbox-backdrop {
  background: rgba(18,12,15,.88);
  backdrop-filter: blur(24px) saturate(.92);
  -webkit-backdrop-filter: blur(24px) saturate(.92);
}

.works-lightbox-panel {
  width: auto;
  height: auto;
  max-width: calc(100vw - 40px);
  max-height: calc(100vh - 40px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(10px) scale(.985);
}

.works-lightbox.open .works-lightbox-panel {
  transform: translateY(0) scale(1);
}

.works-lightbox-panel > img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(92vw, 1180px);
  max-height: 84vh;
  object-fit: contain;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 26px;
  background: rgba(255,255,255,.04);
  box-shadow: 0 30px 90px rgba(0,0,0,.44);
}

.works-lightbox-close,
.works-lightbox-nav {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(58,38,46,.76);
  color: #fff;
  box-shadow: 0 10px 28px rgba(0,0,0,.20);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.works-lightbox-close:hover,
.works-lightbox-nav:hover,
.works-lightbox-close:focus-visible,
.works-lightbox-nav:focus-visible {
  background: rgba(74,48,58,.88);
}

.works-lightbox-close {
  top: 10px;
  right: 10px;
  font-size: 26px;
}

.works-lightbox-prev,
.works-lightbox-next {
  top: 50%;
  transform: translateY(-50%);
}

.works-lightbox-prev { left: 16px; }
.works-lightbox-next { right: 16px; }

.works-lightbox-prev:hover,
.works-lightbox-next:hover {
  transform: translateY(-50%) scale(1.05);
}

.works-lightbox-meta {
  left: 50%;
  right: auto;
  bottom: 14px;
  transform: translateX(-50%);
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 8px 14px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(41,28,34,.72);
  box-shadow: 0 12px 34px rgba(0,0,0,.20);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  justify-content: center;
  gap: 12px;
}

.works-lightbox-meta span {
  flex: 0 0 auto;
  font-size: 10px;
}

.works-lightbox-meta strong {
  max-width: min(58vw, 620px);
  overflow: hidden;
  color: rgba(255,255,255,.94);
  white-space: nowrap;
  text-align: left;
  text-overflow: ellipsis;
}

@media (max-width: 1279px) {
  .works-carousel::after {
    left: 10px;
    right: 10px;
    bottom: 26px;
    height: 92px;
  }

  .works-carousel-viewport {
    padding-bottom: 48px;
  }

  .works-v105-arrows {
    top: 43%;
    right: 3px;
    left: 3px;
  }

  .works-v105-arrows button {
    width: 40px;
    height: 40px;
  }

  .works-lightbox {
    padding: 12px;
  }

  .works-lightbox-panel > img {
    max-width: calc(100vw - 24px);
    max-height: 76vh;
    border-radius: 20px;
  }

  .works-lightbox-close,
  .works-lightbox-nav {
    width: 42px;
    height: 42px;
  }

  .works-lightbox-close {
    top: 4px;
    right: 4px;
  }

  .works-lightbox-prev { left: 4px; }
  .works-lightbox-next { right: 4px; }

  .works-lightbox-meta {
    bottom: 8px;
    gap: 8px;
    padding: 7px 12px;
  }

  .works-lightbox-meta strong {
    max-width: min(54vw, 230px);
    font-size: 12px;
  }
}


/* ===========================================================
   v10.7 - seamless carousel cleanup
   =========================================================== */
.works-carousel::after {
  content: none !important;
  display: none !important;
}

.works-carousel-viewport {
  margin: 0;
  padding-top: 4px;
  padding-bottom: 12px;
  scroll-behavior: auto !important;
  scroll-snap-type: none !important;
}

.works-carousel-track {
  gap: 16px;
}

.works-slide {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: .56;
  transform: scale(.955);
}

.works-slide::before {
  opacity: 0 !important;
}

.works-slide-media {
  inset: 0;
  overflow: hidden;
  border-radius: 30px;
  box-shadow: 0 8px 22px rgba(48,28,35,.06);
}

.works-slide-media img {
  border-radius: inherit;
}

.works-slide[data-active="true"] {
  opacity: 1;
  box-shadow: 0 22px 54px rgba(56,34,43,.16) !important;
  transform: scale(1);
}

.works-slide:not([data-active="true"]) .works-slide-media {
  box-shadow: none;
}

.works-v105-arrows {
  top: 50%;
  right: 10px;
  left: 10px;
}

.works-v105-arrows button {
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  background: rgba(42,28,34,.78);
  box-shadow: 0 12px 28px rgba(30,18,23,.22);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.works-v105-arrows button::before {
  display: none !important;
}

.works-v105-arrows button span {
  font-size: 18px;
  transform: translateY(-1px);
}

.works-v105-arrows button:hover,
.works-v105-arrows button:focus-visible {
  background: rgba(59,38,46,.90);
  box-shadow: 0 16px 34px rgba(30,18,23,.28);
}

.works-carousel-status {
  margin-top: 10px;
}

@media (max-width: 1279px) {
  .works-carousel-viewport {
    padding-top: 2px;
    padding-bottom: 10px;
  }

  .works-v105-arrows {
    right: 3px;
    left: 3px;
  }

  .works-v105-arrows button {
    width: 40px;
    height: 40px;
  }
}

/* ===========================================================
   v10.8 - continuous carousel interpolation + invisible perf pass
   Resting appearance stays identical to v10.7.
   =========================================================== */
.works-slide,
.works-slide[data-active="true"] {
  --focus-shadow: 0;
  overflow: visible;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  transition: none !important;
}

/* The strong v10.7 active shadow is rasterized once and only its opacity changes.
   This avoids repainting an animated box-shadow on every frame. */
.works-slide::before,
.works-slide[data-active="true"]::before {
  content: "" !important;
  position: absolute;
  z-index: 0;
  inset: 0 !important;
  border-radius: 30px;
  background: none !important;
  box-shadow:
    0 22px 54px rgba(56,34,43,.16),
    0 8px 22px rgba(48,28,35,.06) !important;
  filter: none !important;
  opacity: var(--focus-shadow) !important;
  transform: none !important;
  pointer-events: none;
}

.works-slide-media,
.works-slide:not([data-active="true"]) .works-slide-media {
  z-index: 1;
  box-shadow: none !important;
}

.works-slide .works-slide-caption,
.works-slide:not([data-active="true"]) .works-slide-caption {
  transition: none !important;
}

.works-carousel.is-dragging .works-slide-media img {
  transform: translateZ(0) scale(1) !important;
}

/* Stop work that cannot be seen. rootMargin in perf-v108.js resumes it well
   before the section reaches the viewport, so the visible result is unchanged. */
.perf-v108-paused,
.perf-v108-paused *,
.perf-v108-paused::before,
.perf-v108-paused::after,
.perf-v108-paused *::before,
.perf-v108-paused *::after {
  animation-play-state: paused !important;
}

/* Stable compositing hints; no geometry/color changes. */
body::after,
.brand-track,
.reviews-track {
  transform: translateZ(0);
}

/* Preserve the exact rounded clipping from v10.7 while the outer button is
   allowed to expose the composited shadow. */
.works-slide-clip {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  border-radius: 30px;
  pointer-events: none;
}

.works-slide-clip .works-slide-media,
.works-slide-clip .works-slide-shade,
.works-slide-clip .works-slide-caption {
  pointer-events: none;
}


/* ===========================================================
   v10.9 - softer motion + real seamless loop + blurred fill + refined arrows
   =========================================================== */
.works-slide-media {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(247,240,242,.95), rgba(231,221,225,.92));
  isolation: isolate;
}

.works-slide-media::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -10%;
  background-image: var(--work-image);
  background-position: center;
  background-size: cover;
  filter: blur(28px) saturate(.96);
  transform: scale(1.16);
  opacity: .96;
}

.works-slide-media::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.02) 34%, rgba(29,17,22,.06) 100%);
}

.works-slide-media img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.works-v109-arrows {
  top: 50%;
  right: 16px;
  left: 16px;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
}

.works-v109-arrows button {
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 18px;
  color: #4b3139;
  background: linear-gradient(145deg, rgba(255,255,255,.82), rgba(239,221,228,.58));
  box-shadow: 0 12px 30px rgba(63,39,48,.12), inset 0 1px 0 rgba(255,255,255,.95);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  pointer-events: auto;
}

.works-v109-arrows button::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.56), transparent 56%);
  pointer-events: none;
}

.works-v109-arrows button:hover,
.works-v109-arrows button:focus-visible {
  transform: translateY(-2px) scale(1.02);
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(244,228,234,.74));
  box-shadow: 0 16px 34px rgba(63,39,48,.16), inset 0 1px 0 rgba(255,255,255,.98);
}

.works-arrow-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}

.works-arrow-icon svg {
  width: 19px;
  height: 19px;
}

@media (max-width: 1279px) {
  .works-v109-arrows {
    right: 8px;
    left: 8px;
  }

  .works-v109-arrows button {
    width: 44px;
    height: 44px;
    border-radius: 15px;
  }

  .works-v109-arrows button::before {
    border-radius: 13px;
  }

  .works-arrow-icon svg {
    width: 17px;
    height: 17px;
  }
}


/* ===========================================================
   v11.0 - blur fill fix + gentler hover + services perf pass
   =========================================================== */
.works-slide-clip {
  transition: transform .34s cubic-bezier(.2,.75,.2,1);
}

.works-slide-media {
  background: linear-gradient(180deg, rgba(241,233,236,.95), rgba(229,219,223,.92));
}

.works-slide-media::before {
  content: "";
  position: absolute;
  inset: -14%;
  z-index: 0;
  background-image: var(--work-image);
  background-position: center;
  background-size: cover;
  filter: blur(34px) saturate(.98);
  transform: scale(1.18);
  opacity: 1;
  pointer-events: none;
}

.works-slide-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.03) 38%, rgba(32,20,25,.08) 100%);
  pointer-events: none;
}

.works-slide-media img {
  position: relative;
  z-index: 1;
  transition: transform .36s cubic-bezier(.2,.75,.2,1);
  will-change: transform;
}

.works-carousel:not(.is-dragging) .works-slide:hover .works-slide-clip,
.works-carousel:not(.is-dragging) .works-slide:focus-visible .works-slide-clip {
  transform: translateY(-4px);
}

.works-carousel:not(.is-dragging) .works-slide:hover .works-slide-media img,
.works-carousel:not(.is-dragging) .works-slide:focus-visible .works-slide-media img {
  transform: scale(1.022);
}

.works-carousel:not(.is-dragging) .works-slide:hover::before,
.works-carousel:not(.is-dragging) .works-slide:focus-visible::before {
  opacity: min(1, calc(var(--focus-shadow) + .12)) !important;
}

@keyframes sp-neon-spin {
  to { transform: rotate(360deg); }
}

.services-price-shell {
  contain: layout paint style;
}

.services-price-shell::after {
  will-change: transform;
  transform-origin: 50% 50%;
  transform: translateZ(0);
  animation: sp-neon-spin 11.8s linear infinite !important;
}

.sp-head,
.sp-body,
.sp-group,
.sp-service {
  contain: layout paint style;
}

.sp-group {
  content-visibility: auto;
  contain-intrinsic-size: 520px;
}

.sp-book,
.sp-group-pill,
.sp-service::before,
.sp-service::after,
.sp-kicker-dot,
.sp-group-dot {
  backface-visibility: hidden;
  transform: translateZ(0);
}

@media (max-width: 1279px) {
  .works-carousel:not(.is-dragging) .works-slide:hover .works-slide-clip,
  .works-carousel:not(.is-dragging) .works-slide:focus-visible .works-slide-clip {
    transform: translateY(-3px);
  }

  .sp-group {
    contain-intrinsic-size: 760px;
  }
}


/* ===========================================================
   v11.1 - restore original neon + clean captions + real blur + luxury arrows
   =========================================================== */

/* Restore the ORIGINAL services neon animation exactly as before v11.0. */
.services-price-shell,
.sp-head,
.sp-body,
.sp-group,
.sp-service {
  contain: none !important;
}

.sp-group {
  content-visibility: visible !important;
  contain-intrinsic-size: auto !important;
}

.sp-book,
.sp-group-pill,
.sp-service::before,
.sp-service::after,
.sp-kicker-dot,
.sp-group-dot {
  backface-visibility: visible !important;
  transform: none !important;
}

.services-price-shell::after {
  transform: none !important;
  transform-origin: initial !important;
  will-change: auto !important;
  animation: sp-neon-rotate 11.8s linear infinite !important;
}

/* The third line under the service name is intentionally gone. */
.works-slide-caption em {
  display: none !important;
}

.works-slide-caption {
  gap: 3px;
  padding-bottom: 12px;
}

/* Robust blurred fill: a real duplicate image sits behind the contained image. */
.works-slide-media::before,
.works-slide-media::after {
  content: none !important;
  display: none !important;
}

.works-slide-media .works-slide-blur {
  position: absolute !important;
  z-index: 0 !important;
  inset: -12% !important;
  width: 124% !important;
  height: 124% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
  filter: blur(30px) saturate(.96) brightness(.94) !important;
  opacity: .92 !important;
  transform: scale(1.05) !important;
  pointer-events: none !important;
}

.works-slide-media > img:not(.works-slide-blur) {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* Refined smoked-mirror navigation. Explicit full reset prevents native buttons. */
.works-v111-arrows {
  position: absolute;
  z-index: 12;
  top: 50%;
  right: 14px;
  left: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
  transform: translateY(-50%);
}

.works-v111-arrows button {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  display: grid;
  width: 50px;
  height: 50px;
  padding: 0;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 17px;
  outline: none;
  color: rgba(255,255,255,.96);
  background:
    linear-gradient(145deg, rgba(76,48,59,.90), rgba(47,30,37,.86));
  box-shadow:
    0 13px 30px rgba(44,26,33,.23),
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -1px 0 rgba(255,255,255,.06),
    0 0 0 1px rgba(181,102,134,.08);
  backdrop-filter: blur(16px) saturate(1.25);
  -webkit-backdrop-filter: blur(16px) saturate(1.25);
  cursor: pointer;
  pointer-events: auto;
  transition:
    transform .24s cubic-bezier(.2,.75,.2,1),
    box-shadow .24s ease,
    background .24s ease;
}

.works-v111-arrows button::before {
  content: "";
  position: absolute;
  inset: 1px 2px auto;
  height: 47%;
  border-radius: 15px 15px 45% 45%;
  background: linear-gradient(180deg, rgba(255,255,255,.17), rgba(255,255,255,0));
  pointer-events: none;
}

.works-v111-arrows button::after {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid rgba(235,182,204,.13);
  border-radius: 12px;
  pointer-events: none;
}

.works-v111-arrows button:hover,
.works-v111-arrows button:focus-visible {
  background: linear-gradient(145deg, rgba(95,57,72,.95), rgba(54,33,42,.92));
  box-shadow:
    0 17px 36px rgba(44,26,33,.28),
    0 0 22px rgba(190,102,139,.14),
    inset 0 1px 0 rgba(255,255,255,.30);
  transform: translateY(-2px) scale(1.035);
}

.works-v111-arrows button:active {
  transform: translateY(0) scale(.97);
}

.works-v111-arrows .works-arrow-icon {
  position: relative;
  z-index: 2;
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
}

.works-v111-arrows .works-arrow-icon svg {
  width: 21px;
  height: 21px;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.18));
}

@media (max-width: 1279px) {
  .works-v111-arrows {
    right: 7px;
    left: 7px;
  }

  .works-v111-arrows button {
    width: 43px;
    height: 43px;
    border-radius: 15px;
  }

  .works-v111-arrows button::after {
    inset: 5px;
    border-radius: 10px;
  }

  .works-v111-arrows .works-arrow-icon svg {
    width: 18px;
    height: 18px;
  }
}


/* ===========================================================
   v11.2 - compositor neon: same neon, much less paint work
   The old custom-property/conic-gradient animation repainted a huge filtered
   pseudo-element every frame. The visible border/glow is kept, but the gradient
   now lives on an oversized inner layer rotated with transform.
   =========================================================== */
.services-price-shell {
  contain: layout style;
}

.services-price-shell::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

.sp-neon-frame {
  position: absolute;
  inset: -2px;
  z-index: 1;
  overflow: hidden;
  padding: 3px;
  border-radius: inherit;
  pointer-events: none;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  filter:
    drop-shadow(0 0 6px rgba(255,248,251,.96))
    drop-shadow(0 0 18px rgba(247,176,213,.94))
    drop-shadow(0 0 36px rgba(228,116,173,.82));
}

.sp-neon-rotor {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--sp-neon-size, 1800px);
  height: var(--sp-neon-size, 1800px);
  background: conic-gradient(from 336deg,
    rgba(203,118,158,0) 0deg,
    rgba(214,122,167,.14) 10deg,
    rgba(236,150,194,.52) 22deg,
    rgba(251,176,214,.96) 36deg,
    rgba(255,220,236,1) 48deg,
    rgba(255,248,251,1) 56deg,
    rgba(255,220,236,1) 64deg,
    rgba(251,176,214,.96) 72deg,
    rgba(236,150,194,.52) 86deg,
    rgba(214,122,167,.14) 100deg,
    rgba(203,118,158,0) 112deg,
    rgba(203,118,158,0) 180deg,
    rgba(214,122,167,.14) 190deg,
    rgba(236,150,194,.52) 202deg,
    rgba(251,176,214,.96) 216deg,
    rgba(255,220,236,1) 228deg,
    rgba(255,248,251,1) 236deg,
    rgba(255,220,236,1) 244deg,
    rgba(251,176,214,.96) 252deg,
    rgba(236,150,194,.52) 266deg,
    rgba(214,122,167,.14) 280deg,
    rgba(203,118,158,0) 292deg,
    rgba(203,118,158,0) 360deg);
  transform: translate3d(-50%,-50%,0) rotate(0deg);
  transform-origin: 50% 50%;
  animation: sp-neon-gpu-rotate 11.8s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
  contain: paint;
}

@keyframes sp-neon-gpu-rotate {
  to { transform: translate3d(-50%,-50%,0) rotate(360deg); }
}

@media (max-width: 1279px) {
  .sp-neon-frame {
    inset: -1px;
    padding: 2px;
    filter:
      drop-shadow(0 0 4px rgba(255,248,251,.96))
      drop-shadow(0 0 12px rgba(247,176,213,.88))
      drop-shadow(0 0 24px rgba(228,116,173,.68));
  }
}

@media (prefers-reduced-motion: reduce) {
  .sp-neon-rotor { animation: none !important; }
}


/* ===========================================================
   v11.3 - first-screen compositor neon + wider services neon coverage
   No first-screen geometry/colors were changed; only the animation path changed.
   =========================================================== */

/* HERO: disable the old custom-property animation that forced a filtered repaint each frame. */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

.hero-neon-frame {
  position: absolute;
  overflow: hidden;
  pointer-events: none;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.hero-neon-frame-main {
  inset: -2px;
  z-index: 4;
  padding: 2px;
  border-radius: 40px 40px 188px 40px;
  filter:
    drop-shadow(0 0 3px rgba(255,250,252,.98))
    drop-shadow(0 0 58px rgba(255,158,201,.95))
    drop-shadow(0 0 135px rgba(235,92,157,.95));
}

.hero-neon-frame-bloom {
  inset: -3px;
  z-index: 1;
  padding: 3px;
  border-radius: 41px 41px 189px 41px;
  opacity: .82;
  filter:
    blur(16px)
    drop-shadow(0 0 100px rgba(255,151,197,.82))
    drop-shadow(0 0 135px rgba(232,91,154,.68));
}

.hero-neon-rotor {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--hero-neon-size, 980px);
  height: var(--hero-neon-size, 980px);
  background: conic-gradient(
    from 320deg,
    rgba(219,113,152,0) 0deg,
    rgba(231,120,166,.12) 10deg,
    rgba(241,136,182,.44) 22deg,
    rgba(249,171,206,.92) 36deg,
    rgba(255,216,231,1) 48deg,
    rgba(255,248,251,1) 55deg,
    rgba(255,255,255,1) 59deg,
    rgba(255,248,251,1) 63deg,
    rgba(255,216,231,1) 71deg,
    rgba(249,171,206,.92) 84deg,
    rgba(241,136,182,.44) 98deg,
    rgba(231,120,166,.12) 110deg,
    rgba(219,113,152,0) 120deg,
    rgba(219,113,152,0) 180deg,
    rgba(231,120,166,.12) 190deg,
    rgba(241,136,182,.44) 202deg,
    rgba(249,171,206,.92) 216deg,
    rgba(255,216,231,1) 228deg,
    rgba(255,248,251,1) 235deg,
    rgba(255,255,255,1) 239deg,
    rgba(255,248,251,1) 243deg,
    rgba(255,216,231,1) 251deg,
    rgba(249,171,206,.92) 264deg,
    rgba(241,136,182,.44) 278deg,
    rgba(231,120,166,.12) 290deg,
    rgba(219,113,152,0) 300deg,
    rgba(219,113,152,0) 360deg
  );
  transform: translate3d(-50%,-50%,0) rotate(0deg);
  transform-origin: 50% 50%;
  animation: hero-neon-gpu-rotate 10.8s linear infinite;
  will-change: transform;
  backface-visibility: hidden;
  contain: paint;
}

@keyframes hero-neon-gpu-rotate {
  to { transform: translate3d(-50%,-50%,0) rotate(360deg); }
}

/* SERVICES: same runner character, but its faint rose tail now spans the full contour.
   Bright white/pink hotspots remain, while the previously dead gaps no longer go blank. */
.sp-neon-rotor {
  background: conic-gradient(from 336deg,
    rgba(214,122,167,.10) 0deg,
    rgba(214,122,167,.22) 10deg,
    rgba(236,150,194,.58) 23deg,
    rgba(251,176,214,.96) 38deg,
    rgba(255,220,236,1) 50deg,
    rgba(255,248,251,1) 58deg,
    rgba(255,220,236,1) 67deg,
    rgba(251,176,214,.98) 78deg,
    rgba(236,150,194,.68) 94deg,
    rgba(224,135,177,.42) 112deg,
    rgba(214,122,167,.25) 132deg,
    rgba(207,116,158,.15) 154deg,
    rgba(207,116,158,.10) 180deg,
    rgba(214,122,167,.22) 190deg,
    rgba(236,150,194,.58) 203deg,
    rgba(251,176,214,.96) 218deg,
    rgba(255,220,236,1) 230deg,
    rgba(255,248,251,1) 238deg,
    rgba(255,220,236,1) 247deg,
    rgba(251,176,214,.98) 258deg,
    rgba(236,150,194,.68) 274deg,
    rgba(224,135,177,.42) 292deg,
    rgba(214,122,167,.25) 312deg,
    rgba(207,116,158,.15) 334deg,
    rgba(214,122,167,.10) 360deg
  );
}

@media (max-width: 1279px) {
  .hero-neon-frame-main {
    inset: -3px;
    padding: 1px;
    border-radius: 25px 25px 89px 25px;
    filter:
      drop-shadow(0 0 3px rgba(255,247,251,.98))
      drop-shadow(0 0 9px rgba(255,166,203,.94))
      drop-shadow(0 0 16px rgba(243,112,170,.64));
  }

  .hero-neon-frame-bloom {
    inset: -4px;
    padding: 2px;
    border-radius: 26px 26px 90px 26px;
    opacity: .22;
    filter:
      blur(3px)
      drop-shadow(0 0 6px rgba(255,160,198,.54))
      drop-shadow(0 0 12px rgba(238,109,167,.34));
  }

  .hero-neon-rotor {
    animation-duration: 12s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-neon-rotor { animation: none !important; }
}


/* v11.3: restore the offscreen pause selector to the current version name. */
.perf-v113-paused,
.perf-v113-paused *,
.perf-v113-paused::before,
.perf-v113-paused::after,
.perf-v113-paused *::before,
.perf-v113-paused *::after {
  animation-play-state: paused !important;
}


/* ===========================================================
   v11.4 - restore proven hero neon + larger twin white service runners
   =========================================================== */

/* HERO: restore the exact proven pseudo-element neon from the pre-v11.3 build.
   We keep the wheel-scroll pause optimization, but do not alter its visible look. */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  content: "" !important;
  display: block !important;
  animation: hero-neon-rotate-v63 10.8s linear infinite !important;
}

/* The v11.3 compositor experiment is retired for the hero only. */
.hero-neon-frame {
  display: none !important;
}

/* During a physical wheel burst only, freeze the expensive hero neon on the
   current frame. It stays fully visible and resumes from the same phase. */
html.wheel-scroll-active-v114 .hero-photo-wrap::before,
html.wheel-scroll-active-v114 .hero-photo-wrap::after {
  animation-play-state: paused !important;
}

/* SERVICES: keep exactly two opposite runners, but make each white hotspot
   substantially longer. Faint pink remains between them so the contour never dies. */
.sp-neon-rotor {
  background: conic-gradient(from 336deg,
    rgba(214,122,167,.12) 0deg,
    rgba(214,122,167,.24) 12deg,
    rgba(236,150,194,.62) 24deg,
    rgba(251,176,214,.98) 34deg,
    rgba(255,220,236,1) 42deg,
    rgba(255,242,249,1) 47deg,
    rgba(255,252,254,1) 51deg,
    rgba(255,255,255,1) 56deg,
    rgba(255,255,255,1) 70deg,
    rgba(255,252,254,1) 75deg,
    rgba(255,242,249,1) 80deg,
    rgba(255,220,236,1) 86deg,
    rgba(251,176,214,.98) 94deg,
    rgba(236,150,194,.68) 106deg,
    rgba(224,135,177,.44) 122deg,
    rgba(214,122,167,.26) 142deg,
    rgba(207,116,158,.16) 162deg,
    rgba(207,116,158,.11) 180deg,

    rgba(214,122,167,.24) 192deg,
    rgba(236,150,194,.62) 204deg,
    rgba(251,176,214,.98) 214deg,
    rgba(255,220,236,1) 222deg,
    rgba(255,242,249,1) 227deg,
    rgba(255,252,254,1) 231deg,
    rgba(255,255,255,1) 236deg,
    rgba(255,255,255,1) 250deg,
    rgba(255,252,254,1) 255deg,
    rgba(255,242,249,1) 260deg,
    rgba(255,220,236,1) 266deg,
    rgba(251,176,214,.98) 274deg,
    rgba(236,150,194,.68) 286deg,
    rgba(224,135,177,.44) 302deg,
    rgba(214,122,167,.26) 322deg,
    rgba(207,116,158,.16) 342deg,
    rgba(214,122,167,.12) 360deg
  ) !important;
}

/* Current offscreen pause selector. */
.perf-v114-paused,
.perf-v114-paused *,
.perf-v114-paused::before,
.perf-v114-paused::after,
.perf-v114-paused *::before,
.perf-v114-paused *::after {
  animation-play-state: paused !important;
}


/* ===========================================================
   v11.5 - clean carousel base + bottom nav + seamless button loop
   =========================================================== */
.works-slide,
.works-slide[data-active="true"] {
  box-shadow: none !important;
}

.works-slide::before,
.works-slide[data-active="true"]::before {
  content: none !important;
  display: none !important;
  box-shadow: none !important;
}

.works-slide-media,
.works-slide:not([data-active="true"]) .works-slide-media,
.works-slide[data-active="true"] .works-slide-media {
  box-shadow: none !important;
}

.works-v115-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 18px;
}

.works-v115-nav {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.54);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(79,47,59,.94), rgba(49,30,38,.90));
  color: rgba(255,255,255,.98);
  box-shadow:
    0 14px 28px rgba(47,27,35,.14),
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(14px) saturate(1.16);
  -webkit-backdrop-filter: blur(14px) saturate(1.16);
  cursor: pointer;
  transition: transform .22s cubic-bezier(.2,.75,.2,1), box-shadow .22s ease, background .22s ease;
}

.works-v115-nav::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,0) 52%);
  pointer-events: none;
}

.works-v115-nav::after {
  content: "";
  position: absolute;
  inset: 7px;
  border-radius: 12px;
  border: 1px solid rgba(237,192,210,.10);
  pointer-events: none;
}

.works-v115-nav:hover,
.works-v115-nav:focus-visible {
  transform: translateY(-2px);
  background: linear-gradient(145deg, rgba(95,57,72,.96), rgba(57,35,44,.94));
  box-shadow:
    0 18px 36px rgba(47,27,35,.18),
    0 0 18px rgba(205,118,154,.10),
    inset 0 1px 0 rgba(255,255,255,.30);
}

.works-v115-nav:active {
  transform: translateY(0) scale(.98);
}

.works-v115-nav .works-arrow-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}

.works-v115-nav .works-arrow-icon svg {
  width: 20px;
  height: 20px;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.18));
}

.works-carousel-status {
  margin-top: 0 !important;
}

@media (max-width: 1279px) {
  .works-v115-controls {
    gap: 10px;
    margin-top: 14px;
  }

  .works-v115-nav {
    width: 46px;
    height: 46px;
    border-radius: 15px;
  }

  .works-v115-nav::before {
    border-radius: 13px;
  }

  .works-v115-nav::after {
    inset: 6px;
    border-radius: 10px;
  }

  .works-v115-nav .works-arrow-icon svg {
    width: 17px;
    height: 17px;
  }
}


/* ===========================================================
   v11.6 - clean background + Reviews-style Works title + synced modals
   =========================================================== */

/* Remove the thin diagonal stripe overlay from the page background. */
body::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* Keep the Works glass sheen, but remove its diagonal stripe texture too. */
.works-v105-shell::before {
  background: linear-gradient(115deg, transparent 16%, rgba(255,255,255,.34) 42%, transparent 63%) !important;
}

/* "Мои работы" uses the exact same title component as "Отзывы". */
.works-v105-title-wrap .section-display {
  margin: 0 !important;
}

/* One persistent compositor layer is shared by booking and photo lightbox.
   The modal itself no longer waits for its own backdrop-filter to appear. */
.ui-blur-layer {
  position: fixed;
  z-index: 110;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateZ(0);
  will-change: opacity, backdrop-filter;
  transition: opacity .34s cubic-bezier(.2,.75,.2,1);
}

.ui-blur-layer.mode-booking {
  background: rgba(38,28,32,.52);
  backdrop-filter: blur(18px) saturate(1.02);
  -webkit-backdrop-filter: blur(18px) saturate(1.02);
}

.ui-blur-layer.mode-lightbox {
  background: rgba(18,12,15,.88);
  backdrop-filter: blur(24px) saturate(.92);
  -webkit-backdrop-filter: blur(24px) saturate(.92);
}

.ui-blur-layer.is-visible {
  opacity: 1;
}

/* Booking: keep it in the render tree, animate only opacity/transform.
   This keeps blur and panel entrance in the same frame. */
.modal {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none;
  transition: none !important;
}

.modal.open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto;
}

.modal-backdrop {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.modal-panel {
  opacity: 0;
  transform: translate3d(0,20px,0) scale(.975);
  will-change: opacity, transform;
  transition:
    opacity .34s cubic-bezier(.2,.75,.2,1),
    transform .42s cubic-bezier(.2,.75,.2,1) !important;
}

.modal.open .modal-panel {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
}

/* Photo viewer opens/fades at the same time as the shared blur. */
.works-lightbox {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: none;
  transition: none !important;
}

.works-lightbox.open {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto;
}

.works-lightbox-backdrop {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.works-lightbox-panel {
  opacity: 0;
  transform: translate3d(0,12px,0) scale(.965) !important;
  will-change: opacity, transform;
  transition:
    opacity .34s cubic-bezier(.2,.75,.2,1),
    transform .44s cubic-bezier(.2,.75,.2,1) !important;
}

.works-lightbox.open .works-lightbox-panel {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1) !important;
}

.works-lightbox-panel > img {
  transform: translateZ(0);
  will-change: transform, opacity;
}

@media (max-width: 1279px) {
  .works-v105-title-wrap .section-display {
    margin: 0 !important;
  }
}


/* ===========================================================
   v11.7 - fixed lightbox navigation + stronger Works CTA + booking repair
   =========================================================== */

/* Header no longer reserves visual weight for the removed subtitle. */
.works-v105-actions {
  gap: 0 !important;
}

/* Stronger but still on-brand "Смотреть все работы" CTA. */
.works-v117-all {
  min-height: 54px !important;
  padding: 0 9px 0 23px !important;
  gap: 17px !important;
  border: 1px solid rgba(229,159,188,.48) !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(217,121,161,.20), transparent 42%),
    linear-gradient(145deg, #4b303b, #38252d) !important;
  box-shadow:
    0 16px 34px rgba(70,40,52,.20),
    0 0 0 1px rgba(255,255,255,.05) inset,
    0 0 22px rgba(199,104,145,.16) !important;
  font-size: 14px !important;
  letter-spacing: -.01em;
}

.works-v117-all > span {
  width: 36px !important;
  height: 36px !important;
  color: #4c303b !important;
  background: linear-gradient(145deg, #fff, #f8e9ef) !important;
  box-shadow:
    inset 0 1px 0 #fff,
    0 5px 13px rgba(41,24,31,.13) !important;
}

.works-v117-all:hover,
.works-v117-all:focus-visible {
  transform: translateY(-2px) scale(1.015) !important;
  border-color: rgba(244,189,212,.72) !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(222,126,166,.27), transparent 44%),
    linear-gradient(145deg, #593543, #402832) !important;
  box-shadow:
    0 20px 40px rgba(70,40,52,.24),
    0 0 26px rgba(207,112,153,.24) !important;
}

/* Lightbox arrows are anchored to the viewport, not to each photo.
   Their position never changes when another image has a different size. */
.works-lightbox-nav {
  position: fixed !important;
  z-index: 132 !important;
  top: 50% !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  border-radius: 19px !important;
  color: rgba(255,255,255,.98) !important;
  background: linear-gradient(145deg, rgba(80,49,61,.90), rgba(43,28,34,.86)) !important;
  box-shadow:
    0 14px 34px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.18),
    0 0 0 1px rgba(221,148,180,.06) !important;
  backdrop-filter: blur(18px) saturate(1.16) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.16) !important;
  transform: translateY(-50%) !important;
  transition: transform .22s cubic-bezier(.2,.75,.2,1), background .22s ease, box-shadow .22s ease !important;
}

.works-lightbox-prev {
  left: max(18px, env(safe-area-inset-left)) !important;
  right: auto !important;
}

.works-lightbox-next {
  right: max(18px, env(safe-area-inset-right)) !important;
  left: auto !important;
}

.works-lightbox-nav:hover,
.works-lightbox-nav:focus-visible {
  transform: translateY(-50%) scale(1.055) !important;
  background: linear-gradient(145deg, rgba(100,59,75,.96), rgba(52,32,40,.94)) !important;
  box-shadow:
    0 18px 38px rgba(0,0,0,.29),
    0 0 22px rgba(207,117,155,.15),
    inset 0 1px 0 rgba(255,255,255,.24) !important;
}

.works-lightbox-nav:active {
  transform: translateY(-50%) scale(.96) !important;
}

/* Booking remains fully interactive while using the synced shared blur layer. */
.modal.open .modal-panel,
.modal.open .modal-panel * {
  pointer-events: auto;
}

@media (max-width: 1279px) {
  .works-v117-all {
    min-height: 46px !important;
    padding-left: 17px !important;
    font-size: 11px !important;
  }

  .works-v117-all > span {
    width: 31px !important;
    height: 31px !important;
  }

  .works-lightbox-nav {
    width: 48px !important;
    height: 48px !important;
    border-radius: 16px !important;
  }

  .works-lightbox-prev {
    left: max(8px, env(safe-area-inset-left)) !important;
  }

  .works-lightbox-next {
    right: max(8px, env(safe-area-inset-right)) !important;
  }
}


/* ===========================================================
   v11.8 - refined editorial background + unmistakable side lightbox arrows
   =========================================================== */
:root {
  --bg: #ece6e2;
  --bg-soft: #f6f1ed;
  --cream: #faf6f2;
  --glass: rgba(252,249,246,.68);
  --shadow: 0 30px 90px rgba(54,38,44,.12);
  --shadow-soft: 0 18px 50px rgba(54,38,44,.08);
}

body {
  background:
    radial-gradient(1200px 760px at -10% -5%, rgba(255,255,255,.88), transparent 62%),
    radial-gradient(980px 620px at 100% 0%, rgba(205,166,178,.15), transparent 56%),
    radial-gradient(980px 680px at 50% 100%, rgba(206,188,177,.11), transparent 60%),
    linear-gradient(180deg, #f4efeb 0%, #eee7e2 48%, #f6f2ee 100%) !important;
  background-attachment: fixed;
}

body::before {
  content: "" !important;
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .16;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(76,54,63,.26) .7px, transparent .8px),
    radial-gradient(circle at 2px 2px, rgba(255,255,255,.72) .8px, transparent .9px);
  background-size: 18px 18px, 26px 26px;
  mix-blend-mode: soft-light;
}

body::after {
  content: "" !important;
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .5;
  background:
    radial-gradient(560px 300px at 18% 12%, rgba(255,255,255,.42), transparent 72%),
    radial-gradient(620px 360px at 84% 8%, rgba(216,184,195,.18), transparent 72%),
    radial-gradient(760px 420px at 50% 100%, rgba(255,255,255,.18), transparent 76%);
}

.hero-shell,
.price-shell,
.reviews-shell,
.contact-card,
.works-v105-shell {
  background-color: rgba(255,255,255,.56);
  backdrop-filter: blur(18px) saturate(1.04);
  -webkit-backdrop-filter: blur(18px) saturate(1.04);
}

/* Large unmistakable side arrows in lightbox. */
.works-lightbox-nav {
  position: fixed !important;
  z-index: 140 !important;
  top: 50vh !important;
  width: 64px !important;
  height: 64px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  background: linear-gradient(145deg, rgba(67,43,53,.94), rgba(39,26,32,.90)) !important;
  box-shadow:
    0 18px 38px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.18),
    0 0 0 1px rgba(224,158,188,.06) !important;
  backdrop-filter: blur(18px) saturate(1.15) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.15) !important;
  transform: translateY(-50%) !important;
  display: grid !important;
  place-items: center !important;
  color: rgba(255,255,255,.98) !important;
}

.works-lightbox-prev {
  left: clamp(12px, 4vw, 46px) !important;
  right: auto !important;
}

.works-lightbox-next {
  right: clamp(12px, 4vw, 46px) !important;
  left: auto !important;
}

.works-lightbox-nav::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,0) 58%);
  pointer-events: none;
}

.works-lightbox-nav::after {
  content: "";
  position: absolute;
  inset: 7px;
  border-radius: inherit;
  border: 1px solid rgba(242,198,216,.10);
  pointer-events: none;
}

.works-lightbox-nav-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}

.works-lightbox-nav-icon svg {
  width: 22px;
  height: 22px;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.18));
}

.works-lightbox-nav:hover,
.works-lightbox-nav:focus-visible {
  transform: translateY(-50%) scale(1.055) !important;
  background: linear-gradient(145deg, rgba(92,58,70,.98), rgba(49,33,41,.95)) !important;
  box-shadow:
    0 22px 42px rgba(0,0,0,.28),
    0 0 22px rgba(206,122,158,.14),
    inset 0 1px 0 rgba(255,255,255,.24) !important;
}

.works-lightbox-nav:active {
  transform: translateY(-50%) scale(.96) !important;
}

@media (max-width: 1279px) {
  body { background-attachment: scroll; }

  .works-lightbox-nav {
    width: 52px !important;
    height: 52px !important;
  }

  .works-lightbox-prev {
    left: max(8px, env(safe-area-inset-left)) !important;
  }

  .works-lightbox-next {
    right: max(8px, env(safe-area-inset-right)) !important;
  }

  .works-lightbox-nav-icon svg {
    width: 18px;
    height: 18px;
  }
}


/* ===========================================================
   v11.9 - true viewport-side lightbox navigation + signature background
   =========================================================== */

/* Background: warm editorial base + restrained mauve/champagne aurora.
   Static layers only — no animation, no fixed background attachment. */
body {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(1100px 740px at 8% 0%, rgba(255,255,255,.94) 0%, rgba(255,255,255,.54) 34%, transparent 68%),
    radial-gradient(900px 650px at 94% 9%, rgba(148,101,120,.18) 0%, rgba(148,101,120,.08) 38%, transparent 68%),
    radial-gradient(780px 620px at 76% 62%, rgba(205,176,139,.14) 0%, rgba(205,176,139,.055) 46%, transparent 72%),
    radial-gradient(900px 690px at 8% 82%, rgba(80,56,67,.065) 0%, transparent 66%),
    linear-gradient(135deg, #f7f3ef 0%, #eee7e1 35%, #f2e8e7 62%, #ebe6e2 100%) !important;
  background-attachment: scroll !important;
}

/* Soft "silk" light fields — deliberately broad so they read as texture,
   not as stripes. Absolute instead of fixed to keep wheel scrolling cheap. */
body::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
  pointer-events: none !important;
  opacity: .78 !important;
  background:
    linear-gradient(118deg,
      transparent 0%,
      rgba(255,255,255,.00) 20%,
      rgba(255,255,255,.24) 31%,
      rgba(255,255,255,.035) 42%,
      transparent 54%),
    linear-gradient(302deg,
      transparent 0%,
      rgba(132,89,107,.00) 53%,
      rgba(132,89,107,.055) 66%,
      rgba(255,255,255,.08) 77%,
      transparent 90%);
  background-size: 1600px 1100px, 1800px 1300px;
  background-position: 4% 0, 96% 26%;
  background-repeat: repeat-y;
  mix-blend-mode: soft-light;
}

/* Fine paper grain / mineral speckle; no diagonal pattern. */
body::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;
  opacity: .18 !important;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(55,38,46,.22) 0 .55px, transparent .75px),
    radial-gradient(circle at 70% 55%, rgba(255,255,255,.95) 0 .7px, transparent .9px),
    radial-gradient(circle at 42% 78%, rgba(115,82,95,.14) 0 .5px, transparent .75px);
  background-size: 23px 23px, 31px 31px, 37px 37px;
  background-position: 0 0, 8px 11px, 15px 4px;
}

/* True viewport-side lightbox arrows. They are siblings of the transformed
   photo panel in v119, so position:fixed is finally relative to the viewport. */
.works-lightbox-nav {
  position: fixed !important;
  z-index: 160 !important;
  top: 50% !important;
  width: 68px !important;
  height: 68px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  color: rgba(255,255,255,.98) !important;
  background:
    radial-gradient(circle at 34% 18%, rgba(255,255,255,.14), transparent 42%),
    linear-gradient(145deg, rgba(76,48,59,.96), rgba(38,25,31,.93)) !important;
  box-shadow:
    0 18px 42px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 -1px 0 rgba(255,255,255,.04),
    0 0 0 1px rgba(217,143,175,.055) !important;
  backdrop-filter: blur(18px) saturate(1.18) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.18) !important;
  transform: translateY(-50%) !important;
  cursor: pointer;
}

.works-lightbox-prev {
  left: clamp(18px, 3.2vw, 52px) !important;
  right: auto !important;
}

.works-lightbox-next {
  right: clamp(18px, 3.2vw, 52px) !important;
  left: auto !important;
}

.works-lightbox-nav::before {
  content: "";
  position: absolute;
  inset: 2px;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.12), transparent 58%);
  pointer-events: none;
}

.works-lightbox-nav::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(244,204,221,.10);
  border-radius: inherit;
  pointer-events: none;
}

.works-lightbox-nav-icon {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}

.works-lightbox-nav-icon svg {
  width: 23px;
  height: 23px;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.22));
}

.works-lightbox-nav:hover,
.works-lightbox-nav:focus-visible {
  transform: translateY(-50%) scale(1.06) !important;
  background:
    radial-gradient(circle at 34% 18%, rgba(255,255,255,.17), transparent 44%),
    linear-gradient(145deg, rgba(100,61,76,.98), rgba(47,30,37,.96)) !important;
  box-shadow:
    0 22px 46px rgba(0,0,0,.32),
    0 0 24px rgba(207,117,156,.15),
    inset 0 1px 0 rgba(255,255,255,.25) !important;
}

.works-lightbox-nav:active {
  transform: translateY(-50%) scale(.96) !important;
}

@media (max-width: 1279px) {
  .works-lightbox-nav {
    width: 50px !important;
    height: 50px !important;
  }
  .works-lightbox-prev { left: max(7px, env(safe-area-inset-left)) !important; }
  .works-lightbox-next { right: max(7px, env(safe-area-inset-right)) !important; }
  .works-lightbox-nav-icon svg { width: 18px; height: 18px; }
}


/* ===========================================================
   v12.0 - clean luxury grain background + lightbox arrow leak fix
   Research direction: grainy gradients / subtle noise, no grid or geometric pattern.
   =========================================================== */
:root {
  --bg: #ece6e2;
  --bg-soft: #f6f1ed;
  --cream: #faf6f2;
  --glass: rgba(252,249,246,.68);
  --shadow: 0 30px 90px rgba(54,38,44,.12);
  --shadow-soft: 0 18px 50px rgba(54,38,44,.08);
}

/* Back to the calm v118 editorial palette. The extra character comes from
   broad champagne/mauve light blooms + real random paper grain, not shapes. */
body {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(1260px 780px at -8% -7%, rgba(255,255,255,.93) 0%, rgba(255,255,255,.52) 35%, transparent 67%),
    radial-gradient(1040px 680px at 103% 4%, rgba(194,150,167,.17) 0%, rgba(194,150,167,.07) 40%, transparent 69%),
    radial-gradient(1040px 760px at 48% 104%, rgba(208,185,155,.12) 0%, rgba(208,185,155,.045) 45%, transparent 72%),
    radial-gradient(880px 620px at 8% 72%, rgba(96,67,79,.045) 0%, transparent 67%),
    linear-gradient(180deg, #f5f0ec 0%, #eee7e2 48%, #f7f2ee 100%) !important;
  background-attachment: scroll !important;
}

/* Organic paper/film grain. It is a pre-rendered texture, so there are no
   repeated dots, grids, rectangles, pseudo-rivets or runtime SVG filters. */
body::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
  pointer-events: none !important;
  opacity: .105 !important;
  background-image: url("/assets/paper-grain-v120.webp") !important;
  background-size: 760px 760px !important;
  background-repeat: repeat !important;
  background-position: 137px 83px !important;
  mix-blend-mode: soft-light !important;
}

/* Very broad pearlescent lighting only — intentionally no stripes/pattern. */
body::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;
  opacity: .72 !important;
  background:
    radial-gradient(720px 420px at 16% 11%, rgba(255,255,255,.30), transparent 74%),
    radial-gradient(760px 470px at 86% 16%, rgba(213,181,193,.105), transparent 76%),
    radial-gradient(920px 520px at 52% 88%, rgba(255,255,255,.13), transparent 78%) !important;
}

/* IMPORTANT: lightbox navigation exists in DOM even while the shared overlay
   is pre-warmed. Hide only the nav until the lightbox is actually open. */
.works-lightbox:not(.open) .works-lightbox-nav {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-50%) scale(.92) !important;
}

.works-lightbox.open .works-lightbox-nav {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(-50%) scale(1) !important;
  transition:
    opacity .24s ease,
    transform .26s cubic-bezier(.2,.75,.2,1),
    background .22s ease,
    box-shadow .22s ease !important;
}

.works-lightbox.open .works-lightbox-nav:hover,
.works-lightbox.open .works-lightbox-nav:focus-visible {
  transform: translateY(-50%) scale(1.06) !important;
}

.works-lightbox.open .works-lightbox-nav:active {
  transform: translateY(-50%) scale(.96) !important;
}


/* ===========================================================
   v12.1 - visible quiet-luxury background: alabaster + champagne + mauve silk
   Research blend: editorial beauty palettes, silk-like fluid light, and film grain.
   =========================================================== */
body {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(1200px 760px at -6% -4%, rgba(255,255,255,.96) 0%, rgba(255,255,255,.56) 34%, transparent 68%),
    radial-gradient(1050px 720px at 105% 5%, rgba(180,126,149,.23) 0%, rgba(180,126,149,.10) 40%, transparent 70%),
    radial-gradient(900px 620px at 48% 46%, rgba(223,196,164,.15) 0%, rgba(223,196,164,.055) 44%, transparent 70%),
    radial-gradient(960px 680px at 2% 83%, rgba(95,65,78,.075) 0%, transparent 69%),
    radial-gradient(1040px 760px at 98% 92%, rgba(203,171,185,.13) 0%, transparent 68%),
    linear-gradient(145deg, #f7f2ee 0%, #ede5df 31%, #f4e9ea 58%, #ece6e1 100%) !important;
  background-attachment: scroll !important;
}

/* Visible silk/pearl folds. All static gradients: no scroll-time animation cost. */
body::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
  pointer-events: none !important;
  opacity: .96 !important;
  background:
    radial-gradient(ellipse 82% 20% at 14% 10%, rgba(255,255,255,.48) 0%, rgba(255,255,255,.19) 42%, transparent 72%),
    radial-gradient(ellipse 70% 18% at 86% 18%, rgba(169,111,136,.14) 0%, rgba(169,111,136,.055) 46%, transparent 74%),
    radial-gradient(ellipse 88% 17% at 53% 36%, rgba(255,255,255,.22) 0%, rgba(255,255,255,.07) 47%, transparent 74%),
    radial-gradient(ellipse 74% 19% at 18% 58%, rgba(217,185,153,.12) 0%, rgba(217,185,153,.04) 48%, transparent 74%),
    radial-gradient(ellipse 82% 18% at 82% 74%, rgba(141,93,115,.11) 0%, rgba(141,93,115,.035) 48%, transparent 76%),
    radial-gradient(ellipse 92% 16% at 40% 92%, rgba(255,255,255,.24) 0%, rgba(255,255,255,.06) 50%, transparent 76%);
  background-repeat: no-repeat !important;
  mix-blend-mode: soft-light !important;
}

/* Real random paper/film grain, deliberately stronger than v120 so it is visible. */
body::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;
  opacity: .22 !important;
  background-image: url("/assets/paper-grain-v120.webp") !important;
  background-size: 620px 620px !important;
  background-repeat: repeat !important;
  background-position: 73px 41px !important;
  mix-blend-mode: overlay !important;
}

/* A faint pearlescent halo around major white shells so the texture feels integrated, not pasted on. */
.hero,
.section-services-price,
.works-v105,
#reviews,
#contacts {
  position: relative;
}

.hero::after,
.works-v105::after,
#reviews::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: 8% 2% auto;
  height: 56%;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(255,255,255,.24), rgba(196,146,166,.055) 46%, transparent 72%);
  filter: blur(32px);
  opacity: .78;
}

/* Bullet-proof leak fix: nav is hidden by default regardless of DOM prewarm state. */
.works-lightbox-nav {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.works-lightbox.open > .works-lightbox-nav {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

@media (max-width: 1279px) {
  body::after {
    opacity: .17 !important;
    background-size: 520px 520px !important;
  }
  .hero::after,
  .works-v105::after,
  #reviews::after {
    filter: blur(24px);
    opacity: .58;
  }
}


/* ===========================================================
   v12.2 - REAL visible beauty texture: pearl powder marble + silk light
   Direct body background layer (not negative-z pseudo elements), so it is
   guaranteed to be visible. Static only: no scroll/GPU animation cost.
   =========================================================== */
body {
  position: relative;
  isolation: auto !important;
  background-color: #f1ebe6 !important;
  background-image:
    radial-gradient(1050px 720px at 100% 3%, rgba(188,128,151,.16) 0%, rgba(188,128,151,.055) 43%, transparent 72%),
    radial-gradient(920px 660px at 0% 55%, rgba(214,188,157,.12) 0%, rgba(214,188,157,.035) 46%, transparent 75%),
    linear-gradient(135deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 42%, rgba(182,132,151,.035) 100%),
    url("/assets/luxury-powder-marble-v122.webp") !important;
  background-size:
    100% 100%,
    100% 100%,
    100% 100%,
    1460px 1460px !important;
  background-repeat:
    no-repeat,
    no-repeat,
    no-repeat,
    repeat !important;
  background-position:
    center top,
    center top,
    center top,
    0 0 !important;
  background-attachment: scroll !important;
  background-blend-mode: normal, normal, soft-light, normal !important;
}

/* Kill all old pseudo texture experiments. The actual texture now lives in
   body.background-image, so there is no stacking-context trick that can hide it. */
body::before,
body::after {
  content: none !important;
  display: none !important;
}

/* A little extra pearlescent depth around the first screen without changing layout. */
.hero {
  background:
    radial-gradient(760px 420px at 27% 18%, rgba(255,255,255,.18), transparent 72%),
    radial-gradient(640px 400px at 86% 52%, rgba(204,160,178,.055), transparent 74%);
}

/* Preserve the no-leak rule for prewarmed lightbox navigation. */
.works-lightbox:not(.open) .works-lightbox-nav,
.works-lightbox-nav {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.works-lightbox.open > .works-lightbox-nav {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

@media (max-width: 1279px) {
  body {
    background-size: 100% 100%, 100% 100%, 100% 100%, 980px 980px !important;
  }
}


/* ===========================================================
   v12.3 - VISIBLE silk-plaster beauty background
   Strong enough to read on desktop screenshots; still static and cheap.
   =========================================================== */
body {
  background-color: #efe7e2 !important;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 34%, rgba(118,79,94,.025) 100%),
    url("/assets/luxury-silk-plaster-v123.webp") !important;
  background-size: 100% 100%, 1800px 1800px !important;
  background-repeat: no-repeat, repeat !important;
  background-position: center top, center top !important;
  background-blend-mode: normal, normal !important;
  background-attachment: scroll !important;
}

/* Do not wash the texture out again on the first screen. */
.hero {
  background: transparent !important;
}

body::before,
body::after {
  content: none !important;
  display: none !important;
}

/* Slightly more transparent glass on the light cards so the background reads through. */
.hero-story,
.works-v105-shell,
.reviews-shell,
.contact-card {
  background-color: rgba(255,255,255,.52) !important;
}

@media (max-width: 1279px) {
  body {
    background-size: 100% 100%, 1120px 1120px !important;
  }
}


/* ===========================================================
   v12.4 - visible cloud / powder luxury background (user-requested)
   Return to the cloud texture direction and make it clearly visible.
   =========================================================== */
body {
  background-color: #efe7e1 !important;
  background-image:
    radial-gradient(920px 640px at 16% 10%, rgba(255,255,255,.42) 0%, rgba(255,255,255,.12) 38%, rgba(255,255,255,0) 68%),
    radial-gradient(860px 620px at 84% 14%, rgba(197,155,171,.16) 0%, rgba(197,155,171,.08) 42%, rgba(197,155,171,0) 72%),
    radial-gradient(980px 720px at 52% 84%, rgba(211,190,178,.12) 0%, rgba(211,190,178,.05) 46%, rgba(211,190,178,0) 74%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0) 24%, rgba(122,82,97,.018) 100%),
    url("/assets/luxury-powder-marble-v124.webp") !important;
  background-size: auto, auto, auto, 100% 100%, 1560px 1560px !important;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, repeat !important;
  background-position: center top, center top, center top, center top, center top !important;
  background-blend-mode: screen, normal, normal, normal, normal !important;
  background-attachment: scroll !important;
}

/* Keep the texture readable instead of washing it out. */
.hero,
main#top,
section#services,
section#works,
section#reviews,
section#contact {
  background-color: transparent !important;
}

.topbar .nav,
.hero-story,
.works-v105-shell,
.reviews-shell,
.contact-card,
.services-price-shell,
.all-works-shell {
  background-color: rgba(255,255,255,.44) !important;
}

/* Add a subtle cloudlike bloom so the "облачка" are actually visible. */
body::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;
  opacity: .58 !important;
  background:
    radial-gradient(560px 320px at 18% 12%, rgba(255,255,255,.26), rgba(255,255,255,0) 72%),
    radial-gradient(640px 360px at 78% 22%, rgba(255,246,249,.18), rgba(255,246,249,0) 74%),
    radial-gradient(780px 460px at 50% 68%, rgba(255,255,255,.12), rgba(255,255,255,0) 76%);
  mix-blend-mode: screen;
}

body::after {
  content: none !important;
  display: none !important;
}

@media (max-width: 1279px) {
  body {
    background-size: auto, auto, auto, 100% 100%, 1120px 1120px !important;
  }

  .topbar .nav,
  .hero-story,
  .works-v105-shell,
  .reviews-shell,
  .contact-card,
  .services-price-shell,
  .all-works-shell {
    background-color: rgba(255,255,255,.50) !important;
  }
}


/* ===========================================================
   v12.5 TECHFIX ONLY — no visual changes
   Match perf-v125.js offscreen pause class to the stylesheet.
   =========================================================== */
.perf-v125-paused,
.perf-v125-paused *,
.perf-v125-paused::before,
.perf-v125-paused::after,
.perf-v125-paused *::before,
.perf-v125-paused *::after {
  animation-play-state: paused !important;
}


/* ===========================================================
   v12.6 - requested fix: restore dark services shell and keep clouds
   only on the far page background, not bleeding through the blocks.
   =========================================================== */
body::before,
body::after {
  content: none !important;
  display: none !important;
}

/* Keep the cloud texture on the page background only. */
body {
  position: relative !important;
  background-color: #efe7e1 !important;
  background-image:
    radial-gradient(920px 640px at 16% 10%, rgba(255,255,255,.42) 0%, rgba(255,255,255,.12) 38%, rgba(255,255,255,0) 68%),
    radial-gradient(860px 620px at 84% 14%, rgba(197,155,171,.16) 0%, rgba(197,155,171,.08) 42%, rgba(197,155,171,0) 72%),
    radial-gradient(980px 720px at 52% 84%, rgba(211,190,178,.12) 0%, rgba(211,190,178,.05) 46%, rgba(211,190,178,0) 74%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0) 24%, rgba(122,82,97,.018) 100%),
    url("/assets/luxury-powder-marble-v124.webp") !important;
  background-size: auto, auto, auto, 100% 100%, 1560px 1560px !important;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, repeat !important;
  background-position: center top, center top, center top, center top, center top !important;
  background-blend-mode: screen, normal, normal, normal, normal !important;
}

/* Restore the section backgrounds so the body texture stays behind them. */
.topbar .nav,
.hero-shell,
.price-shell,
.reviews-shell,
.contact-card,
.works-v105-shell {
  background-color: rgba(255,255,255,.56) !important;
}

.hero-story {
  background: linear-gradient(180deg, rgba(255,255,255,.30), rgba(255,255,255,.12)) !important;
}

.services-price-shell {
  background:
    radial-gradient(900px 520px at 100% 0%, rgba(169,101,121,.30), transparent 62%),
    radial-gradient(700px 420px at 0% 100%, rgba(125,76,94,.16), transparent 68%),
    #382b30 !important;
  background-color: #382b30 !important;
}

@media (max-width: 1279px) {
  body {
    background-size: auto, auto, auto, 100% 100%, 1120px 1120px !important;
  }
}


/* ===========================================================
   v12.7 - unify both arrow controls + soften reviews cards
   Requested: less "kolkhoz", same color, mirrored / blurred, same style.
   Also remove the harsh review outline/shadow and give a small reflective look.
   =========================================================== */

/* SAME style for carousel arrows and lightbox arrows. */
.works-v115-nav,
.works-lightbox-nav {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: grid !important;
  place-items: center !important;
  width: 58px !important;
  height: 58px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: rgba(255,255,255,.98) !important;
  background:
    radial-gradient(circle at 28% 24%, rgba(255,255,255,.20), transparent 36%),
    linear-gradient(180deg, rgba(130,84,101,.56), rgba(55,34,43,.66) 48%, rgba(34,22,28,.78) 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 -10px 22px rgba(0,0,0,.18),
    0 10px 22px rgba(31,18,24,.18) !important;
  backdrop-filter: blur(16px) saturate(1.08) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.08) !important;
  transition: transform .22s cubic-bezier(.2,.75,.2,1), box-shadow .22s ease, background .22s ease, border-color .22s ease !important;
}

.works-v115-nav::before,
.works-lightbox-nav::before {
  content: "" !important;
  position: absolute !important;
  inset: 2px !important;
  border-radius: inherit !important;
  background: linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.03) 38%, rgba(255,255,255,0) 72%) !important;
  pointer-events: none !important;
}

.works-v115-nav::after,
.works-lightbox-nav::after {
  content: "" !important;
  position: absolute !important;
  left: 15% !important;
  right: 15% !important;
  bottom: 6px !important;
  height: 11px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,0)) !important;
  opacity: .55 !important;
  filter: blur(6px) !important;
  pointer-events: none !important;
}

.works-v115-nav:hover,
.works-v115-nav:focus-visible,
.works-lightbox-nav:hover,
.works-lightbox-nav:focus-visible {
  border-color: rgba(255,255,255,.24) !important;
  background:
    radial-gradient(circle at 28% 24%, rgba(255,255,255,.24), transparent 38%),
    linear-gradient(180deg, rgba(144,95,114,.60), rgba(64,40,50,.70) 48%, rgba(37,24,31,.82) 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -10px 22px rgba(0,0,0,.20),
    0 14px 30px rgba(31,18,24,.22),
    0 0 20px rgba(212,136,168,.10) !important;
}

.works-v115-nav:active,
.works-lightbox-nav:active {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -8px 18px rgba(0,0,0,.22),
    0 8px 18px rgba(31,18,24,.16) !important;
}

.works-v115-nav .works-arrow-icon,
.works-lightbox-nav-icon {
  position: relative !important;
  z-index: 2 !important;
}

.works-v115-nav .works-arrow-icon svg,
.works-lightbox-nav-icon svg {
  width: 20px !important;
  height: 20px !important;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.18)) !important;
}

/* Keep the lightbox arrows at the screen edges. */
.works-lightbox-prev { left: clamp(18px, 3.2vw, 52px) !important; right: auto !important; }
.works-lightbox-next { right: clamp(18px, 3.2vw, 52px) !important; left: auto !important; }

@media (max-width: 1279px) {
  .works-v115-nav,
  .works-lightbox-nav {
    width: 50px !important;
    height: 50px !important;
  }

  .works-v115-nav .works-arrow-icon svg,
  .works-lightbox-nav-icon svg {
    width: 18px !important;
    height: 18px !important;
  }
}

/* Reviews: remove the crude border/shadow and make them look more mirror-glass. */
.review-marquee-card {
  position: relative !important;
  overflow: hidden !important;
  border: 0 !important;
  box-shadow: none !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.84), rgba(249,243,241,.62) 62%, rgba(246,238,236,.54) 100%) !important;
  backdrop-filter: blur(16px) saturate(1.03) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.03) !important;
}

.review-marquee-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  pointer-events: none !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.36), rgba(255,255,255,.08) 24%, rgba(255,255,255,0) 48%),
    linear-gradient(110deg, rgba(255,255,255,0) 14%, rgba(255,255,255,.26) 34%, rgba(255,255,255,0) 56%) !important;
  opacity: .78 !important;
}

.review-marquee-card::after {
  content: "" !important;
  position: absolute !important;
  left: 18% !important;
  right: 18% !important;
  bottom: 8px !important;
  height: 16px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0)) !important;
  opacity: .62 !important;
  filter: blur(10px) !important;
  pointer-events: none !important;
}

.review-marquee-card:hover {
  transform: translateY(-4px) !important;
  border-color: transparent !important;
  box-shadow: none !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.88), rgba(249,243,241,.66) 62%, rgba(246,238,236,.56) 100%) !important;
}


/* ===========================================================
   v12.9 - reviews: right-side stats + visible short mirror reflection
   =========================================================== */

/* Desktop header: Reviews on the left, all stats on the right. */
#reviews .reviews-heading-row {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: clamp(40px, 6vw, 110px) !important;
  width: 100% !important;
  margin: 0 0 48px !important;
  padding-top: 28px !important;
}

#reviews .reviews-title {
  flex: 0 0 auto !important;
  margin: 0 !important;
  transform: translateY(15px) !important;
}

#reviews .reviews-title .section-display {
  margin: 0 !important;
}

#reviews .reviews-summary {
  flex: 1 1 auto !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

#reviews .review-stat {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

/* Make enough physical space for the reflection under the moving cards. */
#reviews .reviews-marquee-shell {
  padding-top: 10px !important;
  padding-bottom: 84px !important;
}

/* Actual mirrored copy of each card. Only the first ~20% is visible, fading away. */
#reviews .review-marquee-card {
  border: 0 !important;
  box-shadow: none !important;
  -webkit-box-reflect: below 10px linear-gradient(
    to top,
    rgba(255,255,255,.34) 0%,
    rgba(255,255,255,.20) 7%,
    rgba(255,255,255,.10) 14%,
    rgba(255,255,255,.035) 20%,
    rgba(255,255,255,0) 27%
  ) !important;
}

/* V127 had a fake inner reflection strip. Kill it; box-reflect above is the real one. */
#reviews .review-marquee-card::after {
  content: none !important;
  display: none !important;
}

#reviews .review-marquee-card:hover {
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width:1279px) {
  #reviews .reviews-heading-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 22px !important;
    margin-bottom: 34px !important;
    padding-top: 10px !important;
  }

  #reviews .reviews-title {
    transform: none !important;
  }

  #reviews .reviews-summary {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }
}

@media (max-width: 1279px) {
  #reviews .reviews-marquee-shell {
    padding-bottom: 68px !important;
  }
}


/* ===========================================================
   v13.0 - premium 3D floor reflection for reviews
   Research direction: 3D perspective + rotateX floor plane + fade mask,
   instead of a flat -webkit-box-reflect strip.
   =========================================================== */

/* Disable the old flat reflection from v12.9. */
#reviews .review-marquee-card {
  -webkit-box-reflect: unset !important;
}

#reviews .reviews-marquee-shell {
  padding-bottom: 112px !important;
}

#reviews .reviews-marquee-set {
  align-items: flex-start !important;
}

#reviews .review-card-stage {
  position: relative !important;
  flex: 0 0 365px !important;
  width: 365px !important;
  min-width: 365px !important;
  transform-style: preserve-3d !important;
}

#reviews .review-card-stage > .review-marquee-card {
  width: 100% !important;
  flex: none !important;
  position: relative !important;
  z-index: 2 !important;
}

/* A real separate mirrored card laid onto a virtual glossy floor. */
#reviews .review-card-reflection {
  position: absolute !important;
  z-index: 0 !important;
  left: 5% !important;
  top: calc(100% + 7px) !important;
  width: 90% !important;
  height: 126px !important;
  overflow: hidden !important;
  pointer-events: none !important;
  user-select: none !important;
  transform-origin: 50% 0% !important;
  transform: perspective(520px) rotateX(60deg) translateY(-4px) scaleX(.97) !important;
  clip-path: polygon(2% 0%, 98% 0%, 83% 100%, 17% 100%) !important;
  -webkit-mask-image: linear-gradient(to bottom,
    rgba(0,0,0,.78) 0%,
    rgba(0,0,0,.50) 24%,
    rgba(0,0,0,.24) 51%,
    rgba(0,0,0,.07) 74%,
    transparent 100%) !important;
  mask-image: linear-gradient(to bottom,
    rgba(0,0,0,.78) 0%,
    rgba(0,0,0,.50) 24%,
    rgba(0,0,0,.24) 51%,
    rgba(0,0,0,.07) 74%,
    transparent 100%) !important;
  opacity: .28 !important;
  filter: blur(1.4px) saturate(.72) contrast(.92) !important;
}

#reviews .review-card-reflection-inner {
  width: 100% !important;
  min-height: 300px !important;
  transform: scaleY(-1) !important;
  transform-origin: 50% 50% !important;
}

#reviews .review-card-reflection-card {
  width: 100% !important;
  min-height: 300px !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  transition: none !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.84), rgba(249,243,241,.62) 62%, rgba(246,238,236,.54) 100%) !important;
}

/* Small contact highlight where the card meets the reflective plane. */
#reviews .review-card-stage::after {
  content: "" !important;
  position: absolute !important;
  z-index: 3 !important;
  left: 12% !important;
  right: 12% !important;
  top: calc(100% + 5px) !important;
  height: 2px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg,
    transparent,
    rgba(255,255,255,.34) 22%,
    rgba(255,255,255,.58) 50%,
    rgba(255,255,255,.34) 78%,
    transparent) !important;
  filter: blur(.6px) !important;
  opacity: .48 !important;
  pointer-events: none !important;
}

/* Keep hover elegant: reflection follows the same tiny lift without jumping. */
#reviews .review-card-stage:hover > .review-marquee-card {
  transform: translateY(-4px) !important;
}

#reviews .review-card-stage:hover .review-card-reflection {
  transform: perspective(520px) rotateX(60deg) translateY(-7px) scaleX(.97) !important;
  opacity: .31 !important;
}

@media (max-width: 1279px) {
  #reviews .reviews-marquee-shell {
    padding-bottom: 82px !important;
  }

  #reviews .review-card-stage {
    flex-basis: 310px !important;
    width: 310px !important;
    min-width: 310px !important;
  }

  #reviews .review-card-reflection {
    height: 96px !important;
    transform: perspective(430px) rotateX(62deg) translateY(-3px) scaleX(.97) !important;
    opacity: .23 !important;
  }
}


/* ===========================================================
   v13.1 - refined 3D mirror-floor reflection for review cards
   Card appears to stand over a glossy floor; reflection stays recognizable
   at the contact edge, recedes in perspective, then fades quickly.
   =========================================================== */
#reviews .reviews-marquee-shell {
  padding-bottom: 150px !important;
}

#reviews .review-card-stage {
  perspective: 900px !important;
  perspective-origin: 50% 100% !important;
}

#reviews .review-card-stage > .review-marquee-card {
  z-index: 4 !important;
}

/* very soft contact shadow: makes the card feel planted, not floating */
#reviews .review-card-stage::before {
  content: "" !important;
  position: absolute !important;
  z-index: 1 !important;
  left: 7% !important;
  right: 7% !important;
  top: calc(100% - 7px) !important;
  height: 24px !important;
  border-radius: 50% !important;
  background: radial-gradient(ellipse at center,
    rgba(73,51,60,.16) 0%,
    rgba(73,51,60,.07) 40%,
    rgba(73,51,60,0) 74%) !important;
  filter: blur(9px) !important;
  opacity: .48 !important;
  pointer-events: none !important;
}

/* thin bright seam exactly where card touches the virtual mirror plane */
#reviews .review-card-stage::after {
  content: "" !important;
  position: absolute !important;
  z-index: 5 !important;
  left: 8% !important;
  right: 8% !important;
  top: calc(100% + 1px) !important;
  height: 1px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg,
    transparent,
    rgba(255,255,255,.38) 16%,
    rgba(255,255,255,.76) 50%,
    rgba(255,255,255,.38) 84%,
    transparent) !important;
  box-shadow: 0 2px 9px rgba(255,255,255,.20) !important;
  opacity: .65 !important;
  pointer-events: none !important;
}

#reviews .review-card-reflection {
  left: 2.5% !important;
  top: calc(100% + 2px) !important;
  width: 95% !important;
  height: 205px !important;
  overflow: hidden !important;
  transform-origin: 50% 0% !important;
  transform:
    perspective(760px)
    rotateX(43deg)
    translateY(-1px)
    scaleX(.985)
    scaleY(.94) !important;
  clip-path: polygon(0 0,100% 0,89% 100%,11% 100%) !important;
  -webkit-mask-image: linear-gradient(to bottom,
    rgba(0,0,0,.58) 0%,
    rgba(0,0,0,.46) 15%,
    rgba(0,0,0,.30) 34%,
    rgba(0,0,0,.15) 55%,
    rgba(0,0,0,.055) 76%,
    transparent 100%) !important;
  mask-image: linear-gradient(to bottom,
    rgba(0,0,0,.58) 0%,
    rgba(0,0,0,.46) 15%,
    rgba(0,0,0,.30) 34%,
    rgba(0,0,0,.15) 55%,
    rgba(0,0,0,.055) 76%,
    transparent 100%) !important;
  opacity: .34 !important;
  filter: blur(.55px) saturate(.78) contrast(.96) !important;
}

#reviews .review-card-reflection-inner {
  width: 100% !important;
  min-height: 300px !important;
  transform: scaleY(-1) translateZ(0) !important;
  transform-origin: 50% 50% !important;
}

#reviews .review-card-reflection-card {
  min-height: 300px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.79), rgba(247,239,238,.58) 62%, rgba(241,231,231,.50) 100%) !important;
}

/* reflection becomes a touch softer away from the card, never a white stripe */
#reviews .review-card-reflection::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  pointer-events: none !important;
  background:
    linear-gradient(180deg,
      rgba(248,241,238,0) 0%,
      rgba(248,241,238,.035) 28%,
      rgba(248,241,238,.15) 66%,
      rgba(248,241,238,.52) 100%) !important;
}

#reviews .review-card-stage:hover .review-card-reflection {
  transform:
    perspective(760px)
    rotateX(43deg)
    translateY(-5px)
    scaleX(.985)
    scaleY(.94) !important;
  opacity: .36 !important;
}

@media (max-width: 1279px) {
  #reviews .reviews-marquee-shell {
    padding-bottom: 112px !important;
  }

  #reviews .review-card-reflection {
    height: 154px !important;
    transform: perspective(620px) rotateX(45deg) translateY(-1px) scaleX(.985) scaleY(.92) !important;
    opacity: .29 !important;
  }
}

/* ===========================================================
   v13.1 FINAL - compact full-card mirror plane
   The entire card is compressed into the reflection plane instead of
   cropping only the bottom strip. This produces a real 3D floor read.
   =========================================================== */
#reviews .reviews-marquee-shell {
  padding-bottom: 132px !important;
}

#reviews .review-card-reflection {
  left: 3% !important;
  top: calc(100% + 1px) !important;
  width: 94% !important;
  height: 136px !important;
  transform-origin: 50% 0% !important;
  transform: perspective(760px) rotateX(20deg) scaleX(.98) !important;
  clip-path: polygon(0 0, 100% 0, 83% 100%, 17% 100%) !important;
  opacity: .18 !important;
  filter: blur(1.7px) saturate(.65) contrast(.90) !important;
  -webkit-mask-image: linear-gradient(to bottom,
    rgba(0,0,0,.70) 0%,
    rgba(0,0,0,.44) 24%,
    rgba(0,0,0,.20) 58%,
    transparent 100%) !important;
  mask-image: linear-gradient(to bottom,
    rgba(0,0,0,.70) 0%,
    rgba(0,0,0,.44) 24%,
    rgba(0,0,0,.20) 58%,
    transparent 100%) !important;
}

#reviews .review-card-reflection-inner {
  width: 100% !important;
  min-height: 300px !important;
  transform-origin: 50% 0% !important;
  transform: translateY(126px) scaleY(-.42) !important;
}

#reviews .review-card-reflection-card {
  min-height: 300px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.80), rgba(242,233,232,.72)) !important;
}

#reviews .review-card-reflection::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,.03) 0%,
    rgba(238,229,225,.12) 55%,
    rgba(238,229,225,.60) 100%) !important;
}

#reviews .review-card-stage::before {
  left: 7% !important;
  right: 7% !important;
  top: calc(100% - 6px) !important;
  height: 22px !important;
  background: radial-gradient(ellipse at center,
    rgba(72,48,58,.16) 0%,
    rgba(72,48,58,.065) 44%,
    transparent 72%) !important;
  filter: blur(8px) !important;
  opacity: .46 !important;
}

#reviews .review-card-stage::after {
  left: 10% !important;
  right: 10% !important;
  top: 100% !important;
  height: 1px !important;
  opacity: .60 !important;
}

#reviews .review-card-stage:hover .review-card-reflection {
  transform: perspective(760px) rotateX(20deg) translateY(-3px) scaleX(.98) !important;
  opacity: .20 !important;
}

@media (max-width: 1279px) {
  #reviews .reviews-marquee-shell {
    padding-bottom: 98px !important;
  }

  #reviews .review-card-reflection {
    height: 104px !important;
    transform: perspective(620px) rotateX(22deg) scaleX(.98) !important;
    opacity: .16 !important;
  }

  #reviews .review-card-reflection-inner {
    transform: translateY(101px) scaleY(-.34) !important;
  }
}


/* ===========================================================
   v13.2 - FINAL 3D review reflection
   A short visible trapezoid mirror-plane under every card.
   The real lower content of the card is mirrored at the contact edge,
   then recedes and fades into the page background.
   =========================================================== */
#reviews .reviews-marquee-shell {
  padding-bottom: 132px !important;
}

#reviews .review-card-stage {
  perspective: 900px !important;
  perspective-origin: 50% 100% !important;
}

#reviews .review-card-stage::before {
  content: "" !important;
  position: absolute !important;
  z-index: 1 !important;
  left: 8% !important;
  right: 8% !important;
  top: calc(100% - 7px) !important;
  height: 20px !important;
  border-radius: 50% !important;
  background: radial-gradient(ellipse at center,
    rgba(90,57,70,.16) 0%,
    rgba(90,57,70,.055) 46%,
    transparent 74%) !important;
  filter: blur(8px) !important;
  opacity: .58 !important;
  pointer-events: none !important;
}

#reviews .review-card-stage::after {
  content: "" !important;
  position: absolute !important;
  z-index: 5 !important;
  left: 12% !important;
  right: 12% !important;
  top: 100% !important;
  height: 1px !important;
  background: linear-gradient(90deg,
    transparent,
    rgba(255,255,255,.62) 20%,
    rgba(255,255,255,.96) 50%,
    rgba(255,255,255,.62) 80%,
    transparent) !important;
  box-shadow: 0 0 7px rgba(255,255,255,.44) !important;
  opacity: .72 !important;
  pointer-events: none !important;
}

#reviews .review-card-reflection {
  position: absolute !important;
  z-index: 0 !important;
  left: 4% !important;
  top: calc(100% + 1px) !important;
  width: 92% !important;
  height: 118px !important;
  overflow: hidden !important;
  pointer-events: none !important;
  user-select: none !important;
  transform-origin: 50% 0% !important;
  transform: rotateX(61deg) !important;
  clip-path: polygon(0 0,100% 0,81% 100%,19% 100%) !important;
  background: linear-gradient(to bottom,
    rgba(213,188,198,.30) 0%,
    rgba(224,205,211,.18) 34%,
    rgba(234,220,221,.08) 66%,
    rgba(239,230,226,0) 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.62) !important;
  opacity: 1 !important;
  filter: none !important;
  -webkit-mask-image: linear-gradient(to bottom,
    #000 0%,
    rgba(0,0,0,.92) 24%,
    rgba(0,0,0,.64) 58%,
    rgba(0,0,0,.22) 82%,
    transparent 100%) !important;
  mask-image: linear-gradient(to bottom,
    #000 0%,
    rgba(0,0,0,.92) 24%,
    rgba(0,0,0,.64) 58%,
    rgba(0,0,0,.22) 82%,
    transparent 100%) !important;
}

#reviews .review-card-reflection-inner {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  transform: none !important;
}

#reviews .review-card-reflection-card {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  min-height: 300px !important;
  height: 300px !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  color: #674551 !important;
  opacity: .22 !important;
  filter: blur(.35px) saturate(.50) contrast(.90) !important;
  transform-origin: 50% 0% !important;
  transform: translateY(300px) scaleY(-1) !important;
  transition: none !important;
}

#reviews .review-card-reflection-card::before,
#reviews .review-card-reflection-card::after {
  content: none !important;
  display: none !important;
}

/* remove the old extra milky overlay from v13.0/v13.1 */
#reviews .review-card-reflection::after {
  content: none !important;
  display: none !important;
}

#reviews .review-card-stage:hover .review-card-reflection {
  transform: rotateX(61deg) translateY(-2px) !important;
  opacity: 1 !important;
}

@media (max-width:1279px) {
  #reviews .reviews-marquee-shell {
    padding-bottom: 92px !important;
  }
  #reviews .review-card-reflection {
    left: 5% !important;
    width: 90% !important;
    height: 88px !important;
    transform: rotateX(63deg) !important;
  }
  #reviews .review-card-reflection-card {
    min-height: 270px !important;
    height: 270px !important;
    transform: translateY(270px) scaleY(-1) !important;
  }
}


/* ===========================================================
   v13.3 - reflection rebuilt after browser/spec research
   Key fix: perspective lives on an outer 3D plane; clipping/mask live on
   the inner texture. The reflected clone keeps the card surface instead
   of reflecting only floating text.
   =========================================================== */
#reviews .reviews-marquee-shell {
  padding-bottom: 156px !important;
}

#reviews .review-card-stage {
  perspective: 1100px !important;
  perspective-origin: 50% 100% !important;
  transform-style: preserve-3d !important;
}

/* soft contact with the imaginary glossy floor */
#reviews .review-card-stage::before {
  content: "" !important;
  position: absolute !important;
  z-index: 1 !important;
  left: 10% !important;
  right: 10% !important;
  top: calc(100% - 4px) !important;
  height: 14px !important;
  border-radius: 50% !important;
  background: radial-gradient(ellipse at center,
    rgba(74,48,58,.12) 0%,
    rgba(74,48,58,.045) 48%,
    transparent 76%) !important;
  filter: blur(7px) !important;
  opacity: .55 !important;
  pointer-events: none !important;
}

#reviews .review-card-stage::after {
  content: "" !important;
  position: absolute !important;
  z-index: 4 !important;
  left: 8% !important;
  right: 8% !important;
  top: 100% !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42) 24%, rgba(255,255,255,.82) 50%, rgba(255,255,255,.42) 76%, transparent) !important;
  box-shadow: 0 0 5px rgba(255,255,255,.28) !important;
  opacity: .62 !important;
  pointer-events: none !important;
}

/* OUTER 3D PLANE: no mask, no clip, no filter, no overflow clipping. */
#reviews .review-card-reflection {
  position: absolute !important;
  z-index: 0 !important;
  left: 2% !important;
  top: calc(100% + 1px) !important;
  width: 96% !important;
  height: 148px !important;
  overflow: visible !important;
  clip-path: none !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  filter: none !important;
  opacity: 1 !important;
  background: none !important;
  box-shadow: none !important;
  pointer-events: none !important;
  user-select: none !important;
  transform-origin: 50% 0% !important;
  transform-style: preserve-3d !important;
  transform: rotateX(34deg) translateZ(0) scaleX(.985) !important;
}

/* INNER TEXTURE: this is where the 2D fade/taper is applied. */
#reviews .review-card-reflection-inner {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 148px !important;
  min-height: 0 !important;
  overflow: hidden !important;
  clip-path: polygon(1% 0%, 99% 0%, 91% 100%, 9% 100%) !important;
  -webkit-mask-image: linear-gradient(to bottom,
    rgba(0,0,0,.78) 0%,
    rgba(0,0,0,.60) 22%,
    rgba(0,0,0,.32) 52%,
    rgba(0,0,0,.10) 78%,
    transparent 100%) !important;
  mask-image: linear-gradient(to bottom,
    rgba(0,0,0,.78) 0%,
    rgba(0,0,0,.60) 22%,
    rgba(0,0,0,.32) 52%,
    rgba(0,0,0,.10) 78%,
    transparent 100%) !important;
  background: linear-gradient(to bottom,
    rgba(255,255,255,.16),
    rgba(229,209,216,.075) 48%,
    rgba(239,229,226,0) 100%) !important;
  transform: none !important;
}

/* Full mirrored card. Crucially: keep its glass surface, don't make it transparent. */
#reviews .review-card-reflection-card {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  min-height: 300px !important;
  height: 300px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 30px !important;
  box-shadow: none !important;
  background: linear-gradient(180deg,
    rgba(255,255,255,.76),
    rgba(249,243,241,.55) 62%,
    rgba(246,238,236,.46) 100%) !important;
  color: #5b444c !important;
  opacity: .28 !important;
  filter: blur(.28px) saturate(.58) contrast(.94) !important;
  transform-origin: 50% 50% !important;
  transform: scaleY(-1) !important;
  transition: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#reviews .review-card-reflection-card::before,
#reviews .review-card-reflection-card::after,
#reviews .review-card-reflection::after {
  content: none !important;
  display: none !important;
}

#reviews .review-card-stage:hover .review-card-reflection {
  transform: rotateX(34deg) translateY(-2px) scaleX(.985) !important;
}

@media (max-width:1279px) {
  #reviews .reviews-marquee-shell { padding-bottom: 112px !important; }
  #reviews .review-card-reflection {
    left: 3% !important;
    width: 94% !important;
    height: 106px !important;
    transform: rotateX(38deg) scaleX(.985) !important;
  }
  #reviews .review-card-reflection-inner { height: 106px !important; }
  #reviews .review-card-reflection-card {
    min-height: 270px !important;
    height: 270px !important;
  }
}


/* ===========================================================
   v13.4 - REMOVE review reflections completely.
   Keep the clean borderless/glass review cards and V129 heading layout.
   =========================================================== */
#reviews .reviews-marquee-shell {
  padding: 10px 0 18px !important;
  overflow: hidden !important;
}

#reviews .reviews-marquee-set {
  align-items: stretch !important;
}

#reviews .review-marquee-card {
  -webkit-box-reflect: none !important;
  margin-bottom: 0 !important;
}

/* Safety: even if stale reflection markup ever reappears, never render it. */
#reviews .review-card-reflection,
#reviews .review-card-reflection-inner,
#reviews .review-card-reflection-card {
  display: none !important;
}

#reviews .review-card-stage::before,
#reviews .review-card-stage::after {
  content: none !important;
  display: none !important;
}

/* ===========================================================
   v13.5 - review direction + Lenis smooth wheel integration
   =========================================================== */

/* Reviews now travel RIGHT -> LEFT. The duplicated review set makes the
   0 -> -50% loop seamless. */
@keyframes reviewsMoveLeftV135 {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.reviews-marquee-track {
  transform: translateX(0) !important;
  animation-name: reviewsMoveLeftV135 !important;
}

/* Lenis recommended core behavior, kept deliberately minimal so nested UI
   and the Yandex iframe stay interactive. */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

/* During the inertial tail, keep expensive decorative infinite animations
   paused just like the existing physical-wheel performance guard does. */
.lenis-scroll-active-v135 .services-price-shell .sp-neon-rotor,
.lenis-scroll-active-v135 .sp-kicker-dot,
.lenis-scroll-active-v135 .sp-group-dot,
.lenis-scroll-active-v135 .hero-overline .dot {
  animation-play-state: paused !important;
}

@media (prefers-reduced-motion: reduce) {
  .reviews-marquee-track {
    animation-play-state: paused !important;
  }
}


/* ===========================================================
   v13.6 - regression fixes after Lenis integration
   1) reviews animate right -> left again (do not lock transform with !important)
   2) carousel wheel is isolated from page scroll
   3) lightweight smooth-scroll compositor hints only; no visual changes
   =========================================================== */
@keyframes reviewsMoveLeftV136 {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

#reviews .reviews-marquee-track {
  transform: translateX(0);
  animation: reviewsMoveLeftV136 var(--reviews-speed) linear infinite !important;
  animation-play-state: running !important;
}

/* Do not freeze the marquee just because the mouse happens to be over it. */
#reviews .reviews-marquee-shell:hover .reviews-marquee-track {
  animation-play-state: running !important;
}

/* The carousel owns wheel input while the pointer is over it. */
.works-carousel-viewport[data-lenis-prevent-wheel] {
  overscroll-behavior: contain !important;
}

/* Small compositor hints for the fixed glass nav / hero media during inertial scroll. */
.topbar,
.topbar .nav,
.hero-photo-wrap,
.hero-photo-shell {
  will-change: transform;
}

/* Pause only the expensive services decoration while Lenis is actively moving.
   The class is now applied directly to the services shell, not <html>. */
.services-price-shell.lenis-motion-pause-v136 .sp-neon-rotor,
.services-price-shell.lenis-motion-pause-v136 .sp-kicker-dot,
.services-price-shell.lenis-motion-pause-v136 .sp-group-dot {
  animation-play-state: paused !important;
}


/* ===========================================================
   v13.7 - hard fix for reviews marquee + fine Lenis tuning
   Reviews use the individual `translate` property so historical
   `transform: ... !important` rules cannot freeze the animation.
   =========================================================== */
@keyframes reviewsMoveLeftV137 {
  from { translate: 0 0; }
  to   { translate: -50% 0; }
}

#reviews .reviews-marquee-track {
  transform: none !important;
  translate: 0 0;
  animation-name: reviewsMoveLeftV137 !important;
  animation-duration: var(--reviews-speed) !important;
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
  animation-play-state: running !important;
  will-change: translate;
}

#reviews .reviews-marquee-shell:hover .reviews-marquee-track {
  animation-play-state: running !important;
}

.services-price-shell.lenis-motion-pause-v137 .sp-neon-rotor,
.services-price-shell.lenis-motion-pause-v137 .sp-kicker-dot,
.services-price-shell.lenis-motion-pause-v137 .sp-group-dot {
  animation-play-state: paused !important;
}

@media (prefers-reduced-motion: reduce) {
  #reviews .reviews-marquee-track {
    animation-play-state: paused !important;
  }
}

/* ===========================================================
   v13.8 - draggable reviews marquee + midpoint Lenis stopping
   Visual design unchanged. JS owns marquee movement.
   =========================================================== */
#reviews .reviews-marquee-shell {
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y;
}

#reviews .reviews-marquee-shell.is-dragging {
  cursor: grabbing;
}

#reviews .reviews-marquee-track,
#reviews .reviews-marquee-shell:hover .reviews-marquee-track {
  animation: none !important;
  translate: none !important;
  transform: translate3d(0,0,0);
  will-change: transform;
}

#reviews .review-marquee-card,
#reviews .review-marquee-card * {
  -webkit-user-drag: none;
}

.services-price-shell.lenis-motion-pause-v138 .sp-neon-rotor,
.services-price-shell.lenis-motion-pause-v138 .sp-kicker-dot,
.services-price-shell.lenis-motion-pause-v138 .sp-group-dot {
  animation-play-state: paused !important;
}

/* ===========================================================
   v13.9 - reviews drag hard fix
   One source of truth: JS writes --reviews-x; CSS owns transform.
   This deliberately defeats historical transform/translate !important rules.
   Visual design unchanged.
   =========================================================== */
#reviews .reviews-marquee-track,
#reviews .reviews-marquee-shell:hover .reviews-marquee-track {
  animation: none !important;
  translate: none !important;
  transform: translate3d(var(--reviews-x, 0px), 0, 0) !important;
  will-change: transform;
}

.services-price-shell.lenis-motion-pause-v139 .sp-neon-rotor,
.services-price-shell.lenis-motion-pause-v139 .sp-kicker-dot,
.services-price-shell.lenis-motion-pause-v139 .sp-group-dot {
  animation-play-state: paused !important;
}

/* ===========================================================
   v14.0 - permanent visual-editor export
   User-approved values exported from /?edit=1 on 2026-09-02.
   =========================================================== */
@media (min-width:1280px){
  .hero{padding-top:170px!important;padding-bottom:80px!important;}
  .hero-grid{gap:51px!important;grid-template-columns:minmax(0,1fr) minmax(360px,495px)!important;}
  .hero-brand-main{font-size:105px!important;}
  .hero-overline{margin-bottom:32px!important;}
  .hero-story{max-width:710px!important;padding:40px 24px!important;}
  .hero-story p{font-size:20px!important;}
  .hero-actions{margin-top:126px!important;}
  .hero-facts{padding-top:60px!important;}
  .hero-photo-wrap,.hero-photo-wrap.reveal{max-width:495px!important;height:710px!important;margin-top:9px!important;border-radius:38px 38px 186px 38px!important;}
  .hero-photo-shell{border-radius:38px 38px 186px 38px!important;}
  .hero-photo{object-position:50% 0%!important;}
  .hero-photo-wrap::before{inset:-2px!important;padding:2px!important;border-radius:calc(38px + 2px) calc(38px + 2px) calc(186px + 2px) calc(38px + 2px)!important;filter:drop-shadow(0 0 3px rgba(255,250,252,.98)) drop-shadow(0 0 58px rgba(255,158,201,0.95)) drop-shadow(0 0 135px rgba(235,92,157,0.95))!important;}
  .hero-photo-wrap::after{inset:-3px!important;padding:3px!important;border-radius:calc(38px + 3px) calc(38px + 3px) calc(186px + 3px) calc(38px + 3px)!important;opacity:0.82!important;filter:blur(16px) drop-shadow(0 0 100px rgba(255,151,197,0.82)) drop-shadow(0 0 135px rgba(232,91,154,0.68))!important;}
  .hero-photo-wrap{box-shadow:0 0 55px rgba(225,105,164,0.28)!important;}
  .brand-strip{margin-top:-3px!important;}
  .brand-set span{font-size:18px!important;}
}

section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(5) > article.sp-service:nth-of-type(1) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(5) > article.sp-service:nth-of-type(2) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(5) > article.sp-service:nth-of-type(3) > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}
section#services > div.container > div.services-price-shell.reveal > div.sp-body:nth-of-type(2) > div.sp-group:nth-of-type(7) > article.sp-service > div.sp-time:nth-of-type(3){translate:15px 0px!important;text-align:left!important}

section#reviews{translate:0px -65px!important}
section#contacts{translate:0px -80px!important}

.services-price-shell.lenis-motion-pause-v140 .sp-neon-rotor,
.services-price-shell.lenis-motion-pause-v140 .sp-kicker-dot,
.services-price-shell.lenis-motion-pause-v140 .sp-group-dot {
  animation-play-state: paused !important;
}

/* ===========================================================
   v14.1 - editor reliability pass
   Full text export, autosave, precise numeric controls.
   =========================================================== */
.ve-panel{max-width:min(720px,calc(100vw - 12px))!important;}
.ue-autosave-status{
  margin:-2px 0 8px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.55);
  color:#8d7880;
  font-size:9.5px;
  font-weight:800;
  text-align:center;
  transition:.2s ease;
}
.ue-autosave-status.is-saved{
  background:rgba(230,244,235,.84);
  color:#53735e;
}
.ue-number-wrap{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-width:78px;
  justify-content:flex-end;
}
.ue-number-wrap small{
  min-width:18px;
  color:#9b7f89;
  font-size:9px;
  font-weight:800;
}
.ve-panel .ue-number{
  width:58px;
  min-width:0;
  box-sizing:border-box;
  border:1px solid rgba(167,101,121,.14);
  border-radius:9px;
  outline:none;
  background:rgba(255,255,255,.78);
  color:#755463;
  padding:4px 5px;
  text-align:right;
  font:800 10px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;
  font-variant-numeric:tabular-nums;
}
.ve-panel .ue-number:focus{
  border-color:rgba(181,101,137,.5);
  box-shadow:0 0 0 2px rgba(181,101,137,.08);
}
.ue-text-hint{
  color:#a38e95;
  font-size:8.5px;
  font-weight:700;
  white-space:nowrap;
}
.ue-range-control .ve-label-row{align-items:center;}
.ue-range-control input[type=range]{display:block;}
@media(max-width:1279px){
  .ue-text-hint{display:none;}
  .ve-panel .ue-number{width:54px;}
}

/* ===========================================================
   v14.2 - reviews mouse drag / inertia polish
   One physics loop owns autoplay + drag + release. No visual redesign.
   =========================================================== */
#reviews .reviews-marquee-shell {
  cursor: grab !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  touch-action: pan-y pinch-zoom !important;
  overscroll-behavior-inline: contain;
}

#reviews .reviews-marquee-shell.is-dragging,
#reviews .reviews-marquee-shell.is-dragging .review-marquee-card {
  cursor: grabbing !important;
}

#reviews .review-marquee-card {
  cursor: grab !important;
  -webkit-user-drag: none !important;
}

#reviews .reviews-marquee-track,
#reviews .reviews-marquee-shell:hover .reviews-marquee-track {
  animation: none !important;
  translate: none !important;
  transform: translate3d(var(--reviews-x, 0px), 0, 0) !important;
  will-change: transform;
}


/* ===========================================================
   v14.3 - contacts finishing pass
   - Yandex map opens cleanly with a closed placemark (no business balloon)
   - phone is visibly interactive on hover/focus
   - Telegram points directly to @koshkoped
   =========================================================== */
#contacts .contact-row a[href^="tel:"] {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  color: var(--ink);
  text-decoration: none;
  cursor: pointer;
  transition: color .22s var(--ease), transform .22s var(--ease);
}

#contacts .contact-row a[href^="tel:"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 1px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0;
  transform: scaleX(.35);
  transform-origin: left center;
  transition: opacity .22s var(--ease), transform .22s var(--ease);
}

#contacts .contact-row a[href^="tel:"]:hover,
#contacts .contact-row a[href^="tel:"]:focus-visible {
  color: var(--brand);
  transform: translateY(-1px);
}

#contacts .contact-row a[href^="tel:"]:hover::after,
#contacts .contact-row a[href^="tel:"]:focus-visible::after {
  opacity: .72;
  transform: scaleX(1);
}

#contacts .contact-row a[href^="tel:"]:focus-visible {
  outline: 2px solid rgba(167,101,121,.28);
  outline-offset: 5px;
  border-radius: 4px;
}


/* ===========================================================
   v149 — global scrollbar refresh + quick contact dock
   =========================================================== */
html{scrollbar-gutter:stable both-edges;}
*{scrollbar-width:thin;scrollbar-color:rgba(220,168,181,.98) rgba(255,255,255,.34);}
*::-webkit-scrollbar{width:12px;height:12px;}
*::-webkit-scrollbar-track{background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(243,233,233,.68));border-radius:999px;border:1px solid rgba(168,129,143,.10);}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(224,181,193,.95),rgba(205,149,168,.92));border-radius:999px;border:2px solid rgba(255,255,255,.72);box-shadow:inset 0 1px 1px rgba(255,255,255,.55),0 2px 8px rgba(150,92,115,.16);}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(216,165,179,.98),rgba(190,132,153,.95));}
*::-webkit-scrollbar-corner{background:transparent;}
.ve-body,.modal-panel,.works-lightbox-panel,.portfolio-gallery,.contact-shell,.service-editor-panel{scrollbar-color:rgba(220,168,181,.98) rgba(255,255,255,.42);}

.quick-contact-dock{position:fixed;right:max(14px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);z-index:58;display:grid;gap:12px;padding:12px 10px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(120,83,96,.14);backdrop-filter:blur(18px) saturate(1.05);box-shadow:0 18px 34px rgba(67,44,53,.12),inset 0 1px 0 rgba(255,255,255,.7);}
.quick-contact-btn{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:#151214;text-decoration:none;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(246,240,240,.88));border:1.5px solid rgba(32,22,27,.78);box-shadow:0 8px 18px rgba(66,41,50,.1),inset 0 1px 0 rgba(255,255,255,.88);transition:transform .24s ease,box-shadow .24s ease,background .24s ease,color .24s ease;}
.quick-contact-btn svg{width:29px;height:29px;display:block;}
.quick-contact-btn:hover,.quick-contact-btn:focus-visible{transform:translateY(-2px) scale(1.02);background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(245,231,235,.95));box-shadow:0 14px 28px rgba(80,48,60,.15),inset 0 1px 0 rgba(255,255,255,.96);}
.quick-contact-btn:focus-visible{outline:2px solid rgba(195,127,150,.36);outline-offset:3px;}
body.ve-open .quick-contact-dock,body.modal-lock .quick-contact-dock{display:none;}

@media (max-width:1279px){
  .quick-contact-dock{top:auto;right:12px;bottom:calc(env(safe-area-inset-bottom) + 90px);transform:none;}
  .quick-contact-btn{width:58px;height:58px;}
  .quick-contact-btn svg{width:26px;height:26px;}
}


/* ===========================================================
   v150 — refined quick dock, cleaner lightbox, modal scrollbar repair
   =========================================================== */
/* Global scrollbar polish */
html, body { scrollbar-gutter: stable; }
*::-webkit-scrollbar-button:single-button,
*::-webkit-scrollbar-button { display:none !important; width:0 !important; height:0 !important; background:transparent !important; }
*::-webkit-scrollbar { width: 11px !important; height: 11px !important; }
*::-webkit-scrollbar-track { background: linear-gradient(180deg, rgba(255,255,255,.58), rgba(244,236,236,.72)) !important; border-radius: 999px !important; border: 1px solid rgba(174,139,151,.10) !important; }
*::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(223,178,191,.96), rgba(199,144,163,.93)) !important; border-radius: 999px !important; border: 2px solid rgba(255,255,255,.72) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 2px 8px rgba(150,92,115,.14) !important; }
*::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, rgba(216,168,182,.98), rgba(188,130,150,.96)) !important; }
*::-webkit-scrollbar-corner { background: transparent !important; }
.modal-panel { scrollbar-width: thin !important; scrollbar-color: rgba(214,161,177,.98) rgba(255,255,255,.40) !important; }
.modal-panel::-webkit-scrollbar { width: 10px !important; }
.modal-panel::-webkit-scrollbar-track { margin: 12px 0 !important; }
.modal-panel::-webkit-scrollbar-thumb { min-height: 42px !important; }

/* Pretty quick-contact dock */
.quick-contact-dock {
  position: fixed !important;
  right: max(16px, env(safe-area-inset-right)) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 58 !important;
  display: grid !important;
  gap: 12px !important;
  padding: 14px 11px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(247,240,240,.72)) !important;
  border: 1px solid rgba(150,111,126,.16) !important;
  box-shadow: 0 18px 42px rgba(73,46,57,.13), inset 0 1px 0 rgba(255,255,255,.92), inset 0 -12px 24px rgba(255,255,255,.14) !important;
  backdrop-filter: blur(18px) saturate(1.04) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.04) !important;
}
.quick-contact-dock::before {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.30), rgba(255,255,255,0) 45%, rgba(212,184,191,.08));
  pointer-events: none;
}
.quick-contact-btn {
  position: relative !important;
  z-index: 1 !important;
  width: 68px !important;
  height: 68px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  color: #1c1719 !important;
  text-decoration: none !important;
  background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(246,239,240,.96)) !important;
  border: 1.6px solid rgba(48,34,40,.75) !important;
  box-shadow: 0 10px 18px rgba(67,44,53,.08), inset 0 1px 0 rgba(255,255,255,.96), inset 0 -8px 18px rgba(255,255,255,.16) !important;
  transition: transform .22s cubic-bezier(.2,.75,.2,1), box-shadow .22s ease, background .22s ease, border-color .22s ease, opacity .22s ease !important;
}
.quick-contact-btn svg { width: 30px !important; height: 30px !important; display:block; }
.quick-contact-btn:hover, .quick-contact-btn:focus-visible {
  transform: translateY(-2px) scale(1.03) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(244,231,235,.98)) !important;
  border-color: rgba(69,45,56,.88) !important;
  box-shadow: 0 16px 28px rgba(67,44,53,.13), 0 0 0 4px rgba(229,205,211,.55), inset 0 1px 0 rgba(255,255,255,.98) !important;
}
.quick-contact-btn:active { transform: scale(.97) !important; }
.quick-contact-btn-max { font: 800 14px/1 Manrope, system-ui, sans-serif !important; letter-spacing: .08em !important; }
.quick-contact-max-mark { display:block; transform: translateY(1px); }
.quick-contact-btn.is-disabled, .quick-contact-btn:disabled {
  cursor: default !important;
  opacity: .66 !important;
  color: rgba(28,23,25,.76) !important;
}
.quick-contact-btn.is-disabled:hover, .quick-contact-btn:disabled:hover,
.quick-contact-btn.is-disabled:focus-visible, .quick-contact-btn:disabled:focus-visible {
  transform: none !important;
  box-shadow: 0 10px 18px rgba(67,44,53,.08), inset 0 1px 0 rgba(255,255,255,.96), inset 0 -8px 18px rgba(255,255,255,.16) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(246,239,240,.96)) !important;
  border-color: rgba(48,34,40,.75) !important;
  outline: none !important;
}
body.ve-open .quick-contact-dock, body.modal-lock .quick-contact-dock { display:none !important; }

/* Remove white side strips in works lightbox */
body.works-lightbox-open {
  overflow: hidden !important;
  scrollbar-gutter: auto !important;
  background: #171116 !important;
}
html:has(body.works-lightbox-open) {
  overflow: hidden !important;
  scrollbar-gutter: auto !important;
  background: #171116 !important;
}
.works-lightbox {
  position: fixed !important;
  inset: 0 !important;
  width: 100dvw !important;
  height: 100dvh !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}
.works-lightbox-backdrop {
  position: fixed !important;
  inset: 0 !important;
  width: 100dvw !important;
  height: 100dvh !important;
  background: rgba(19, 12, 16, .88) !important;
  backdrop-filter: blur(24px) saturate(.94) !important;
  -webkit-backdrop-filter: blur(24px) saturate(.94) !important;
}
.works-lightbox-panel {
  max-width: calc(100dvw - 120px) !important;
  max-height: calc(100dvh - 40px) !important;
  margin: 0 auto !important;
}
@media (max-width: 1279px) {
  .quick-contact-dock { right: 12px !important; top: auto !important; bottom: calc(env(safe-area-inset-bottom) + 92px) !important; transform: none !important; gap: 10px !important; padding: 11px 9px !important; }
  .quick-contact-btn { width: 58px !important; height: 58px !important; }
  .quick-contact-btn svg { width: 26px !important; height: 26px !important; }
  .quick-contact-btn-max { font-size: 12px !important; }
  .works-lightbox-panel { max-width: calc(100dvw - 18px) !important; max-height: calc(100dvh - 26px) !important; }
}

/* ===========================================================
   v151 — hard lightbox closed-state fix
   v150 made the backdrop paint even while the viewer was closed.
   Closed means truly hidden; dark/full-viewport backdrop exists only while .open.
   =========================================================== */
.works-lightbox:not(.open) {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.works-lightbox:not(.open) .works-lightbox-backdrop {
  visibility: hidden !important;
  opacity: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.works-lightbox:not(.open) .works-lightbox-panel,
.works-lightbox:not(.open) .works-lightbox-nav {
  visibility: hidden !important;
  pointer-events: none !important;
}
.works-lightbox.open {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.works-lightbox.open .works-lightbox-backdrop {
  visibility: visible !important;
  opacity: 1 !important;
  background: rgba(19,12,16,.88) !important;
  backdrop-filter: blur(24px) saturate(.94) !important;
  -webkit-backdrop-filter: blur(24px) saturate(.94) !important;
}
.works-lightbox.open .works-lightbox-panel,
.works-lightbox.open .works-lightbox-nav {
  visibility: visible !important;
}


/* ===========================================================
   v152 — restore real background blur in Works lightbox
   Keep side gutters gone, but do NOT cover the shared blur layer.
   =========================================================== */
.ui-blur-layer.mode-lightbox {
  background: rgba(24, 16, 20, .66) !important;
  backdrop-filter: blur(26px) saturate(.94) !important;
  -webkit-backdrop-filter: blur(26px) saturate(.94) !important;
}

/* The shared .ui-blur-layer is the only visual backdrop for the viewer. */
.works-lightbox-backdrop,
.works-lightbox.open .works-lightbox-backdrop {
  visibility: visible !important;
  opacity: 1 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.works-lightbox:not(.open) .works-lightbox-backdrop {
  visibility: hidden !important;
  opacity: 0 !important;
}

/* Remove scrollbar gutters only while the viewer is open; don't paint a fake black frame. */
body.works-lightbox-open {
  overflow: hidden !important;
  scrollbar-gutter: auto !important;
  background: inherit !important;
}
html:has(body.works-lightbox-open) {
  overflow: hidden !important;
  scrollbar-gutter: auto !important;
  background: var(--bg, #f3e9e7) !important;
}

/* Full viewport coverage without left/right white strips. */
.works-lightbox.open {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  width: 100dvw !important;
  height: 100vh !important;
  height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* ===========================================================
   v154 — interaction polish / instant Works / quick contacts
   =========================================================== */

/* Keep the V153 hero optimization in valid CSS. Services neon is no longer
   tied to Lenis inertia; its 120 ms physical-wheel pause remains in perf JS. */
.hero-photo-wrap.lenis-motion-pause-v154::before,
.hero-photo-wrap.lenis-motion-pause-v154::after {
  animation-play-state: paused !important;
}

.perf-v125-paused .reviews-marquee-track {
  will-change: auto !important;
}

/* The selected photo is visible on the very first open frame. The old opacity
   fade looked like an image-loading delay; keep only a tiny scale settle. */
.works-lightbox-panel {
  opacity: 1 !important;
  transform: translate3d(0, 4px, 0) scale(.992) !important;
  transition: transform .16s cubic-bezier(.2,.75,.2,1) !important;
}
.works-lightbox.open .works-lightbox-panel {
  opacity: 1 !important;
  transform: translate3d(0,0,0) scale(1) !important;
}
.works-lightbox-panel > img {
  opacity: 1 !important;
}

/* Quick contacts: replace the heavy bordered circles with the same restrained
   glass / plum language used by the header and the rest of the site. */
.quick-contact-dock {
  right: max(18px, env(safe-area-inset-right)) !important;
  gap: 2px !important;
  padding: 7px 6px !important;
  border-radius: 28px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.27), rgba(255,255,255,0) 42%),
    rgba(241,231,229,.72) !important;
  border: 1px solid rgba(255,255,255,.78) !important;
  box-shadow:
    0 14px 34px rgba(75,52,61,.11),
    0 3px 10px rgba(75,52,61,.045),
    inset 0 1px 0 rgba(255,255,255,.82),
    inset 0 -1px 0 rgba(94,64,75,.045) !important;
  backdrop-filter: blur(24px) saturate(1.12) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.12) !important;
}
.quick-contact-dock::before {
  content: none !important;
}
.quick-contact-btn {
  width: 50px !important;
  height: 50px !important;
  border-radius: 18px !important;
  color: var(--brand-dark) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transition:
    transform .22s var(--ease),
    background .22s ease,
    color .22s ease,
    box-shadow .22s ease !important;
}
.quick-contact-btn + .quick-contact-btn::before {
  content: "";
  position: absolute;
  left: 11px;
  right: 11px;
  top: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(75,52,61,.13), transparent);
  pointer-events: none;
}
.quick-contact-btn svg {
  width: 24px !important;
  height: 24px !important;
}
.quick-contact-btn:hover,
.quick-contact-btn:focus-visible {
  transform: translateX(-2px) !important;
  color: #684454 !important;
  background: rgba(255,255,255,.54) !important;
  box-shadow:
    0 7px 18px rgba(86,53,66,.085),
    inset 0 1px 0 rgba(255,255,255,.72) !important;
}
.quick-contact-btn:focus-visible {
  outline: 1px solid rgba(167,101,121,.36) !important;
  outline-offset: 1px !important;
}
.quick-contact-btn:active {
  transform: translateX(-1px) scale(.96) !important;
}
.quick-contact-btn-max {
  font: 800 10px/1 Manrope, system-ui, sans-serif !important;
  letter-spacing: .14em !important;
}
.quick-contact-max-mark {
  transform: translateY(.5px) !important;
}
.quick-contact-btn.is-disabled,
.quick-contact-btn:disabled {
  opacity: 1 !important;
  color: rgba(75,52,61,.38) !important;
  background: rgba(255,255,255,.13) !important;
}
.quick-contact-btn.is-disabled:hover,
.quick-contact-btn:disabled:hover,
.quick-contact-btn.is-disabled:focus-visible,
.quick-contact-btn:disabled:focus-visible {
  transform: none !important;
  color: rgba(75,52,61,.38) !important;
  background: rgba(255,255,255,.13) !important;
  box-shadow: none !important;
  outline: none !important;
}

@media (max-width: 1279px) {
  .quick-contact-dock {
    right: 12px !important;
    bottom: calc(env(safe-area-inset-bottom) + 92px) !important;
    gap: 2px !important;
    padding: 6px 5px !important;
    border-radius: 25px !important;
  }
  .quick-contact-btn {
    width: 46px !important;
    height: 46px !important;
    border-radius: 16px !important;
  }
  .quick-contact-btn svg {
    width: 22px !important;
    height: 22px !important;
  }
  .quick-contact-btn-max {
    font-size: 9px !important;
  }
}



/*
   v155 — scrollbar arrow removal + booking modal scrollbar refinement
*/
html, body {
  scrollbar-gutter: stable !important;
}

/* Kill native scrollbar arrows in Chromium/WebKit everywhere, including the booking modal. */
html::-webkit-scrollbar-button,
body::-webkit-scrollbar-button,
*::-webkit-scrollbar-button,
html::-webkit-scrollbar-button:single-button,
body::-webkit-scrollbar-button:single-button,
*::-webkit-scrollbar-button:single-button,
html::-webkit-scrollbar-button:vertical:start:decrement,
html::-webkit-scrollbar-button:vertical:end:increment,
html::-webkit-scrollbar-button:horizontal:start:decrement,
html::-webkit-scrollbar-button:horizontal:end:increment,
body::-webkit-scrollbar-button:vertical:start:decrement,
body::-webkit-scrollbar-button:vertical:end:increment,
body::-webkit-scrollbar-button:horizontal:start:decrement,
body::-webkit-scrollbar-button:horizontal:end:increment,
*::-webkit-scrollbar-button:vertical:start:decrement,
*::-webkit-scrollbar-button:vertical:end:increment,
*::-webkit-scrollbar-button:horizontal:start:decrement,
*::-webkit-scrollbar-button:horizontal:end:increment,
html::-webkit-scrollbar-button:start:increment,
html::-webkit-scrollbar-button:end:decrement,
body::-webkit-scrollbar-button:start:increment,
body::-webkit-scrollbar-button:end:decrement,
*::-webkit-scrollbar-button:start:increment,
*::-webkit-scrollbar-button:end:decrement {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Keep the global scrollbar as-is, only slightly tighter and without arrows. */
html::-webkit-scrollbar,
body::-webkit-scrollbar,
*::-webkit-scrollbar {
  width: 11px !important;
  height: 11px !important;
}

/* Booking modal: narrower, cleaner, visually centered within the panel edge. */
.modal-panel {
  scrollbar-width: thin !important;
  scrollbar-color: rgba(214,161,177,.98) rgba(255,255,255,.34) !important;
  overscroll-behavior: contain;
}
.modal-panel::-webkit-scrollbar {
  width: 8px !important;
}
.modal-panel::-webkit-scrollbar-track {
  margin: 16px 1px 16px 0 !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: linear-gradient(180deg, rgba(255,255,255,.34), rgba(245,236,236,.46)) !important;
}
.modal-panel::-webkit-scrollbar-thumb {
  min-height: 40px !important;
  border-width: 1.5px !important;
}
.modal-panel::-webkit-scrollbar-corner,
.modal-panel::-webkit-resizer {
  background: transparent !important;
}


/* ================================================================
   v156 — REAL Chromium scrollbar hardfix
   Chrome ignores ::-webkit-scrollbar when standardized
   scrollbar-width / scrollbar-color are non-auto. Restore auto first.
   ================================================================ */

/* IMPORTANT: allow Chromium/WebKit pseudo-element styling to take effect. */
html,
body,
* {
  scrollbar-width: auto !important;
  scrollbar-color: auto !important;
}

/* Global site scrollbar — same dusty-pink visual, no native buttons. */
html::-webkit-scrollbar,
body::-webkit-scrollbar,
*::-webkit-scrollbar {
  width: 10px !important;
  height: 10px !important;
}

html::-webkit-scrollbar-button,
body::-webkit-scrollbar-button,
*::-webkit-scrollbar-button,
html::-webkit-scrollbar-button:single-button,
body::-webkit-scrollbar-button:single-button,
*::-webkit-scrollbar-button:single-button,
html::-webkit-scrollbar-button:vertical,
body::-webkit-scrollbar-button:vertical,
*::-webkit-scrollbar-button:vertical,
html::-webkit-scrollbar-button:horizontal,
body::-webkit-scrollbar-button:horizontal,
*::-webkit-scrollbar-button:horizontal,
html::-webkit-scrollbar-button:start,
body::-webkit-scrollbar-button:start,
*::-webkit-scrollbar-button:start,
html::-webkit-scrollbar-button:end,
body::-webkit-scrollbar-button:end,
*::-webkit-scrollbar-button:end,
html::-webkit-scrollbar-button:decrement,
body::-webkit-scrollbar-button:decrement,
*::-webkit-scrollbar-button:decrement,
html::-webkit-scrollbar-button:increment,
body::-webkit-scrollbar-button:increment,
*::-webkit-scrollbar-button:increment {
  display: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
*::-webkit-scrollbar-track {
  background: linear-gradient(180deg, rgba(255,255,255,.58), rgba(244,236,236,.72)) !important;
  border-radius: 999px !important;
  border: 1px solid rgba(174,139,151,.10) !important;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(223,178,191,.96), rgba(199,144,163,.93)) !important;
  border-radius: 999px !important;
  border: 2px solid rgba(255,255,255,.72) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 2px 8px rgba(150,92,115,.14) !important;
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(216,168,182,.98), rgba(188,130,150,.96)) !important;
}

/* Booking: its own narrower scrollbar, inset from rounded top/bottom corners. */
.modal-panel {
  scrollbar-width: auto !important;
  scrollbar-color: auto !important;
  scrollbar-gutter: auto !important;
  overscroll-behavior: contain;
}

.modal-panel::-webkit-scrollbar {
  width: 6px !important;
  height: 6px !important;
}

.modal-panel::-webkit-scrollbar-button,
.modal-panel::-webkit-scrollbar-button:single-button,
.modal-panel::-webkit-scrollbar-button:vertical,
.modal-panel::-webkit-scrollbar-button:start,
.modal-panel::-webkit-scrollbar-button:end,
.modal-panel::-webkit-scrollbar-button:decrement,
.modal-panel::-webkit-scrollbar-button:increment {
  display: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

.modal-panel::-webkit-scrollbar-track {
  margin-block: 22px !important;
  background: rgba(208,177,185,.16) !important;
  border: 0 !important;
  border-radius: 999px !important;
}

.modal-panel::-webkit-scrollbar-thumb {
  min-height: 38px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(213,158,176,.98), rgba(190,126,150,.96)) !important;
  box-shadow: 0 1px 5px rgba(132,77,98,.16) !important;
}

.modal-panel::-webkit-scrollbar-corner {
  background: transparent !important;
}


/* v157 — booking scrollbar end inset only */
.modal-panel::-webkit-scrollbar-track {
  margin-block: 36px !important;
}


/* ================================================================
   v158 — booking scrollbar only when content really overflows
   Remove the old 850px desktop ceiling. The panel may grow naturally
   while the viewport has room; vertical scrolling appears only when
   the content can no longer fit inside the viewport.
   ================================================================ */
.modal-panel {
  height: auto !important;
  max-height: 92svh !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  scrollbar-gutter: auto !important;
}

@media (max-width:1279px) {
  .modal-panel {
    max-height: 94svh !important;
  }
}

/* ================================================================
   v159 — deep runtime performance pass, no intentional visual redesign
   ================================================================ */

/* V159 ships tiny pre-blurred versions of every work image. This removes the
   expensive realtime blur(30px) filter from every duplicated carousel slide. */
.works-slide-media .works-slide-blur {
  filter: none !important;
  image-rendering: auto;
}

/* Do not permanently promote every photo to its own GPU layer. Only the slide
   itself is animated during carousel physics; the actual photo transforms on hover. */
.works-slide-media img {
  will-change: auto !important;
}
.works-carousel:not(.is-dragging) .works-slide:hover .works-slide-media > img:not(.works-slide-blur),
.works-carousel:not(.is-dragging) .works-slide:focus-visible .works-slide-media > img:not(.works-slide-blur) {
  will-change: transform !important;
}

/* When entire animated sections are offscreen, also release compositor hints.
   perf-v159.js removes this pause class well before the section reaches view. */
.perf-v125-paused .brand-track,
.perf-v125-paused .sp-neon-rotor,
.perf-v125-paused .reviews-marquee-track,
.hero.perf-v125-paused .hero-photo-wrap,
.hero.perf-v125-paused .hero-photo-shell {
  will-change: auto !important;
}

/* Keep the two fixed glass UI elements isolated as small compositor surfaces.
   No blur, opacity, color, geometry or shadow values are changed. */
.topbar .nav,
.quick-contact-dock {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}




/* ===========================================================
   V161 - hero neon rebalance
   Keep only two white runners, enlarge them so there are no dead gaps,
   and let the pink tail stay dominant across the rest of the contour.
   =========================================================== */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  background: conic-gradient(
    from var(--hero-neon-angle-v63),

    /* runner 1 */
    rgba(219,113,152,.08) 0deg,
    rgba(231,120,166,.16) 12deg,
    rgba(241,136,182,.38) 24deg,
    rgba(249,171,206,.82) 36deg,
    rgba(255,220,235,.98) 48deg,
    rgba(255,246,250,1) 56deg,
    rgba(255,252,254,1) 60deg,
    rgba(255,255,255,1) 64deg,
    rgba(255,255,255,1) 84deg,
    rgba(255,252,254,1) 88deg,
    rgba(255,246,250,1) 92deg,
    rgba(255,220,235,.98) 100deg,
    rgba(249,171,206,.84) 110deg,
    rgba(241,136,182,.42) 122deg,
    rgba(231,120,166,.18) 136deg,

    /* pink bridge - no empty contour */
    rgba(223,114,155,.12) 150deg,
    rgba(230,122,164,.18) 164deg,
    rgba(238,139,182,.28) 178deg,

    /* runner 2 */
    rgba(241,136,182,.38) 192deg,
    rgba(249,171,206,.82) 204deg,
    rgba(255,220,235,.98) 216deg,
    rgba(255,246,250,1) 224deg,
    rgba(255,252,254,1) 228deg,
    rgba(255,255,255,1) 232deg,
    rgba(255,255,255,1) 252deg,
    rgba(255,252,254,1) 256deg,
    rgba(255,246,250,1) 260deg,
    rgba(255,220,235,.98) 268deg,
    rgba(249,171,206,.84) 278deg,
    rgba(241,136,182,.42) 290deg,
    rgba(231,120,166,.18) 304deg,

    /* return to pink tail */
    rgba(223,114,155,.12) 320deg,
    rgba(231,120,166,.16) 336deg,
    rgba(219,113,152,.08) 360deg
  ) !important;
}

/* Slightly stronger visible white line, but less white dominance than V160. */
.hero-photo-wrap::before {
  padding: 3px !important;
  filter:
    drop-shadow(0 0 4px rgba(255,247,251,.98))
    drop-shadow(0 0 12px rgba(255,170,206,.94))
    drop-shadow(0 0 24px rgba(243,114,171,.76)) !important;
}

.hero-photo-wrap::after {
  padding: 4px !important;
  opacity: .28 !important;
  filter:
    blur(4px)
    drop-shadow(0 0 8px rgba(255,160,198,.56))
    drop-shadow(0 0 16px rgba(238,109,167,.36)) !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap::before {
    padding: 2px !important;
  }
  .hero-photo-wrap::after {
    padding: 3px !important;
    opacity: .24 !important;
  }
}


/* ===========================================================
   V162 - hero neon pink balance + half speed
   Pink bridges were too dim in the middle. Keep two white runners,
   but strengthen the pink contour between them and slow the rotation 2x.
   =========================================================== */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  background: conic-gradient(
    from var(--hero-neon-angle-v63),

    /* runner 1 */
    rgba(224,115,156,.20) 0deg,
    rgba(233,124,168,.28) 12deg,
    rgba(242,140,184,.46) 24deg,
    rgba(250,174,208,.84) 36deg,
    rgba(255,223,237,.98) 48deg,
    rgba(255,246,250,1) 56deg,
    rgba(255,252,254,1) 60deg,
    rgba(255,255,255,1) 64deg,
    rgba(255,255,255,1) 84deg,
    rgba(255,252,254,1) 88deg,
    rgba(255,246,250,1) 92deg,
    rgba(255,223,237,.98) 100deg,
    rgba(250,174,208,.86) 110deg,
    rgba(242,140,184,.54) 122deg,
    rgba(233,124,168,.34) 136deg,

    /* brighter pink bridge */
    rgba(229,120,164,.28) 150deg,
    rgba(236,130,174,.38) 162deg,
    rgba(244,148,191,.50) 174deg,
    rgba(248,162,202,.58) 186deg,

    /* runner 2 */
    rgba(242,140,184,.46) 198deg,
    rgba(250,174,208,.84) 210deg,
    rgba(255,223,237,.98) 222deg,
    rgba(255,246,250,1) 230deg,
    rgba(255,252,254,1) 234deg,
    rgba(255,255,255,1) 238deg,
    rgba(255,255,255,1) 258deg,
    rgba(255,252,254,1) 262deg,
    rgba(255,246,250,1) 266deg,
    rgba(255,223,237,.98) 274deg,
    rgba(250,174,208,.86) 284deg,
    rgba(242,140,184,.54) 296deg,
    rgba(233,124,168,.34) 310deg,

    /* brighter return bridge */
    rgba(229,120,164,.28) 324deg,
    rgba(233,124,168,.24) 340deg,
    rgba(224,115,156,.20) 360deg
  ) !important;

  animation-duration: 21.6s !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap::before,
  .hero-photo-wrap::after {
    animation-duration: 24s !important;
  }
}


/* ===========================================================
   V163 - lighter pink hero neon + 1.5x faster rotation
   Make the pink contour clearly lighter/brighter instead of deep pink,
   keep only two white runners, and speed the rotation up from V162.
   =========================================================== */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  background: conic-gradient(
    from var(--hero-neon-angle-v63),

    /* runner 1 with lighter pink shoulder */
    rgba(244,176,206,.34) 0deg,
    rgba(247,188,214,.44) 12deg,
    rgba(250,202,224,.58) 24deg,
    rgba(252,214,232,.86) 36deg,
    rgba(255,232,242,.98) 48deg,
    rgba(255,246,250,1) 56deg,
    rgba(255,252,254,1) 60deg,
    rgba(255,255,255,1) 64deg,
    rgba(255,255,255,1) 84deg,
    rgba(255,252,254,1) 88deg,
    rgba(255,246,250,1) 92deg,
    rgba(255,232,242,.98) 100deg,
    rgba(252,214,232,.88) 110deg,
    rgba(250,202,224,.62) 122deg,
    rgba(247,188,214,.48) 136deg,

    /* brighter lighter pink bridge */
    rgba(246,182,209,.44) 150deg,
    rgba(248,192,216,.52) 162deg,
    rgba(250,204,225,.62) 174deg,
    rgba(252,214,232,.68) 186deg,

    /* runner 2 */
    rgba(250,202,224,.58) 198deg,
    rgba(252,214,232,.86) 210deg,
    rgba(255,232,242,.98) 222deg,
    rgba(255,246,250,1) 230deg,
    rgba(255,252,254,1) 234deg,
    rgba(255,255,255,1) 238deg,
    rgba(255,255,255,1) 258deg,
    rgba(255,252,254,1) 262deg,
    rgba(255,246,250,1) 266deg,
    rgba(255,232,242,.98) 274deg,
    rgba(252,214,232,.88) 284deg,
    rgba(250,202,224,.62) 296deg,
    rgba(247,188,214,.48) 310deg,

    /* brighter return bridge */
    rgba(246,182,209,.44) 324deg,
    rgba(247,188,214,.40) 340deg,
    rgba(244,176,206,.34) 360deg
  ) !important;

  animation-duration: 14.4s !important;
}

.hero-photo-wrap::before {
  filter:
    drop-shadow(0 0 4px rgba(255,249,252,.98))
    drop-shadow(0 0 13px rgba(255,186,214,.96))
    drop-shadow(0 0 26px rgba(247,150,190,.78)) !important;
}

.hero-photo-wrap::after {
  opacity: .30 !important;
  filter:
    blur(4px)
    drop-shadow(0 0 10px rgba(255,194,219,.64))
    drop-shadow(0 0 18px rgba(247,154,193,.42)) !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap::before,
  .hero-photo-wrap::after {
    animation-duration: 16s !important;
  }
}


/* ===========================================================
   V164 - stronger visible pink hero neon
   Previous pink was still too dim. Make the whole contour read as a
   bright light-pink neon, keep 2 white runners, and push the pink glow harder.
   =========================================================== */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  background: conic-gradient(
    from var(--hero-neon-angle-v63),

    /* runner 1 */
    rgba(255,194,221,.78) 0deg,
    rgba(255,204,227,.88) 12deg,
    rgba(255,216,234,.96) 24deg,
    rgba(255,226,240,.98) 36deg,
    rgba(255,236,245,1) 48deg,
    rgba(255,247,251,1) 56deg,
    rgba(255,252,254,1) 60deg,
    rgba(255,255,255,1) 64deg,
    rgba(255,255,255,1) 84deg,
    rgba(255,252,254,1) 88deg,
    rgba(255,247,251,1) 92deg,
    rgba(255,236,245,1) 100deg,
    rgba(255,226,240,.98) 110deg,
    rgba(255,216,234,.96) 122deg,
    rgba(255,204,227,.90) 136deg,

    /* bright visible pink bridge */
    rgba(255,196,222,.84) 150deg,
    rgba(255,205,228,.90) 162deg,
    rgba(255,214,233,.96) 174deg,
    rgba(255,220,237,.98) 186deg,

    /* runner 2 */
    rgba(255,216,234,.96) 198deg,
    rgba(255,226,240,.98) 210deg,
    rgba(255,236,245,1) 222deg,
    rgba(255,247,251,1) 230deg,
    rgba(255,252,254,1) 234deg,
    rgba(255,255,255,1) 238deg,
    rgba(255,255,255,1) 258deg,
    rgba(255,252,254,1) 262deg,
    rgba(255,247,251,1) 266deg,
    rgba(255,236,245,1) 274deg,
    rgba(255,226,240,.98) 284deg,
    rgba(255,216,234,.96) 296deg,
    rgba(255,204,227,.90) 310deg,

    /* bright return bridge */
    rgba(255,196,222,.84) 324deg,
    rgba(255,204,227,.86) 340deg,
    rgba(255,194,221,.78) 360deg
  ) !important;
}

.hero-photo-wrap::before {
  padding: 3px !important;
  filter:
    drop-shadow(0 0 5px rgba(255,251,253,1))
    drop-shadow(0 0 16px rgba(255,204,227,1))
    drop-shadow(0 0 34px rgba(255,166,203,.96))
    drop-shadow(0 0 58px rgba(247,144,186,.64)) !important;
}

.hero-photo-wrap::after {
  padding: 5px !important;
  opacity: .42 !important;
  filter:
    blur(5px)
    drop-shadow(0 0 14px rgba(255,208,229,.88))
    drop-shadow(0 0 28px rgba(255,172,206,.72))
    drop-shadow(0 0 54px rgba(247,144,186,.44)) !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap::before {
    padding: 2px !important;
  }
  .hero-photo-wrap::after {
    padding: 4px !important;
    opacity: .36 !important;
  }
}


/* ===========================================================
   V165 - saturated glossy pink hero neon
   Keep the pink genuinely pink (not pastel), but make it sparkle/glow
   as strongly as the white runners. Still exactly two white runners.
   =========================================================== */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  background: conic-gradient(
    from var(--hero-neon-angle-v63),

    /* saturated pink into white runner 1 */
    rgba(255,58,145,1) 0deg,
    rgba(255,70,153,1) 12deg,
    rgba(255,85,162,1) 24deg,
    rgba(255,105,174,1) 36deg,
    rgba(255,135,192,1) 47deg,
    rgba(255,212,233,1) 55deg,
    rgba(255,247,251,1) 60deg,
    rgba(255,255,255,1) 64deg,
    rgba(255,255,255,1) 84deg,
    rgba(255,247,251,1) 88deg,
    rgba(255,212,233,1) 93deg,
    rgba(255,135,192,1) 101deg,
    rgba(255,105,174,1) 112deg,
    rgba(255,82,160,1) 124deg,
    rgba(255,65,149,1) 138deg,

    /* glossy hot-pink bridge, never dim */
    rgba(255,52,143,1) 150deg,
    rgba(255,64,150,1) 162deg,
    rgba(255,80,158,1) 174deg,
    rgba(255,96,168,1) 186deg,

    /* saturated pink into white runner 2 */
    rgba(255,85,162,1) 198deg,
    rgba(255,105,174,1) 210deg,
    rgba(255,135,192,1) 221deg,
    rgba(255,212,233,1) 229deg,
    rgba(255,247,251,1) 234deg,
    rgba(255,255,255,1) 238deg,
    rgba(255,255,255,1) 258deg,
    rgba(255,247,251,1) 262deg,
    rgba(255,212,233,1) 267deg,
    rgba(255,135,192,1) 275deg,
    rgba(255,105,174,1) 286deg,
    rgba(255,82,160,1) 298deg,
    rgba(255,65,149,1) 312deg,

    /* glossy hot-pink return bridge */
    rgba(255,52,143,1) 324deg,
    rgba(255,60,147,1) 340deg,
    rgba(255,58,145,1) 360deg
  ) !important;
}

/* Bright specular glow around the saturated pink core. */
.hero-photo-wrap::before {
  padding: 3px !important;
  filter:
    drop-shadow(0 0 3px rgba(255,225,239,.98))
    drop-shadow(0 0 8px rgba(255,104,174,1))
    drop-shadow(0 0 18px rgba(255,53,145,.98))
    drop-shadow(0 0 34px rgba(255,34,132,.82)) !important;
}

.hero-photo-wrap::after {
  padding: 5px !important;
  opacity: .48 !important;
  filter:
    blur(5px)
    drop-shadow(0 0 10px rgba(255,112,177,.95))
    drop-shadow(0 0 24px rgba(255,55,147,.86))
    drop-shadow(0 0 48px rgba(255,34,132,.58)) !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap::before { padding: 2px !important; }
  .hero-photo-wrap::after { padding: 4px !important; opacity: .42 !important; }
}

/* ===========================================================
   V166 — Neon Lab editor UI
   =========================================================== */
.ve-neon-lab {
  border-color: rgba(229,79,143,.22) !important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.56),rgba(255,244,249,.34)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
.ve-neon-lab > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.ve-neon-lab > summary::-webkit-details-marker { display:none; }
.neon-summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:0 !important;
  color:#a84970 !important;
}
.ve-neon-lab[open] .neon-summary { margin-bottom:9px !important; }
.neon-summary::after {
  content:'＋';
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  color:#9a5571;
  font-size:13px;
}
.ve-neon-lab[open] .neon-summary::after { content:'−'; }
.neon-lab-intro {
  margin:0 0 8px;
  color:#876f79;
  font-size:10px;
  font-weight:650;
  line-height:1.45;
}
.neon-save-status {
  display:inline-flex;
  align-items:center;
  min-height:22px;
  margin:0 0 10px;
  padding:0 8px;
  border-radius:999px;
  background:rgba(255,255,255,.58);
  color:#9a7d89;
  font-size:9px;
  font-weight:800;
  transition:.16s ease;
}
.neon-save-status.is-saved {
  background:rgba(226,243,232,.86);
  color:#52715d;
}
.neon-subgroup {
  margin:0 0 10px;
  padding:9px;
  border:1px solid rgba(171,112,136,.10);
  border-radius:14px;
  background:rgba(255,255,255,.34);
}
.neon-subtitle {
  margin:0 0 9px;
  color:#7f5e6b;
  font-size:10px;
  font-weight:900;
  letter-spacing:.035em;
}
.neon-color-control {
  display:grid;
  grid-template-columns:44px 1fr;
  gap:7px;
  align-items:center;
}
.ve-panel .neon-color {
  width:44px;
  height:31px;
  padding:2px;
  border:1px solid rgba(167,101,121,.16);
  border-radius:10px;
  background:rgba(255,255,255,.72);
}
.ve-panel .neon-color-text {
  width:100%;
  min-width:0;
  box-sizing:border-box;
  border:1px solid rgba(167,101,121,.14);
  border-radius:9px;
  outline:none;
  background:rgba(255,255,255,.78);
  color:#755463;
  padding:6px 8px;
  font:800 10px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;
}
.neon-color-value {
  color:#a27c8c;
  font:800 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;
}
.ve-panel .neon-select {
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(167,101,121,.14);
  border-radius:10px;
  outline:none;
  background:rgba(255,255,255,.78);
  color:#755463;
  padding:7px 8px;
  font:750 10px/1.2 Inter,system-ui,sans-serif;
}
.neon-actions {
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  margin-top:8px;
}
.neon-actions .ue-mini { min-height:34px; }

@media (min-width: 520px) {
  .neon-actions { grid-template-columns:1fr 1fr; }
  .neon-actions .ue-danger { grid-column:1/-1; }
}


/* ===========================================================
   V167 — baked hero neon from user-approved V166 settings
   IMPORTANT: the V166 constructor animated an unused angle while its
   repeating-conic gradients had fixed angles. V167 animates the actual
   white/pink runner angles, so the neon really moves.
   =========================================================== */
@property --kb-neon-white-angle-v167 {
  syntax: "<angle>";
  inherits: false;
  initial-value: -46deg;
}
@property --kb-neon-pinkshine-angle-v167 {
  syntax: "<angle>";
  inherits: false;
  initial-value: -29deg;
}
@keyframes kb-neon-baked-spin-v167 {
  from {
    --kb-neon-white-angle-v167: -46deg;
    --kb-neon-pinkshine-angle-v167: -29deg;
  }
  to {
    --kb-neon-white-angle-v167: 314deg;
    --kb-neon-pinkshine-angle-v167: 331deg;
  }
}

.hero-photo-wrap::before,
.hero-photo-wrap::after {
  background:
    repeating-conic-gradient(from var(--kb-neon-white-angle-v167),
      transparent 0deg 55deg,
      rgba(255,255,255,0) 55deg,
      rgba(255,255,255,1) 73deg,
      rgba(255,255,255,1) 107deg,
      rgba(255,255,255,0) 125deg,
      transparent 125deg 180deg),
    repeating-conic-gradient(from var(--kb-neon-pinkshine-angle-v167),
      transparent 0deg 145deg,
      rgba(254,195,254,0) 145deg,
      rgba(254,195,254,1) 163deg,
      rgba(254,195,254,1) 197deg,
      rgba(254,195,254,0) 215deg,
      transparent 215deg 360deg),
    linear-gradient(rgba(254,180,230,1),rgba(254,180,230,1)) !important;

  animation-name: kb-neon-baked-spin-v167 !important;
  animation-duration: 14.4s !important;
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
  animation-direction: normal !important;
  mix-blend-mode: normal !important;
}

.hero-photo-wrap::before {
  inset: -2.5px !important;
  padding: 3px !important;
  filter:
    brightness(110%)
    saturate(125%)
    contrast(112%)
    blur(0px)
    drop-shadow(0 0 8px rgba(240,189,239,.960))
    drop-shadow(0 0 18px rgba(240,189,239,.883))
    drop-shadow(0 0 34px rgba(240,189,239,.691)) !important;
}

.hero-photo-wrap::after {
  inset: -3.5px !important;
  padding: 5px !important;
  opacity: .480 !important;
  filter:
    brightness(110%)
    saturate(125%)
    blur(5px)
    drop-shadow(0 0 48px rgba(240,189,239,.456)) !important;
}

/* The physical wheel pause stays exactly at the exported 60 ms. */
html.wheel-scroll-active-v114 .hero-photo-wrap:not(.lenis-motion-pause-v154)::before,
html.wheel-scroll-active-v114 .hero-photo-wrap:not(.lenis-motion-pause-v154)::after {
  animation-play-state: running !important;
}
html.wheel-scroll-active-v114 .hero-photo-wrap.lenis-motion-pause-v154::before,
html.wheel-scroll-active-v114 .hero-photo-wrap.lenis-motion-pause-v154::after {
  animation-play-state: paused !important;
}


/* ===========================================================
   V168 — real neon-tube separation for HERO
   A real neon / LED-neon tube reads as three layers:
   1) a wider saturated tube edge/body,
   2) a thinner bright inner core,
   3) a controlled outer halo.
   This prevents the pink line from dissolving into the milk/pink page background.
   Two white runners and the moving pink highlight are preserved.
   =========================================================== */

/* Subtle inner hairline: gives the tube a physical edge against both photo and page. */
.hero-photo-shell {
  outline: 1px solid rgba(112, 48, 79, .22) !important;
}

/* OUTER TUBE BODY / SIDE CONTOURS.
   This layer is intentionally darker and more saturated than the core so it
   remains visible on both the pale page and the bright parts of the photo. */
.hero-photo-wrap::after {
  inset: -3.5px !important;
  padding: 5px !important;
  opacity: 1 !important;
  background:
    repeating-conic-gradient(from var(--kb-neon-white-angle-v167),
      transparent 0deg 55deg,
      rgba(183,116,149,0) 55deg,
      rgba(183,116,149,.95) 70deg,
      rgba(202,151,177,1) 76deg,
      rgba(214,177,196,1) 90deg,
      rgba(202,151,177,1) 104deg,
      rgba(183,116,149,.95) 110deg,
      rgba(183,116,149,0) 125deg,
      transparent 125deg 180deg),
    repeating-conic-gradient(from var(--kb-neon-pinkshine-angle-v167),
      transparent 0deg 145deg,
      rgba(226,49,132,0) 145deg,
      rgba(236,61,145,.92) 160deg,
      rgba(250,91,167,1) 174deg,
      rgba(255,126,191,1) 180deg,
      rgba(250,91,167,1) 194deg,
      rgba(236,61,145,.92) 200deg,
      rgba(226,49,132,0) 215deg,
      transparent 215deg 360deg),
    linear-gradient(#d92f86,#d92f86) !important;

  filter:
    saturate(128%)
    contrast(108%)
    drop-shadow(0 0 .9px rgba(101,28,62,.62))
    drop-shadow(0 0 5px rgba(236,47,137,.72))
    drop-shadow(0 0 12px rgba(255,68,154,.44))
    drop-shadow(0 0 24px rgba(255,102,176,.20)) !important;
}

/* INNER LIGHT CORE.
   Pink stays unmistakably pink; it is brighter in the center rather than
   being turned into a pale pastel. White runners retain a white-hot core. */
.hero-photo-wrap::before {
  inset: -2.5px !important;
  padding: 2.6px !important;
  opacity: 1 !important;
  background:
    repeating-conic-gradient(from var(--kb-neon-white-angle-v167),
      transparent 0deg 55deg,
      rgba(255,255,255,0) 55deg,
      rgba(255,255,255,.98) 72deg,
      rgba(255,255,255,1) 80deg,
      rgba(255,255,255,1) 100deg,
      rgba(255,255,255,.98) 108deg,
      rgba(255,255,255,0) 125deg,
      transparent 125deg 180deg),
    repeating-conic-gradient(from var(--kb-neon-pinkshine-angle-v167),
      transparent 0deg 145deg,
      rgba(255,105,180,0) 145deg,
      rgba(255,105,180,.95) 162deg,
      rgba(255,153,207,1) 174deg,
      rgba(255,190,224,1) 180deg,
      rgba(255,153,207,1) 192deg,
      rgba(255,105,180,.95) 200deg,
      rgba(255,105,180,0) 215deg,
      transparent 215deg 360deg),
    linear-gradient(#ff4fa4,#ff4fa4) !important;

  filter:
    brightness(108%)
    saturate(118%)
    contrast(106%)
    drop-shadow(0 0 .8px rgba(255,244,250,.88))
    drop-shadow(0 0 4px rgba(255,55,150,.88))
    drop-shadow(0 0 10px rgba(255,75,160,.48)) !important;
}

/* Keep V167 runtime movement and speed. */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  animation-name: kb-neon-baked-spin-v167 !important;
  animation-duration: 14.4s !important;
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
  animation-direction: normal !important;
  mix-blend-mode: normal !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap::after { padding: 4px !important; }
  .hero-photo-wrap::before { padding: 2.2px !important; }
}


/* ===========================================================
   V169 — HERO neon simplified to exactly 2 colors / 4 symmetric arcs
   Two white arcs + two pink arcs. No extra pink shades, no lighter pink
   center and no darker pink sides. Pink arcs are 96deg, white arcs 84deg:
   pink is ~14% longer, white is ~12.5% shorter relative to a 90deg quarter.
   The glow is produced by a blurred duplicate of the SAME two-color pattern,
   so the hue stays consistent instead of turning into a multi-shade gradient.
   =========================================================== */
.hero-photo-wrap {
  --kb-neon-pink-v169: #ec6cab;
  --kb-neon-white-v169: #ffffff;
}

/* Neutralize the darker V168 structural hairline. */
.hero-photo-shell {
  outline: 1px solid rgba(255,255,255,.72) !important;
}

.hero-photo-wrap::before,
.hero-photo-wrap::after {
  background: conic-gradient(
    from var(--kb-neon-white-angle-v167),
    var(--kb-neon-white-v169) 0deg 84deg,
    var(--kb-neon-pink-v169) 84deg 180deg,
    var(--kb-neon-white-v169) 180deg 264deg,
    var(--kb-neon-pink-v169) 264deg 360deg
  ) !important;

  animation-name: kb-neon-baked-spin-v167 !important;
  animation-duration: 14.4s !important;
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
  animation-direction: normal !important;
  mix-blend-mode: normal !important;
}

/* Crisp tube: exactly the same two colors, with no brightness/saturation
   processing that could change the middle of the pink arc. */
.hero-photo-wrap::before {
  inset: -2.5px !important;
  padding: 3.1px !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Outer halo: a wider blurred copy of the SAME two-color tube.
   Because the source colors are identical, this adds glow without inventing
   additional pink shades along the visible core. */
.hero-photo-wrap::after {
  inset: -4px !important;
  padding: 5.2px !important;
  opacity: .54 !important;
  filter: blur(5px) !important;
}

@media (max-width: 1279px) {
  .hero-photo-wrap::before { padding: 2.5px !important; }
  .hero-photo-wrap::after {
    padding: 4.4px !important;
    opacity: .50 !important;
    filter: blur(4px) !important;
  }
}

/* ===========================================================
   V170 — exact perimeter neon using SVG pathLength
   2 white + 2 pink segments, physically measured along the real border path.
   Pink is slightly longer/thicker; white slightly shorter/thinner.
   =========================================================== */
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

.kb-hero-neon-v170 {
  position: absolute;
  left: -5px;
  top: -5px;
  width: calc(100% + 10px);
  height: calc(100% + 10px);
  overflow: visible;
  pointer-events: none;
  z-index: 5;
}

.kb-hero-neon-v170 path {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linecap: butt;
  stroke-linejoin: round;
}

/* Glow uses the exact same two colors, only wider and softer. */
.kb-hero-neon-v170 .kb-neon-glow-pink {
  stroke: #ec6cab;
  stroke-width: 8.8;
  opacity: .26;
  filter: blur(3.4px);
}
.kb-hero-neon-v170 .kb-neon-glow-white {
  stroke: #ffffff;
  stroke-width: 7.4;
  opacity: .24;
  filter: blur(3px);
}

.kb-hero-neon-v170 .kb-neon-core-pink {
  stroke: #ec6cab;
  stroke-width: 3.4;
  opacity: 1;
  filter: drop-shadow(0 0 2px #ec6cab) drop-shadow(0 0 7px #ec6cab);
}
.kb-hero-neon-v170 .kb-neon-core-white {
  stroke: #ffffff;
  stroke-width: 2.8;
  opacity: 1;
  filter: drop-shadow(0 0 2px #ffffff) drop-shadow(0 0 6px #ffffff);
}

@media (max-width: 1279px) {
  .kb-hero-neon-v170 .kb-neon-core-pink { stroke-width: 3; }
  .kb-hero-neon-v170 .kb-neon-core-white { stroke-width: 2.5; }
  .kb-hero-neon-v170 .kb-neon-glow-pink { stroke-width: 7.4; filter: blur(2.8px); }
  .kb-hero-neon-v170 .kb-neon-glow-white { stroke-width: 6.4; filter: blur(2.5px); }
}

/* Keep the V166/V167 neon constructor usable in ?edit=1.
   Normal site uses the exact SVG perimeter; editor mode temporarily previews
   its own pseudo-element generator and hides the baked SVG. */
body.ve-open .kb-hero-neon-v170 {
  display: none !important;
}
body.ve-open .hero-photo-wrap::before,
body.ve-open .hero-photo-wrap::after {
  content: "" !important;
  display: block !important;
}

/* ===========================================================
   V172 — single-source perimeter neon
   One active SVG renderer only. Two actual colors only:
   site pink + white. Soft hand-offs are made with low-opacity
   feather strokes of the SAME colors, not extra intermediate colors.
   =========================================================== */
.kb-hero-neon-v170,
.kb-hero-neon-v171 { display: none !important; }

.kb-hero-neon-v172 {
  position: absolute;
  left: -5px;
  top: -5px;
  width: calc(100% + 10px);
  height: calc(100% + 10px);
  overflow: visible;
  pointer-events: none;
  z-index: 5;
  contain: layout paint style;
}

.kb-hero-neon-v172 path {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linejoin: round;
  stroke-linecap: round;
}

/* Exactly two colors. Feather layers only lower opacity; no third color. */
.kb-hero-neon-v172 .kb-neon-pink-feather,
.kb-hero-neon-v172 .kb-neon-pink-core {
  stroke: #c9879d;
}
.kb-hero-neon-v172 .kb-neon-white-feather,
.kb-hero-neon-v172 .kb-neon-white-core {
  stroke: #ffffff;
}

/* Wide low-opacity edges overlap for a visibly smooth hand-off. */
.kb-hero-neon-v172 .kb-neon-pink-feather {
  stroke-width: 5.8;
  opacity: .34;
}
.kb-hero-neon-v172 .kb-neon-white-feather {
  stroke-width: 4.8;
  opacity: .30;
}

/* Cores stay clean and restrained; no expensive moving blur filters. */
.kb-hero-neon-v172 .kb-neon-pink-core {
  stroke-width: 3.05;
  opacity: 1;
}
.kb-hero-neon-v172 .kb-neon-white-core {
  stroke-width: 2.45;
  opacity: .98;
}

/* One subtle static halo separates the whole tube from the milk background. */
.kb-hero-neon-v172 .kb-neon-halo {
  stroke: #c9879d;
  stroke-width: 7.2;
  opacity: .10;
  filter: blur(2.2px);
}

body.ve-open .kb-hero-neon-v172 {
  display: none !important;
}
body.ve-open .hero-photo-wrap::before,
body.ve-open .hero-photo-wrap::after {
  content: "" !important;
  display: block !important;
}

@media (max-width: 1279px) {
  .kb-hero-neon-v172 .kb-neon-pink-feather { stroke-width: 5.1; }
  .kb-hero-neon-v172 .kb-neon-white-feather { stroke-width: 4.2; }
  .kb-hero-neon-v172 .kb-neon-pink-core { stroke-width: 2.75; }
  .kb-hero-neon-v172 .kb-neon-white-core { stroke-width: 2.2; }
  .kb-hero-neon-v172 .kb-neon-halo { stroke-width: 6.4; filter: blur(2px); }
}

/* ===========================================================
   V173 — restore the accepted older neon look on V172 geometry
   IMPORTANT: exact V172 segment lengths/positions stay untouched in JS.
   Only the visual treatment is rolled back toward the V168 tube look.
   =========================================================== */
.kb-hero-neon-v170,
.kb-hero-neon-v171,
.kb-hero-neon-v172 {
  display: none !important;
}

.kb-hero-neon-v173 {
  position: absolute;
  left: -5px;
  top: -5px;
  width: calc(100% + 10px);
  height: calc(100% + 10px);
  overflow: visible;
  pointer-events: none;
  z-index: 5;
  contain: layout paint style;
}

.kb-hero-neon-v173 path {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linejoin: round;
  stroke-linecap: round;
}

/* V168-like tube edge/body: saturated enough to separate from the milk background. */
.kb-hero-neon-v173 .kb-neon-pink-feather {
  stroke: #d92f86;
  stroke-width: 5.4;
  opacity: .96;
  filter:
    drop-shadow(0 0 .9px rgba(101,28,62,.58))
    drop-shadow(0 0 5px rgba(236,47,137,.66))
    drop-shadow(0 0 12px rgba(255,68,154,.34));
}

.kb-hero-neon-v173 .kb-neon-white-feather {
  stroke: #d6b1c4;
  stroke-width: 4.6;
  opacity: .94;
  filter:
    drop-shadow(0 0 .8px rgba(104,72,86,.38))
    drop-shadow(0 0 4px rgba(255,255,255,.76))
    drop-shadow(0 0 10px rgba(255,243,249,.36));
}

/* Bright inner cores: this is the old 'tube' character the user preferred. */
.kb-hero-neon-v173 .kb-neon-pink-core {
  stroke: #ff4fa4;
  stroke-width: 2.65;
  opacity: 1;
  filter:
    brightness(108%)
    saturate(118%)
    drop-shadow(0 0 .8px rgba(255,244,250,.86))
    drop-shadow(0 0 4px rgba(255,55,150,.82))
    drop-shadow(0 0 9px rgba(255,75,160,.42));
}

.kb-hero-neon-v173 .kb-neon-white-core {
  stroke: #ffffff;
  stroke-width: 2.25;
  opacity: 1;
  filter:
    drop-shadow(0 0 .8px rgba(255,255,255,.96))
    drop-shadow(0 0 4px rgba(255,255,255,.74))
    drop-shadow(0 0 8px rgba(255,240,248,.28));
}

/* Restore the subtle physical edge used in the older accepted tube treatment. */
.hero-photo-shell {
  outline: 1px solid rgba(112,48,79,.22) !important;
}

body.ve-open .kb-hero-neon-v173 {
  display: none !important;
}

@media (max-width: 1279px) {
  .kb-hero-neon-v173 .kb-neon-pink-feather { stroke-width: 4.8; }
  .kb-hero-neon-v173 .kb-neon-white-feather { stroke-width: 4.1; }
  .kb-hero-neon-v173 .kb-neon-pink-core { stroke-width: 2.35; }
  .kb-hero-neon-v173 .kb-neon-white-core { stroke-width: 2.0; }
}

/* ===========================================================
   V174 — HERO = SERVICES NEON VISUAL RECIPE
   Same palette, glow strength, rounded character and 11.8s movement feel
   as the accepted Services neon. Exact hero perimeter geometry and the
   84 white / 96 pink target proportions are preserved in app-v174.js.
   =========================================================== */
.kb-hero-neon-v170,
.kb-hero-neon-v171,
.kb-hero-neon-v172,
.kb-hero-neon-v173 {
  display: none !important;
}

.kb-hero-neon-v174 {
  position: absolute;
  left: -5px;
  top: -5px;
  width: calc(100% + 10px);
  height: calc(100% + 10px);
  overflow: visible;
  pointer-events: none;
  z-index: 5;
  contain: layout paint style;
  /* Exact Services frame glow */
  filter:
    drop-shadow(0 0 6px rgba(255,248,251,.96))
    drop-shadow(0 0 18px rgba(247,176,213,.94))
    drop-shadow(0 0 36px rgba(228,116,173,.82));
}

.kb-hero-neon-v174 path {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Faint rose body between the two Services-style white hotspots. */
.kb-hero-neon-v174 .kb-neon-services-pink-base {
  stroke: rgb(214,122,167);
  stroke-width: 3;
  opacity: .44;
}

/* Same strong pink shoulder used by the Services gradient near each hotspot. */
.kb-hero-neon-v174 .kb-neon-services-white-outer {
  stroke: rgb(251,176,214);
  stroke-width: 3;
  opacity: .98;
}

/* Same pale white/pink transition from Services. */
.kb-hero-neon-v174 .kb-neon-services-white-inner {
  stroke: rgb(255,220,236);
  stroke-width: 3;
  opacity: 1;
}

/* Same pure white hotspot. */
.kb-hero-neon-v174 .kb-neon-services-white-core {
  stroke: #fff;
  stroke-width: 3;
  opacity: 1;
}

/* Same subtle physical edge treatment; do not add a separate competing neon. */
.hero-photo-shell {
  outline: 1px solid rgba(255,255,255,.94) !important;
}

body.ve-open .kb-hero-neon-v174 {
  display: none !important;
}

@media (max-width: 1279px) {
  .kb-hero-neon-v174 {
    filter:
      drop-shadow(0 0 4px rgba(255,248,251,.96))
      drop-shadow(0 0 12px rgba(247,176,213,.88))
      drop-shadow(0 0 24px rgba(228,116,173,.68));
  }

  .kb-hero-neon-v174 .kb-neon-services-pink-base,
  .kb-hero-neon-v174 .kb-neon-services-white-outer,
  .kb-hero-neon-v174 .kb-neon-services-white-inner,
  .kb-hero-neon-v174 .kb-neon-services-white-core {
    stroke-width: 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kb-hero-neon-v174 path {
    animation: none !important;
  }
}


/* ===========================================================
   V175 — production hero neon is owned by the SAME V166 constructor
   pseudo-element generator. Disable every experimental SVG renderer.
   =========================================================== */
.kb-hero-neon-v170,
.kb-hero-neon-v171,
.kb-hero-neon-v172,
.kb-hero-neon-v173,
.kb-hero-neon-v174,
.kb-hero-neon-v175 {
  display: none !important;
}

.hero-photo-wrap::before,
.hero-photo-wrap::after {
  content: "" !important;
  display: block !important;
}

/* ===========================================================
   V176 — FINAL BAKED HERO NEON FROM USER EDITOR EXPORT
   Exact production values from KOSHKOBROW EDITOR EXPORT V166 / HERO NEON V167.
   Normal site does not depend on localStorage for these values.
   =========================================================== */
@property --kb-neon-editor-white-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
@property --kb-neon-editor-pink-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
@keyframes kb-neon-editor-spin {
  from {
    --kb-neon-editor-white-angle: 274deg;
    --kb-neon-editor-pink-angle: 291deg;
  }
  to {
    --kb-neon-editor-white-angle: 634deg;
    --kb-neon-editor-pink-angle: 651deg;
  }
}
.hero-photo-wrap::before,
.hero-photo-wrap::after {
  background:
    repeating-conic-gradient(from var(--kb-neon-editor-white-angle),
      transparent 0deg 55.000deg,
      rgba(255,255,255,0.000) 55.000deg,
      rgba(255,255,255,1.000) 73.000deg,
      rgba(255,255,255,1.000) 107.000deg,
      rgba(255,255,255,0.000) 125.000deg,
      transparent 125.000deg 180.000deg),
    repeating-conic-gradient(from var(--kb-neon-editor-pink-angle),
      transparent 0deg 145.000deg,
      rgba(254,179,255,0.000) 145.000deg,
      rgba(254,179,255,1.000) 163.000deg,
      rgba(254,179,255,1.000) 197.000deg,
      rgba(254,179,255,0.000) 215.000deg,
      transparent 215.000deg 360.000deg),
    linear-gradient(rgba(254,179,255,1.000),rgba(254,179,255,1.000)) !important;
  animation-name: kb-neon-editor-spin !important;
  animation-duration: 14.4s !important;
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
  animation-direction: normal !important;
  mix-blend-mode: normal !important;
}
.hero-photo-wrap::before {
  inset: -2.5px !important;
  padding: 3px !important;
  filter:
    brightness(110%)
    saturate(125%)
    contrast(112%)
    blur(0px)
    drop-shadow(0 0 8px rgba(240,189,239,0.960))
    drop-shadow(0 0 18px rgba(240,189,239,0.883))
    drop-shadow(0 0 34px rgba(240,189,239,0.691)) !important;
}
.hero-photo-wrap::after {
  inset: -3.5px !important;
  padding: 5px !important;
  opacity: 0.480 !important;
  filter:
    brightness(110%)
    saturate(125%)
    blur(5px)
    drop-shadow(0 0 48px rgba(240,189,239,0.456)) !important;
}
/* Editor/production wheel-pause ownership: 60ms from exported settings. */
html.wheel-scroll-active-v114 .hero-photo-wrap:not(.lenis-motion-pause-v154)::before,
html.wheel-scroll-active-v114 .hero-photo-wrap:not(.lenis-motion-pause-v154)::after {
  animation-play-state: running !important;
}
html.wheel-scroll-active-v114 .hero-photo-wrap.lenis-motion-pause-v154::before,
html.wheel-scroll-active-v114 .hero-photo-wrap.lenis-motion-pause-v154::after {
  animation-play-state: paused !important;
}

/* ===========================================================
   V177 — booking modal copywriting + category structure
   =========================================================== */
.booking-modal-head {
  align-items: flex-start;
  padding-bottom: 20px;
}
.booking-head-copy {
  max-width: 610px;
}
.booking-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  margin-bottom: 8px;
  border: 1px solid rgba(167,101,121,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.38);
  color: #9d6678;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.booking-modal-head h3 {
  margin-top: 0;
  line-height: 1.06;
}
.booking-head-copy p {
  max-width: 560px;
  margin: 10px 0 0;
  color: rgba(71,55,61,.62);
  font-size: 12px;
  line-height: 1.55;
}

.booking-step-intro {
  margin: 19px 0 18px;
}
.booking-step-intro .step-title {
  margin: 0 0 7px;
  color: #6e555e;
}
.booking-step-intro p {
  max-width: 620px;
  margin: 0;
  color: rgba(74,58,64,.58);
  font-size: 12px;
  line-height: 1.6;
}

.booking-category {
  padding: 0 0 22px;
  margin: 0 0 20px;
  border-bottom: 1px solid rgba(111,78,89,.10);
}
.booking-category-last {
  margin-bottom: 6px;
  padding-bottom: 4px;
  border-bottom: 0;
}
.booking-category-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 11px;
}
.booking-category-index {
  flex: 0 0 auto;
  min-width: 34px;
  color: rgba(171,103,125,.76);
  font-family: "Prata", Georgia, serif;
  font-size: 13px;
  letter-spacing: .02em;
}
.booking-category-head > div {
  flex: 0 0 auto;
  display: grid;
  gap: 2px;
}
.booking-category-head strong {
  color: #34272c;
  font-family: "Prata", Georgia, serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.15;
}
.booking-category-head small {
  color: rgba(78,61,67,.52);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.booking-category-head > i {
  height: 1px;
  flex: 1 1 auto;
  margin-left: 3px;
  background: linear-gradient(90deg, rgba(177,111,132,.30), rgba(177,111,132,.06));
}

.booking-category .service-options {
  gap: 10px;
}
.service-choice label {
  position: relative;
  min-height: 98px;
  padding: 16px 42px 14px 16px;
  border-color: rgba(94,66,76,.12);
  border-radius: 20px;
  background: rgba(255,255,255,.50);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.50);
  transition:
    transform .22s ease,
    background .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}
.service-choice label::after {
  content: "";
  position: absolute;
  top: 15px;
  right: 15px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 1px solid rgba(117,83,95,.20);
  background: rgba(255,255,255,.46);
  box-shadow: inset 0 0 0 4px transparent;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.service-choice label:hover {
  transform: translateY(-1px);
  border-color: rgba(169,102,124,.22);
  background: rgba(255,255,255,.76);
  box-shadow: 0 8px 22px rgba(69,43,52,.05), inset 0 1px 0 rgba(255,255,255,.72);
}
.service-choice input:checked + label {
  transform: translateY(-1px);
  border-color: rgba(172,101,124,.62);
  background: rgba(255,255,255,.88);
  box-shadow:
    0 0 0 2px rgba(172,101,124,.08),
    0 10px 25px rgba(92,54,67,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}
.service-choice input:checked + label::after {
  border-color: rgba(169,99,122,.84);
  background: #b46f87;
  box-shadow: inset 0 0 0 4px #fff;
}
.service-choice b {
  padding-right: 4px;
  color: #2f2629;
  font-size: 13.5px;
  line-height: 1.45;
}
.service-choice-note {
  display: block;
  margin-top: 5px;
  color: rgba(133,87,103,.72);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .04em;
}
.service-choice span {
  margin-top: 13px;
  align-items: baseline;
}
.service-choice span i {
  color: rgba(73,59,64,.50);
  font-style: italic;
}
.service-choice span strong {
  color: #73525e;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .01em;
}

.booking-comment-title {
  margin-top: 16px !important;
}
.booking-nav {
  position: sticky;
  bottom: -1px;
  z-index: 4;
  margin: 20px -4px -4px;
  padding: 12px 4px 4px;
  background: linear-gradient(180deg, rgba(246,239,236,0), rgba(246,239,236,.94) 30%, #f6efec 62%);
}
.booking-nav .btn-brand {
  min-width: 132px;
  justify-content: center;
}

@media (max-width: 1279px) {
  .booking-kicker {
    font-size: 9px;
  }
  .booking-head-copy p {
    font-size: 11px;
  }
  .booking-category {
    padding-bottom: 18px;
    margin-bottom: 17px;
  }
  .booking-category-head {
    gap: 9px;
  }
  .booking-category-index {
    min-width: 29px;
    font-size: 12px;
  }
  .booking-category-head strong {
    font-size: 15px;
  }
  .booking-category-head small {
    font-size: 8px;
  }
  .service-choice label {
    min-height: 86px;
    padding: 14px 40px 13px 14px;
  }
  .booking-nav .btn-brand {
    min-width: 0;
  }
}

/* ===========================================================
   V178 — compact booking copy/layout refinement
   =========================================================== */
.booking-modal-head {
  position: relative;
  align-items: flex-start !important;
  padding: 20px 28px 14px !important;
}
.booking-head-copy {
  width: 100%;
  max-width: none !important;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: start;
  column-gap: 18px;
}
.booking-kicker {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  margin: 0 58px 7px 0 !important;
  min-height: 24px !important;
  padding: 0 9px !important;
  font-size: 9.5px !important;
  letter-spacing: .09em !important;
}
.booking-modal-head h3 {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0 !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: clamp(28px, 3.1vw, 36px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
  color: #2f2529 !important;
}
.booking-head-copy > p {
  display: none !important;
}

.booking-step-intro {
  margin: 13px 0 12px !important;
}
.booking-step-intro .step-title {
  margin: 0 0 5px !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
  letter-spacing: .07em !important;
}
.booking-step-intro p {
  max-width: 560px !important;
  margin: 0 0 0 auto !important;
  text-align: right !important;
  color: rgba(74,58,64,.56) !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
}

.booking-category {
  padding-bottom: 14px !important;
  margin-bottom: 14px !important;
}
.booking-category-last {
  margin-bottom: 3px !important;
  padding-bottom: 2px !important;
}
.booking-category-head {
  display: grid !important;
  grid-template-columns: auto auto minmax(28px,1fr) auto;
  align-items: center !important;
  gap: 9px !important;
  margin-bottom: 8px !important;
}
.booking-category-index {
  min-width: 30px !important;
  font-size: 12px !important;
}
.booking-category-head > div {
  display: contents !important;
}
.booking-category-head strong {
  grid-column: 2;
  white-space: nowrap;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: -.015em !important;
}
.booking-category-head > i {
  grid-column: 3;
  margin: 0 !important;
  min-width: 28px;
  background: linear-gradient(90deg, rgba(177,111,132,.25), rgba(177,111,132,.06)) !important;
}
.booking-category-head small {
  grid-column: 4;
  justify-self: end;
  max-width: 310px;
  text-align: right !important;
  white-space: nowrap;
  font-size: 8.5px !important;
  letter-spacing: .065em !important;
}

.booking-category .service-options {
  gap: 8px !important;
}
.service-choice label {
  min-height: 88px !important;
  padding: 14px 40px 12px 15px !important;
  border-radius: 18px !important;
}
.service-choice b {
  font-size: 13px !important;
}
.service-choice span {
  margin-top: 10px !important;
}

@media (max-width: 1279px) {
  .booking-modal-head {
    padding: 16px 18px 12px !important;
  }
  .booking-head-copy {
    column-gap: 10px;
  }
  .booking-kicker {
    margin-right: 48px !important;
    font-size: 8.5px !important;
  }
  .booking-modal-head h3 {
    font-size: 27px !important;
  }
  .booking-step-intro p {
    max-width: 88% !important;
    font-size: 10.5px !important;
  }
  .booking-category-head {
    grid-template-columns: auto auto minmax(12px,1fr) minmax(0,42%);
    gap: 7px !important;
  }
  .booking-category-head strong {
    font-size: 13px !important;
  }
  .booking-category-head small {
    max-width: none;
    white-space: normal;
    line-height: 1.25;
    font-size: 7.5px !important;
  }
  .service-choice label {
    min-height: 82px !important;
    padding: 13px 38px 11px 13px !important;
  }
}

/* ===========================================================
   V179 — booking UI rebuild: compact, aligned, no decorative rules
   =========================================================== */
#bookingModal .booking-modal-head {
  position: relative;
  align-items: center !important;
  padding: 22px 28px 18px !important;
  border-bottom: 1px solid rgba(78,55,63,.07) !important;
}

#bookingModal .booking-head-copy {
  width: 100%;
  max-width: none !important;
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 18px !important;
  padding-right: 62px;
}

#bookingModal .booking-modal-head h3 {
  margin: 0 !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: clamp(29px, 3vw, 34px) !important;
  font-weight: 650 !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
  color: #2f2529 !important;
}

#bookingModal .booking-kicker {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(126,87,101,.72) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .075em !important;
  text-transform: uppercase !important;
}

#bookingModal .modal-close {
  top: 16px;
  right: 18px;
}

#bookingModal .steps {
  padding: 16px 28px 0 !important;
  gap: 8px !important;
}

#bookingModal .step-dot {
  height: 4px !important;
  border-radius: 999px !important;
}

#bookingModal .step-labels {
  padding: 7px 28px 2px !important;
  color: rgba(70,53,59,.56) !important;
  font-size: 9.5px !important;
  font-weight: 650 !important;
}

#bookingModal .booking-form {
  padding: 5px 28px 24px !important;
}

#bookingModal .booking-step-intro {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  margin: 15px 0 13px !important;
}

#bookingModal .booking-step-intro .step-title {
  margin: 0 !important;
  color: #5f4851 !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

#bookingModal .booking-step-intro p {
  max-width: 500px !important;
  margin: 0 !important;
  text-align: right !important;
  color: rgba(75,58,64,.48) !important;
  font-size: 10.5px !important;
  line-height: 1.45 !important;
}

#bookingModal .booking-step-intro-service {
  margin-bottom: 12px !important;
}

/* Categories are separated by spacing and hierarchy, not decorative lines. */
#bookingModal .booking-category,
#bookingModal .booking-category-last {
  margin: 0 0 18px !important;
  padding: 0 !important;
  border: 0 !important;
}

#bookingModal .booking-category-last {
  margin-bottom: 4px !important;
}

#bookingModal .booking-category-head {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 0 9px !important;
  min-height: 30px;
}

#bookingModal .booking-category-index {
  flex: 0 0 28px !important;
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 10px !important;
  background: rgba(180,111,135,.085) !important;
  color: rgba(163,92,116,.78) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .04em !important;
}

#bookingModal .booking-category-head > div {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 18px !important;
}

#bookingModal .booking-category-head strong {
  flex: 0 0 auto;
  color: #33282c !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  letter-spacing: -.018em !important;
  white-space: nowrap;
}

#bookingModal .booking-category-head small {
  flex: 0 1 auto;
  margin-left: auto;
  color: rgba(84,64,71,.42) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 8.5px !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
  text-align: right !important;
  white-space: nowrap !important;
}

#bookingModal .booking-category-head > i {
  display: none !important;
}

#bookingModal .booking-category .service-options {
  gap: 8px !important;
}

#bookingModal .service-choice label {
  position: relative;
  min-height: 76px !important;
  padding: 13px 40px 12px 15px !important;
  border: 1px solid rgba(89,65,73,.105) !important;
  border-radius: 17px !important;
  background: rgba(255,255,255,.48) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.52) !important;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

#bookingModal .service-choice label:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(168,102,124,.22) !important;
  background: rgba(255,255,255,.67) !important;
  box-shadow: 0 6px 16px rgba(70,45,53,.045), inset 0 1px 0 rgba(255,255,255,.7) !important;
}

#bookingModal .service-choice input:checked + label {
  transform: none !important;
  border-color: rgba(171,102,125,.56) !important;
  background: rgba(255,255,255,.78) !important;
  box-shadow: 0 0 0 2px rgba(171,102,125,.055), inset 0 1px 0 rgba(255,255,255,.8) !important;
}

#bookingModal .service-choice label::after {
  top: 13px !important;
  right: 14px !important;
  width: 14px !important;
  height: 14px !important;
  border-color: rgba(109,80,90,.18) !important;
  background: rgba(255,255,255,.55) !important;
}

#bookingModal .service-choice input:checked + label::after {
  border-color: rgba(168,99,122,.78) !important;
  background: #b66f88 !important;
  box-shadow: inset 0 0 0 3.5px #fff !important;
}

#bookingModal .service-choice b {
  display: block;
  padding: 0 !important;
  color: #32292c !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 12.5px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  letter-spacing: -.012em !important;
}

#bookingModal .service-choice-note {
  margin-top: 4px !important;
  color: rgba(153,98,117,.68) !important;
  font-size: 8.5px !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
  letter-spacing: .025em !important;
}

#bookingModal .service-choice span {
  margin-top: 9px !important;
  align-items: baseline !important;
}

#bookingModal .service-choice span i {
  color: rgba(73,59,64,.45) !important;
  font-size: 10px !important;
  font-style: normal !important;
  font-weight: 500 !important;
}

#bookingModal .service-choice span strong {
  color: #76545f !important;
  font-size: 11.5px !important;
  font-weight: 800 !important;
}

#bookingModal .booking-nav {
  margin: 14px -2px -2px !important;
  padding: 11px 2px 2px !important;
  background: linear-gradient(180deg, rgba(246,239,236,0), rgba(246,239,236,.94) 38%, #f6efec 68%) !important;
}

#bookingModal .booking-nav .btn {
  min-height: 44px !important;
  padding: 0 20px !important;
  border-radius: 999px !important;
  font-size: 11.5px !important;
}

#bookingModal .booking-nav .btn-brand {
  min-width: 144px !important;
}

@media (max-width: 1279px) {
  #bookingModal .booking-modal-head {
    padding: 18px 18px 14px !important;
  }
  #bookingModal .booking-head-copy {
    padding-right: 50px;
    gap: 10px !important;
  }
  #bookingModal .booking-modal-head h3 {
    font-size: 27px !important;
  }
  #bookingModal .booking-kicker {
    font-size: 8.5px !important;
  }
  #bookingModal .steps,
  #bookingModal .step-labels,
  #bookingModal .booking-form {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  #bookingModal .booking-category-head > div {
    display: block !important;
  }
  #bookingModal .booking-category-head small {
    display: block !important;
    margin: 3px 0 0 !important;
    text-align: left !important;
    white-space: normal !important;
  }
  #bookingModal .booking-category-index {
    flex-basis: 26px !important;
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
  }
  #bookingModal .service-choice label {
    min-height: 72px !important;
    padding: 12px 36px 11px 13px !important;
  }
  #bookingModal .booking-step-intro p {
    max-width: 62% !important;
    font-size: 9.5px !important;
  }
}

/* ===========================================================
   V180 — booking step 2: date + time redesign
   =========================================================== */
#bookingModal .booking-step-date {
  padding-top: 0 !important;
}

#bookingModal .booking-step-intro-date {
  margin-top: 14px !important;
  margin-bottom: 12px !important;
}

#bookingModal .booking-date-shell {
  display: grid;
  gap: 14px;
}

#bookingModal .booking-date-head,
#bookingModal .booking-time-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin: 0 2px 8px;
}

#bookingModal .booking-date-head-copy,
#bookingModal .booking-time-head-copy {
  display: grid;
  gap: 3px;
}

#bookingModal .booking-date-head-copy > span,
#bookingModal .booking-time-head-copy > span {
  color: rgba(130,83,100,.68);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 8.5px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .09em;
  text-transform: uppercase;
}

#bookingModal .booking-date-head-copy > strong,
#bookingModal .booking-time-head-copy > strong {
  color: #33282c;
  font-family: "Manrope", Arial, sans-serif;
  font-size: 14px;
  font-weight: 720;
  line-height: 1.15;
  letter-spacing: -.015em;
}

#bookingModal .booking-date-meta,
#bookingModal .booking-time-head > small {
  color: rgba(78,59,66,.43);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.3;
  text-align: right;
}

#bookingModal .booking-date-options,
#bookingModal .date-options {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0,1fr)) !important;
  gap: 8px !important;
  margin: 0 !important;
}

#bookingModal .date-chip {
  position: relative;
  min-width: 0;
  min-height: 82px !important;
  padding: 11px 8px 10px !important;
  display: grid !important;
  grid-template-rows: auto 1fr auto;
  align-items: center;
  justify-items: center;
  border: 1px solid rgba(89,65,73,.105) !important;
  border-radius: 17px !important;
  background: rgba(255,255,255,.46) !important;
  color: #352b2f !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.58) !important;
  transform: none !important;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease !important;
  cursor: pointer;
}

#bookingModal .date-chip:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(171,102,125,.24) !important;
  background: rgba(255,255,255,.67) !important;
  box-shadow: 0 7px 18px rgba(66,43,51,.05), inset 0 1px 0 rgba(255,255,255,.75) !important;
}

#bookingModal .date-chip.selected {
  border-color: #b16b83 !important;
  background: linear-gradient(180deg,#bb7890,#aa647d) !important;
  color: #fff !important;
  box-shadow: 0 9px 22px rgba(154,83,108,.18), inset 0 1px 0 rgba(255,255,255,.18) !important;
}

#bookingModal .date-chip-weekday {
  color: rgba(64,49,54,.48);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 8.5px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: .075em;
  text-transform: uppercase;
}

#bookingModal .date-chip-day {
  align-self: end;
  color: inherit !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 23px !important;
  font-weight: 650 !important;
  line-height: .95 !important;
  letter-spacing: -.045em;
}

#bookingModal .date-chip-month {
  align-self: start;
  color: rgba(64,49,54,.56);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 9px;
  font-weight: 620;
  line-height: 1;
}

#bookingModal .date-chip-today {
  position: absolute;
  top: 7px;
  right: 7px;
  padding: 3px 5px;
  border-radius: 999px;
  background: rgba(180,111,135,.085);
  color: rgba(145,83,105,.74);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 6.5px;
  font-style: normal;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .04em;
  text-transform: uppercase;
}

#bookingModal .date-chip.selected .date-chip-weekday,
#bookingModal .date-chip.selected .date-chip-month {
  color: rgba(255,255,255,.72);
}

#bookingModal .date-chip.selected .date-chip-today {
  background: rgba(255,255,255,.14);
  color: rgba(255,255,255,.86);
}

#bookingModal .booking-time-shell {
  margin-top: 2px;
  padding: 13px 14px 14px;
  border: 1px solid rgba(89,65,73,.085);
  border-radius: 18px;
  background: rgba(255,255,255,.25);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.44);
  transition: opacity .18s ease, filter .18s ease;
}

#bookingModal .booking-time-shell.is-disabled {
  opacity: .58;
}

#bookingModal .time-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 8px;
}

#bookingModal .time-chip {
  min-height: 42px;
  display: grid;
  place-items: center;
  padding: 0 10px;
  border: 1px solid rgba(89,65,73,.10);
  border-radius: 13px;
  background: rgba(255,255,255,.55);
  color: #45353b;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.66);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 11px;
  font-weight: 720;
  line-height: 1;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
  cursor: pointer;
}

#bookingModal .time-chip:not(:disabled):hover {
  transform: translateY(-1px);
  border-color: rgba(171,102,125,.25);
  background: rgba(255,255,255,.78);
}

#bookingModal .time-chip.selected {
  border-color: #b16b83;
  background: #b16b83;
  color: #fff;
  box-shadow: 0 7px 16px rgba(154,83,108,.15), inset 0 1px 0 rgba(255,255,255,.16);
}

#bookingModal .time-chip:disabled {
  cursor: default;
  color: rgba(69,53,59,.32);
  background: rgba(255,255,255,.32);
}

/* All forward navigation buttons stay simple and consistent. */
#bookingModal #bookingNext::before,
#bookingModal #bookingNext::after {
  content: none !important;
}

@media (max-width: 1279px) {
  #bookingModal .booking-step-intro-date {
    align-items: flex-start !important;
  }

  #bookingModal .booking-date-options,
  #bookingModal .date-options {
    grid-template-columns: repeat(4, minmax(0,1fr)) !important;
    gap: 7px !important;
  }

  #bookingModal .date-chip {
    min-height: 76px !important;
    border-radius: 15px !important;
  }

  #bookingModal .date-chip-day {
    font-size: 21px !important;
  }

  #bookingModal .time-options {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  #bookingModal .booking-date-head,
  #bookingModal .booking-time-head {
    align-items: flex-start;
  }
}

/* ===========================================================
   V181 — booking step 2 polish + real availability states
   =========================================================== */
#bookingModal .booking-step-intro-date {
  margin: 12px 0 10px !important;
}

#bookingModal .booking-date-shell {
  gap: 16px !important;
}

#bookingModal .booking-date-head,
#bookingModal .booking-time-head {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: end !important;
  gap: 18px !important;
  margin: 0 2px 9px !important;
}

#bookingModal .booking-date-eyebrow {
  color: rgba(130,83,100,.63) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 8.5px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .10em !important;
  text-transform: uppercase !important;
}

#bookingModal .booking-date-head > strong,
#bookingModal .booking-time-head > strong {
  justify-self: end !important;
  color: #392d32 !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -.015em !important;
  text-align: right !important;
}

#bookingModal .booking-date-options,
#bookingModal .date-options {
  gap: 8px !important;
}

#bookingModal .date-chip {
  min-height: 86px !important;
  padding: 10px 10px 9px !important;
  grid-template-rows: auto 1fr auto !important;
  align-content: stretch !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  overflow: hidden !important;
}

#bookingModal .date-chip-top {
  width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 5px !important;
}

#bookingModal .date-chip-weekday {
  flex: 0 0 auto !important;
  color: rgba(64,49,54,.50) !important;
  font-size: 8px !important;
}

#bookingModal .date-chip-today {
  position: static !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
  padding: 2px 5px !important;
  border-radius: 999px !important;
  background: rgba(180,111,135,.09) !important;
  color: rgba(145,83,105,.76) !important;
  font-size: 5.8px !important;
  line-height: 1.1 !important;
  letter-spacing: .035em !important;
  white-space: nowrap !important;
}

#bookingModal .date-chip-day {
  align-self: center !important;
  font-size: 22px !important;
  line-height: 1 !important;
}

#bookingModal .date-chip-month {
  align-self: end !important;
}

#bookingModal .date-chip.selected,
#bookingModal .date-chip.selected:hover,
#bookingModal .date-chip.selected:focus,
#bookingModal .date-chip.selected:focus-visible,
#bookingModal .date-chip.selected:active {
  border-color: #b16b83 !important;
  background: linear-gradient(180deg,#bb7890,#aa647d) !important;
  color: #fff !important;
  box-shadow: 0 9px 22px rgba(154,83,108,.18), inset 0 1px 0 rgba(255,255,255,.18) !important;
  outline: none !important;
}

#bookingModal .date-chip.is-full {
  cursor: not-allowed !important;
  opacity: .58 !important;
  background: rgba(239,232,230,.64) !important;
  border-color: rgba(89,65,73,.08) !important;
  box-shadow: none !important;
}

#bookingModal .date-chip-full {
  position: absolute !important;
  left: 50% !important;
  bottom: 7px !important;
  transform: translateX(-50%) !important;
  color: rgba(112,84,94,.56) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 6px !important;
  font-style: normal !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

#bookingModal .booking-time-shell {
  margin-top: 1px !important;
  padding: 14px !important;
}

#bookingModal .booking-time-shell.is-disabled {
  opacity: .55 !important;
}

#bookingModal .time-chip {
  min-height: 44px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  display: grid !important;
  grid-template-rows: 1fr auto !important;
  gap: 3px !important;
  place-items: center !important;
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

#bookingModal .time-chip > span {
  color: inherit !important;
  font: inherit !important;
  line-height: 1 !important;
}

#bookingModal .time-chip > small {
  color: rgba(118,85,96,.62) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 6.5px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
}

#bookingModal .time-chip.selected,
#bookingModal .time-chip.selected:hover,
#bookingModal .time-chip.selected:focus,
#bookingModal .time-chip.selected:focus-visible,
#bookingModal .time-chip.selected:active {
  transform: none !important;
  border-color: #b16b83 !important;
  background: #b16b83 !important;
  color: #fff !important;
  box-shadow: 0 7px 16px rgba(154,83,108,.15), inset 0 1px 0 rgba(255,255,255,.16) !important;
  outline: none !important;
}

#bookingModal .time-chip.is-occupied,
#bookingModal .time-chip.is-occupied:hover,
#bookingModal .time-chip.is-occupied:focus,
#bookingModal .time-chip.is-occupied:active {
  cursor: not-allowed !important;
  transform: none !important;
  border-color: rgba(126,95,105,.10) !important;
  background: repeating-linear-gradient(-45deg, rgba(235,225,224,.72) 0 7px, rgba(244,237,235,.72) 7px 14px) !important;
  color: rgba(72,56,62,.43) !important;
  box-shadow: none !important;
  opacity: .82 !important;
}

#bookingModal .time-chip.is-occupied > small {
  color: rgba(142,91,108,.72) !important;
}

#bookingModal .time-chip:focus-visible:not(.selected):not(.is-occupied) {
  outline: 2px solid rgba(177,107,131,.24) !important;
  outline-offset: 2px !important;
}

@media (max-width: 1279px) {
  #bookingModal .booking-date-head,
  #bookingModal .booking-time-head {
    grid-template-columns: auto 1fr !important;
    align-items: center !important;
  }
  #bookingModal .booking-date-head > strong,
  #bookingModal .booking-time-head > strong {
    font-size: 12px !important;
  }
  #bookingModal .date-chip {
    min-height: 80px !important;
    padding: 9px 8px 8px !important;
  }
  #bookingModal .date-chip-today {
    font-size: 5.3px !important;
    padding-inline: 4px !important;
  }
}

#bookingModal .time-chip.is-unavailable,
#bookingModal .time-chip.is-unavailable:hover,
#bookingModal .time-chip.is-unavailable:focus,
#bookingModal .time-chip.is-unavailable:active {
  cursor: not-allowed !important;
  transform: none !important;
  border-color: rgba(126,95,105,.08) !important;
  background: rgba(239,234,232,.56) !important;
  color: rgba(72,56,62,.32) !important;
  box-shadow: none !important;
  opacity: .70 !important;
}

#bookingModal .time-chip.is-unavailable > small {
  color: rgba(112,91,98,.52) !important;
}
#bookingModal .date-chip.is-full .date-chip-month {
  opacity: 0 !important;
}

/* ===========================================================
   V182 — booking typography + hierarchy polish
   =========================================================== */
#bookingModal .booking-modal-head {
  padding: 24px 30px 18px !important;
  border-bottom: 1px solid rgba(84,61,69,.055) !important;
  background: rgba(246,239,236,.94) !important;
}

#bookingModal .booking-head-copy {
  align-items: center !important;
  gap: 20px !important;
  padding-right: 58px !important;
}

#bookingModal .booking-modal-head h3 {
  font-family: "Brygada 1918", Georgia, serif !important;
  font-size: clamp(34px, 3.2vw, 42px) !important;
  font-weight: 600 !important;
  line-height: .98 !important;
  letter-spacing: -.035em !important;
  color: #312428 !important;
}

#bookingModal .booking-kicker {
  padding: 7px 10px !important;
  border: 1px solid rgba(169,105,127,.16) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.42) !important;
  color: rgba(139,88,106,.78) !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: .10em !important;
}

#bookingModal .steps {
  padding: 14px 30px 0 !important;
  gap: 9px !important;
}

#bookingModal .step-dot {
  height: 3px !important;
  background: rgba(95,72,80,.13) !important;
}

#bookingModal .step-dot.active {
  background: linear-gradient(90deg,#b8738b,#a86179) !important;
}

#bookingModal .step-labels {
  padding: 7px 30px 3px !important;
  color: rgba(72,56,61,.34) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 9px !important;
  font-weight: 650 !important;
  letter-spacing: -.01em !important;
}

#bookingModal .step-labels span.active {
  color: rgba(83,59,68,.58) !important;
}

#bookingModal .step-labels span.current {
  color: #7b5564 !important;
  font-weight: 800 !important;
}

#bookingModal .booking-form {
  padding: 4px 30px 24px !important;
}

#bookingModal .booking-step-intro-date {
  margin: 16px 0 14px !important;
}

#bookingModal .booking-step-intro-date .step-title {
  color: #33272b !important;
  font-family: "Brygada 1918", Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.05 !important;
  letter-spacing: -.025em !important;
  text-transform: none !important;
}

#bookingModal .booking-date-shell {
  display: grid !important;
  gap: 15px !important;
  padding: 18px !important;
  border: 1px solid rgba(89,65,73,.075) !important;
  border-radius: 22px !important;
  background: rgba(255,255,255,.28) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.56), 0 14px 36px rgba(64,42,49,.035) !important;
}

#bookingModal .booking-date-head,
#bookingModal .booking-time-head {
  margin: 0 2px 10px !important;
  align-items: center !important;
}

#bookingModal .booking-date-eyebrow {
  color: rgba(123,82,96,.66) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 8px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
}

#bookingModal .booking-date-head > strong,
#bookingModal .booking-time-head > strong {
  color: #35292d !important;
  font-family: "Brygada 1918", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: -.02em !important;
}

#bookingModal .booking-date-options,
#bookingModal .date-options {
  gap: 9px !important;
}

#bookingModal .date-chip {
  min-height: 88px !important;
  padding: 10px 9px 9px !important;
  border: 1px solid rgba(91,69,76,.085) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.62) !important;
  box-shadow: 0 5px 14px rgba(54,35,42,.028), inset 0 1px 0 rgba(255,255,255,.78) !important;
}

#bookingModal .date-chip:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(177,107,131,.25) !important;
  background: rgba(255,255,255,.82) !important;
  box-shadow: 0 8px 20px rgba(67,43,51,.055), inset 0 1px 0 rgba(255,255,255,.9) !important;
}

#bookingModal .date-chip.selected,
#bookingModal .date-chip.selected:hover,
#bookingModal .date-chip.selected:focus,
#bookingModal .date-chip.selected:focus-visible,
#bookingModal .date-chip.selected:active {
  background: linear-gradient(180deg,#bc7a91 0%,#ab657d 100%) !important;
  border-color: rgba(158,88,111,.74) !important;
  box-shadow: 0 10px 24px rgba(144,78,101,.20), inset 0 1px 0 rgba(255,255,255,.22) !important;
}

#bookingModal .date-chip-weekday {
  font-size: 8px !important;
  font-weight: 800 !important;
  letter-spacing: .09em !important;
}

#bookingModal .date-chip-day {
  font-family: "Brygada 1918", Georgia, serif !important;
  font-size: 25px !important;
  font-weight: 600 !important;
  letter-spacing: -.035em !important;
}

#bookingModal .date-chip-month {
  font-size: 8px !important;
  font-weight: 700 !important;
  letter-spacing: .025em !important;
}

#bookingModal .date-chip-today {
  padding: 3px 6px !important;
  background: rgba(184,112,136,.10) !important;
  color: #a4647b !important;
  font-size: 5.7px !important;
  font-weight: 850 !important;
}

#bookingModal .booking-time-shell {
  margin-top: 3px !important;
  padding: 15px !important;
  border: 0 !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.48) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72), 0 8px 24px rgba(65,43,50,.025) !important;
}

#bookingModal .time-options {
  gap: 9px !important;
}

#bookingModal .time-chip {
  min-height: 46px !important;
  border: 1px solid rgba(89,65,73,.085) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.76) !important;
  color: #403338 !important;
  font-size: 11.5px !important;
  font-weight: 760 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86), 0 3px 10px rgba(58,38,45,.02) !important;
}

#bookingModal .time-chip:not(:disabled):hover {
  transform: translateY(-1px) !important;
  border-color: rgba(177,107,131,.28) !important;
  background: #fff !important;
  box-shadow: 0 6px 16px rgba(73,46,56,.05), inset 0 1px 0 rgba(255,255,255,.96) !important;
}

#bookingModal .time-chip.selected,
#bookingModal .time-chip.selected:hover,
#bookingModal .time-chip.selected:focus,
#bookingModal .time-chip.selected:focus-visible,
#bookingModal .time-chip.selected:active {
  background: linear-gradient(180deg,#b8738b,#a86179) !important;
  border-color: #a86179 !important;
  color: #fff !important;
  box-shadow: 0 9px 20px rgba(143,77,100,.17), inset 0 1px 0 rgba(255,255,255,.18) !important;
}

#bookingModal .time-chip.is-occupied,
#bookingModal .time-chip.is-occupied:hover,
#bookingModal .time-chip.is-occupied:focus,
#bookingModal .time-chip.is-occupied:active {
  background: repeating-linear-gradient(-45deg, rgba(235,226,225,.78) 0 8px, rgba(246,240,238,.78) 8px 16px) !important;
  border-color: rgba(125,93,104,.095) !important;
  color: rgba(68,53,58,.42) !important;
  opacity: .95 !important;
}

#bookingModal .time-chip.is-occupied > small {
  color: #a1687d !important;
  font-size: 6px !important;
  letter-spacing: .075em !important;
}

#bookingModal .time-chip.is-unavailable {
  background: rgba(241,235,233,.62) !important;
  color: rgba(72,56,62,.30) !important;
  opacity: .82 !important;
}

#bookingModal .booking-nav {
  margin-top: 16px !important;
}

#bookingModal .booking-nav .btn-brand,
#bookingModal #bookingSubmit {
  min-width: 150px !important;
  background: linear-gradient(180deg,#b8738b,#a86179) !important;
  box-shadow: 0 10px 24px rgba(148,79,103,.15) !important;
}

@media (max-width: 1279px) {
  #bookingModal .booking-modal-head h3 {
    font-size: 31px !important;
  }
  #bookingModal .booking-date-shell {
    padding: 13px !important;
    border-radius: 19px !important;
  }
  #bookingModal .booking-step-intro-date .step-title {
    font-size: 20px !important;
  }
  #bookingModal .booking-date-head > strong,
  #bookingModal .booking-time-head > strong {
    font-size: 14px !important;
  }
}

/* ===========================================================
   V183 — booking step 2/3 typography + progress alignment
   =========================================================== */

/* Progress labels must sit exactly under their own bars. */
#bookingModal .steps,
#bookingModal .step-labels {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 9px !important;
}
#bookingModal .step-labels {
  justify-content: initial !important;
  align-items: center !important;
}
#bookingModal .step-labels span {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  text-align: center !important;
  justify-self: stretch !important;
}

/* Step 2: clean sans typography instead of decorative serif. */
#bookingModal .booking-step-date,
#bookingModal .booking-step-date button {
  font-family: "Manrope", Arial, sans-serif !important;
}
#bookingModal .booking-step-intro-date .step-title {
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 760 !important;
  line-height: 1.15 !important;
  letter-spacing: -.035em !important;
  color: #33282c !important;
}
#bookingModal .booking-date-head > strong,
#bookingModal .booking-time-head > strong {
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 760 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
  color: #3a2e32 !important;
}
#bookingModal .date-chip-day {
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 24px !important;
  font-weight: 720 !important;
  line-height: 1 !important;
  letter-spacing: -.045em !important;
}
#bookingModal .date-chip-weekday,
#bookingModal .date-chip-month,
#bookingModal .date-chip-today,
#bookingModal .time-chip {
  font-family: "Manrope", Arial, sans-serif !important;
}

/* Step 3: clearer, calmer contact form. */
#bookingModal .booking-step-contacts {
  font-family: "Manrope", Arial, sans-serif !important;
}
#bookingModal .booking-step-intro-contacts {
  align-items: flex-end !important;
  gap: 24px !important;
  margin: 17px 0 14px !important;
}
#bookingModal .booking-step-intro-contacts > div {
  min-width: 0 !important;
}
#bookingModal .booking-contact-eyebrow {
  display: block !important;
  margin-bottom: 6px !important;
  color: #a06f80 !important;
  font-size: 8.5px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}
#bookingModal .booking-step-intro-contacts .step-title {
  margin: 0 !important;
  color: #33282c !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 19px !important;
  font-weight: 760 !important;
  line-height: 1.18 !important;
  letter-spacing: -.035em !important;
  text-transform: none !important;
}
#bookingModal .booking-step-intro-contacts p {
  max-width: 330px !important;
  margin: 0 0 1px auto !important;
  color: rgba(75,58,64,.48) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  text-align: right !important;
}

#bookingModal .booking-contact-fields {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 11px !important;
  margin-bottom: 13px !important;
}
#bookingModal .booking-field-wrap {
  display: grid !important;
  gap: 7px !important;
  min-width: 0 !important;
}
#bookingModal .booking-field-wrap > span:not(.booking-field-label-row) {
  padding-left: 2px !important;
  color: #725b64 !important;
  font-size: 9px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  letter-spacing: .015em !important;
}
#bookingModal .booking-field-label-row {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 0 2px !important;
}
#bookingModal .booking-field-label-row b {
  color: #725b64 !important;
  font-size: 9px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  letter-spacing: .015em !important;
}
#bookingModal .booking-field-label-row small {
  color: rgba(119,88,99,.42) !important;
  font-size: 8px !important;
  font-weight: 650 !important;
  line-height: 1 !important;
}

#bookingModal .booking-step-contacts .field {
  min-height: 54px !important;
  padding: 0 15px !important;
  border: 1px solid rgba(93,69,77,.10) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.66) !important;
  color: #3d3135 !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 560 !important;
  line-height: 1.3 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72) !important;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease !important;
}
#bookingModal .booking-step-contacts .field::placeholder {
  color: rgba(78,62,67,.38) !important;
  opacity: 1 !important;
}
#bookingModal .booking-step-contacts .field:hover {
  border-color: rgba(167,101,121,.20) !important;
  background: rgba(255,255,255,.78) !important;
}
#bookingModal .booking-step-contacts .field:focus,
#bookingModal .booking-step-contacts .field:focus-visible {
  border-color: rgba(172,101,125,.58) !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 0 0 3px rgba(178,106,130,.08), inset 0 1px 0 rgba(255,255,255,.86) !important;
  outline: none !important;
}
#bookingModal .booking-comment-wrap {
  margin-top: 2px !important;
}
#bookingModal .booking-comment-wrap textarea.field {
  min-height: 96px !important;
  padding: 13px 15px !important;
  resize: vertical !important;
}

#bookingModal .booking-step-contacts + .form-error,
#bookingModal .form-error {
  font-family: "Manrope", Arial, sans-serif !important;
}

@media (max-width: 1279px) {
  #bookingModal .booking-step-intro-date .step-title {
    font-size: 17px !important;
  }
  #bookingModal .booking-step-intro-contacts {
    display: block !important;
  }
  #bookingModal .booking-step-intro-contacts p {
    max-width: none !important;
    margin: 7px 0 0 !important;
    text-align: left !important;
  }
  #bookingModal .booking-contact-fields {
    grid-template-columns: 1fr !important;
  }
}


/* V184 — step 3: no duplicated booking recap; final review stays on step 4 only. */
#bookingModal .booking-step-contacts .booking-contact-fields {
  margin-top: 4px !important;
}

/* ===========================================================
   V185 — multi-service booking selection
   =========================================================== */
#bookingModal .booking-selection-status {
  margin-left: auto;
  color: rgba(78,60,67,.44);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.3;
  text-align: right;
  white-space: nowrap;
  transition: color .18s ease, opacity .18s ease;
}
#bookingModal .booking-selection-status.has-selection {
  color: #9c6277;
  font-weight: 800;
}

/* Checkbox-like marker: every service can stay selected independently. */
#bookingModal .service-choice label::after {
  content: "" !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 5px !important;
  color: #fff !important;
  font-family: "Manrope", Arial, sans-serif !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: none !important;
}
#bookingModal .service-choice input:checked + label::after {
  content: "✓" !important;
  border-color: #b46f87 !important;
  background: #b46f87 !important;
  box-shadow: 0 3px 8px rgba(153,89,111,.18) !important;
}
#bookingModal .service-choice input:focus-visible + label {
  outline: 2px solid rgba(180,111,135,.28) !important;
  outline-offset: 2px !important;
}

/* Let long multi-service summaries wrap cleanly on the final step. */
#bookingModal #summaryService {
  max-width: 70%;
  text-align: right;
  line-height: 1.45;
}

@media (max-width: 1279px) {
  #bookingModal .booking-step-intro-service {
    align-items: flex-start !important;
  }
  #bookingModal .booking-selection-status {
    max-width: 52%;
    white-space: normal;
  }
  #bookingModal #summaryService {
    max-width: 62%;
  }
}

/* ===========================================================
   v18.6 - premium arrow refresh
   Replaces the dark round "kolkhoz" arrows everywhere:
   - main works carousel
   - works lightbox
   Goal: lighter glass buttons, cleaner icon, same mechanics.
   =========================================================== */
:root {
  --kb-arrow-bg-top: rgba(255,255,255,.82);
  --kb-arrow-bg-bottom: rgba(241,234,231,.94);
  --kb-arrow-border: rgba(131,102,113,.18);
  --kb-arrow-border-strong: rgba(183,121,146,.32);
  --kb-arrow-ink: #5a4650;
  --kb-arrow-ink-hover: #6f5260;
  --kb-arrow-shadow:
    0 18px 36px rgba(63,41,51,.14),
    0 4px 14px rgba(63,41,51,.08),
    inset 0 1px 0 rgba(255,255,255,.92);
}

.works-v115-nav,
.works-lightbox-nav {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: grid !important;
  place-items: center !important;
  width: 62px !important;
  height: 62px !important;
  padding: 0 !important;
  border: 1px solid var(--kb-arrow-border) !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, var(--kb-arrow-bg-top), var(--kb-arrow-bg-bottom)) !important;
  color: var(--kb-arrow-ink) !important;
  box-shadow: var(--kb-arrow-shadow) !important;
  backdrop-filter: blur(16px) saturate(1.04) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.04) !important;
  transition:
    transform .2s cubic-bezier(.2,.75,.2,1),
    box-shadow .2s ease,
    border-color .2s ease,
    color .2s ease,
    background .2s ease !important;
  overflow: hidden !important;
}

.works-v115-nav::before,
.works-lightbox-nav::before {
  content: "" !important;
  position: absolute !important;
  inset: 1px !important;
  border-radius: inherit !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.12) 44%, rgba(255,255,255,0) 70%),
    radial-gradient(circle at 24% 20%, rgba(255,255,255,.65), transparent 36%) !important;
  pointer-events: none !important;
}

.works-v115-nav::after,
.works-lightbox-nav::after {
  content: "" !important;
  position: absolute !important;
  inset: auto 12px 8px !important;
  height: 10px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(123,90,102,.10), rgba(123,90,102,0)) !important;
  filter: blur(5px) !important;
  pointer-events: none !important;
}

.works-v115-nav:hover,
.works-v115-nav:focus-visible,
.works-lightbox-nav:hover,
.works-lightbox-nav:focus-visible {
  transform: translateY(-2px) scale(1.02) !important;
  border-color: var(--kb-arrow-border-strong) !important;
  color: var(--kb-arrow-ink-hover) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(245,236,234,.98)) !important;
  box-shadow:
    0 22px 42px rgba(63,41,51,.17),
    0 8px 18px rgba(63,41,51,.10),
    inset 0 1px 0 rgba(255,255,255,.96),
    0 0 0 1px rgba(255,255,255,.22) !important;
}

.works-v115-nav:active,
.works-lightbox-nav:active {
  transform: scale(.97) !important;
  box-shadow:
    0 10px 22px rgba(63,41,51,.14),
    inset 0 1px 0 rgba(255,255,255,.9) !important;
}

.works-v115-nav .works-arrow-icon,
.works-lightbox-nav-icon {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  place-items: center !important;
}

.works-v115-nav .works-arrow-icon svg,
.works-lightbox-nav-icon svg {
  width: 20px !important;
  height: 20px !important;
  stroke: currentColor !important;
  filter: drop-shadow(0 1px 0 rgba(255,255,255,.35)) !important;
}

/* keep viewport-anchored lightbox arrows, only restyle them */
.works-lightbox-nav {
  position: fixed !important;
  z-index: 140 !important;
  top: 50% !important;
}

.works-lightbox-prev { left: clamp(14px, 3.2vw, 46px) !important; right: auto !important; }
.works-lightbox-next { right: clamp(14px, 3.2vw, 46px) !important; left: auto !important; }

@media (max-width: 1279px) {
  .works-v115-nav,
  .works-lightbox-nav {
    width: 52px !important;
    height: 52px !important;
    border-radius: 18px !important;
  }

  .works-v115-nav .works-arrow-icon svg,
  .works-lightbox-nav-icon svg {
    width: 18px !important;
    height: 18px !important;
  }

  .works-lightbox-prev { left: max(8px, env(safe-area-inset-left)) !important; }
  .works-lightbox-next { right: max(8px, env(safe-area-inset-right)) !important; }
}

/* ===========================================================
   v18.7 - lightbox close button matches V186 arrows
   =========================================================== */
.works-lightbox-close {
  position: absolute !important;
  z-index: 145 !important;
  top: 14px !important;
  right: 14px !important;
  display: grid !important;
  place-items: center !important;
  width: 56px !important;
  height: 56px !important;
  padding: 0 !important;
  border: 1px solid var(--kb-arrow-border, rgba(131,102,113,.18)) !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.84), rgba(241,234,231,.96)) !important;
  color: var(--kb-arrow-ink, #5a4650) !important;
  font-size: 32px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  box-shadow:
    0 18px 36px rgba(63,41,51,.14),
    0 4px 14px rgba(63,41,51,.08),
    inset 0 1px 0 rgba(255,255,255,.92) !important;
  backdrop-filter: blur(16px) saturate(1.04) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.04) !important;
  transition:
    transform .2s cubic-bezier(.2,.75,.2,1),
    box-shadow .2s ease,
    border-color .2s ease,
    color .2s ease,
    background .2s ease !important;
  overflow: hidden !important;
}

.works-lightbox-close::before {
  content: "" !important;
  position: absolute !important;
  inset: 1px !important;
  border-radius: inherit !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.14) 44%, rgba(255,255,255,0) 72%),
    radial-gradient(circle at 24% 20%, rgba(255,255,255,.65), transparent 36%) !important;
  pointer-events: none !important;
}

.works-lightbox-close::after {
  content: "" !important;
  position: absolute !important;
  inset: auto 12px 8px !important;
  height: 10px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, rgba(123,90,102,.10), rgba(123,90,102,0)) !important;
  filter: blur(5px) !important;
  pointer-events: none !important;
}

.works-lightbox-close:hover,
.works-lightbox-close:focus-visible {
  transform: translateY(-2px) scale(1.02) !important;
  border-color: var(--kb-arrow-border-strong, rgba(183,121,146,.32)) !important;
  color: var(--kb-arrow-ink-hover, #6f5260) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(245,236,234,.98)) !important;
  box-shadow:
    0 22px 42px rgba(63,41,51,.17),
    0 8px 18px rgba(63,41,51,.10),
    inset 0 1px 0 rgba(255,255,255,.96),
    0 0 0 1px rgba(255,255,255,.22) !important;
}

.works-lightbox-close:active {
  transform: scale(.97) !important;
  box-shadow:
    0 10px 22px rgba(63,41,51,.14),
    inset 0 1px 0 rgba(255,255,255,.9) !important;
}

.works-lightbox-close > * {
  position: relative !important;
  z-index: 2 !important;
}

@media (max-width: 1279px) {
  .works-lightbox-close {
    top: 10px !important;
    right: 10px !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 16px !important;
    font-size: 29px !important;
  }
}

/* ===========================================================
   v18.8 - smaller close button + intuitive gallery icon CTA
   =========================================================== */

/* Make the lightbox close button about 2x smaller while keeping V186/V187 style. */
.works-lightbox-close {
  top: 16px !important;
  right: 16px !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 12px !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  box-shadow:
    0 10px 20px rgba(63,41,51,.13),
    0 3px 8px rgba(63,41,51,.08),
    inset 0 1px 0 rgba(255,255,255,.92) !important;
}
.works-lightbox-close::after {
  inset: auto 8px 5px !important;
  height: 7px !important;
}
.works-lightbox-close:hover,
.works-lightbox-close:focus-visible {
  box-shadow:
    0 12px 24px rgba(63,41,51,.15),
    0 4px 10px rgba(63,41,51,.09),
    inset 0 1px 0 rgba(255,255,255,.96),
    0 0 0 1px rgba(255,255,255,.20) !important;
}

/* Upgrade "Смотреть все работы" icon from arrow to gallery/photos metaphor. */
.works-v117-all .works-cta-icon {
  width: 40px !important;
  height: 40px !important;
  display: grid !important;
  place-items: center !important;
  color: #4c303b !important;
  background: linear-gradient(145deg, #fff, #f8e9ef) !important;
  box-shadow:
    inset 0 1px 0 #fff,
    0 5px 13px rgba(41,24,31,.13) !important;
  border-radius: 50% !important;
  flex: 0 0 auto !important;
}
.works-v117-all .works-cta-icon svg {
  width: 19px !important;
  height: 19px !important;
  display: block !important;
  stroke: currentColor !important;
}
.works-v117-all .works-cta-icon svg * {
  stroke: currentColor !important;
}

@media (max-width: 1279px) {
  .works-lightbox-close {
    top: 10px !important;
    right: 10px !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 11px !important;
    font-size: 18px !important;
  }
  .works-v117-all .works-cta-icon {
    width: 32px !important;
    height: 32px !important;
  }
  .works-v117-all .works-cta-icon svg {
    width: 16px !important;
    height: 16px !important;
  }
}

/* ===========================================================
   v18.9 - clearer "all works" gallery icon
   Use a clean 2x2 gallery grid (standard all-gallery metaphor).
   =========================================================== */
.works-v117-all .works-cta-icon-grid svg {
  width: 18px !important;
  height: 18px !important;
  overflow: visible !important;
}
.works-v117-all .works-cta-icon-grid svg rect {
  fill: currentColor !important;
  stroke: none !important;
}
.works-v117-all:hover .works-cta-icon-grid,
.works-v117-all:focus-visible .works-cta-icon-grid {
  transform: scale(1.04) !important;
}
.works-v117-all .works-cta-icon-grid {
  transition: transform .2s ease !important;
}

/* ===========================================================
   V198 — unified editor UX + direct canvas manipulation
   =========================================================== */
body.ve-open .ve-panel{
  width:390px!important;
  height:min(850px,calc(100vh - 20px))!important;
  top:10px;
  right:10px;
  border-radius:20px!important;
  border:1px solid rgba(111,76,89,.13)!important;
  background:rgba(250,246,245,.965)!important;
  box-shadow:0 20px 56px rgba(61,38,47,.18),inset 0 1px 0 rgba(255,255,255,.86)!important;
  font-family:Manrope,system-ui,sans-serif!important;
}
body.ve-open .ve-head{padding:11px 11px 10px 13px!important;background:rgba(255,255,255,.46)!important;cursor:move}
body.ve-open .ve-head strong{font:800 12px/1 Manrope,system-ui,sans-serif!important;letter-spacing:.035em!important;color:#4d3540!important}
body.ve-open .ve-body{min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important;scrollbar-width:thin!important;scrollbar-color:#c997aa transparent!important;padding:10px 10px 18px!important}
body.ve-open .ve-body::-webkit-scrollbar{width:9px!important}
body.ve-open .ve-body::-webkit-scrollbar-track{background:transparent!important}
body.ve-open .ve-body::-webkit-scrollbar-thumb{background:#d2a1b3!important;border:3px solid rgba(250,246,245,.96)!important;border-radius:999px!important}
body.ve-open .ve-body::-webkit-scrollbar-button{display:none!important;width:0!important;height:0!important}
body.ve-open .ve-group{margin-bottom:9px!important;padding:11px!important;border-radius:15px!important;border-color:rgba(115,76,91,.105)!important;background:rgba(255,255,255,.68)!important;box-shadow:0 6px 18px rgba(70,44,54,.035)!important}
body.ve-open .ve-group-title,body.ve-open .ue-subtitle{color:#9d7082!important;font-size:10px!important;font-weight:800!important;letter-spacing:.09em!important;text-transform:uppercase!important}
body.ve-open .ve-label-row{font-size:11px!important;color:#66515a!important}
body.ve-open .ue-range-control{padding:7px 0!important;border-top:1px solid rgba(112,76,89,.055)!important;margin:0!important}
body.ve-open .ue-range-control:first-child{border-top:0!important}
body.ve-open .ue-range-control input[type=range]{width:100%!important;height:24px!important;margin-top:3px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;appearance:none!important;accent-color:#b66b85!important}
body.ve-open .ue-range-control input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:999px;background:#e9dfe2}
body.ve-open .ue-range-control input[type=range]::-webkit-slider-thumb{appearance:none;width:15px;height:15px;margin-top:-5px;border:2px solid #fff;border-radius:50%;background:#b66b85;box-shadow:0 2px 7px rgba(77,45,57,.22)}
body.ve-open .ue-number-wrap{height:31px!important;min-width:82px!important;gap:0!important;border:1px solid rgba(110,75,88,.14)!important;border-radius:9px!important;background:#fff!important;overflow:hidden!important}
body.ve-open .ve-panel .ue-number{width:58px!important;height:29px!important;border:0!important;border-radius:0!important;padding:0 4px 0 8px!important;background:transparent!important;box-shadow:none!important;color:#392a30!important;font:700 11px/1 Manrope,system-ui,sans-serif!important}
body.ve-open .ue-number-wrap small{min-width:22px!important;padding-right:6px!important;color:#aa929b!important;font:700 9px/1 Manrope!important}
body.ve-open .ve-footer{padding:9px 10px 10px!important;border-top:1px solid rgba(112,76,89,.10)!important;background:rgba(250,244,245,.94)!important}

/* direct selection handles shared visually with the Works editor */
.ue-outline-selected{overflow:visible!important}
.kb-direct-handle,.kb-direct-move{position:absolute!important;z-index:2147483600!important;pointer-events:auto!important;appearance:none!important;-webkit-appearance:none!important;padding:0!important;margin:0!important;border:2px solid #fff!important;background:#b56682!important;box-shadow:0 2px 8px rgba(73,42,53,.24)!important;touch-action:none!important}
.kb-direct-handle{width:12px!important;height:12px!important;border-radius:4px!important}
.kb-direct-nw{left:-7px!important;top:-7px!important;cursor:nwse-resize!important}.kb-direct-n{left:50%!important;top:-7px!important;transform:translateX(-50%)!important;cursor:ns-resize!important}.kb-direct-ne{right:-7px!important;top:-7px!important;cursor:nesw-resize!important}.kb-direct-e{right:-7px!important;top:50%!important;transform:translateY(-50%)!important;cursor:ew-resize!important}.kb-direct-se{right:-7px!important;bottom:-7px!important;cursor:nwse-resize!important}.kb-direct-s{left:50%!important;bottom:-7px!important;transform:translateX(-50%)!important;cursor:ns-resize!important}.kb-direct-sw{left:-7px!important;bottom:-7px!important;cursor:nesw-resize!important}.kb-direct-w{left:-7px!important;top:50%!important;transform:translateY(-50%)!important;cursor:ew-resize!important}
.kb-direct-move{left:50%!important;top:-31px!important;transform:translateX(-50%)!important;width:25px!important;height:25px!important;display:grid!important;place-items:center!important;border-radius:8px!important;cursor:move!important;background:#543844!important}
.kb-direct-move svg{width:15px!important;height:15px!important;color:#fff!important;pointer-events:none!important}
.kb-direct-toolbar{position:fixed;z-index:2147483601;display:none;align-items:center;gap:4px;min-height:32px;padding:4px;border:1px solid rgba(87,56,68,.14);border-radius:10px;background:rgba(252,248,247,.96);box-shadow:0 10px 24px rgba(67,42,51,.14),inset 0 1px 0 #fff;backdrop-filter:blur(16px);pointer-events:auto;font:800 9px/1 Manrope,system-ui,sans-serif;color:#634955}
.kb-direct-toolbar button{height:24px;min-width:34px;padding:0 7px;border:0;border-radius:7px;background:#f3e8ec;color:#7a5b67;font:800 8px/1 Manrope;cursor:pointer}.kb-direct-toolbar button.is-on{background:#5a3c48;color:#fff}.kb-direct-metrics{padding:0 6px;font-variant-numeric:tabular-nums;color:#795a67;white-space:nowrap}
.kb-direct-guide{position:fixed;z-index:2147483599;display:none;pointer-events:none;background:#d7649a;box-shadow:0 0 0 1px rgba(255,255,255,.5),0 0 10px rgba(215,100,154,.24)}.kb-direct-guide-v{top:0;bottom:0;width:1px}.kb-direct-guide-h{left:0;right:0;height:1px}
html.kb-direct-dragging,html.kb-direct-dragging *{user-select:none!important;-webkit-user-select:none!important}
@media(max-width:1279px){body.ve-open .ve-panel{width:auto!important;left:8px!important;right:8px!important}.kb-direct-handle{width:14px!important;height:14px!important}.kb-direct-toolbar{max-width:calc(100vw - 16px)}}
body.ve-open .ue-layer-browser>summary{list-style:none;cursor:pointer;margin:0!important;display:flex;align-items:center;gap:8px;user-select:none}
body.ve-open .ue-layer-browser>summary::-webkit-details-marker{display:none}
body.ve-open .ue-layer-browser>summary::before{content:'›';width:16px;height:16px;display:grid;place-items:center;border-radius:5px;background:#f6e9ed;color:#a66a80;transition:.18s}
body.ve-open .ue-layer-browser[open]>summary::before{transform:rotate(90deg)}
body.ve-open .ue-layer-search{margin-top:9px}
body.ve-open .ue-layer-search input{width:100%;height:36px;border:1px solid rgba(110,75,88,.14);border-radius:10px;padding:0 10px;background:#fff;color:#3d2c33;font:600 11px Manrope;outline:none}
body.ve-open .ue-layer-results{max-height:260px;overflow:auto;margin-top:7px;overscroll-behavior:contain;scrollbar-width:thin}
body.ve-open .ue-layer-item{width:100%;min-height:34px;display:flex;align-items:center;gap:8px;padding:5px 8px;border:0;border-radius:8px;background:transparent;color:#5c4850;text-align:left;font:700 10px/1.2 Manrope;cursor:pointer}
body.ve-open .ue-layer-item:hover{background:#f5e9ed}.ue-layer-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ue-layer-item small{margin-left:auto;opacity:.55;font-size:8px}.ue-layer-empty{padding:12px 6px;color:#a28c95;font-size:10px;text-align:center}
.kb-main-editor-launcher{position:fixed;left:14px;bottom:14px;z-index:2147483647;min-height:42px;padding:0 15px;border:1px solid rgba(111,76,89,.18);border-radius:999px;background:linear-gradient(180deg,#fff,#f6ecef);color:#563b46;box-shadow:0 14px 34px rgba(56,35,43,.18),inset 0 1px 0 #fff;font:800 10px/1 Manrope;letter-spacing:.06em;cursor:pointer}.kb-main-editor-launcher:hover{transform:translateY(-1px)}
.ve-panel.kb-main-editor-hidden{display:none!important}
body.ve-open .ue-scrub-label{cursor:ew-resize!important;user-select:none!important;-webkit-user-select:none!important}body.ve-open .ue-scrub-label:hover{color:#a65f79!important}


/* V199 editor: delete / trash controls */
.kb-direct-toolbar button.is-danger{background:#fff0f3!important;color:#a4465d!important;border-color:rgba(164,70,93,.12)!important}
.kb-direct-toolbar button.is-danger:hover{background:#a4465d!important;color:#fff!important}
.ue-layer-row{display:flex;align-items:stretch;gap:6px;margin-bottom:6px}
.ue-layer-row .ue-layer-item{margin:0!important;flex:1}
.ue-layer-row.is-deleted{opacity:.82}
.ue-layer-row.is-deleted .ue-layer-item{background:#f5edef!important;color:#9b7a86!important;cursor:default!important}
.ue-layer-restore{flex:0 0 auto;padding:0 10px;border:1px solid rgba(111,76,89,.14);border-radius:9px;background:#fff;color:#9a536b;font:800 10px/1 Manrope,system-ui,sans-serif;cursor:pointer}
.ue-layer-restore:hover{background:#f8e9ee}

/* ===========================================================
   V201 — published HOME values baked from SITE EDITOR EXPORT V200
   The editor itself remains draft-only; these are the explicit
   values the user exported for publication.
   =========================================================== */
.hero {
  padding-top: 170px !important;
  padding-bottom: 80px !important;
}
.hero-grid {
  gap: 51px !important;
}
.hero-story {
  max-width: 710px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}
.hero-story p {
  font-size: 20px !important;
}
.hero-actions {
  margin-top: 126px !important;
}
.hero-facts {
  padding-top: 60px !important;
}
.hero-photo-wrap {
  width: 495px !important;
  height: 710px !important;
  margin-top: 9px !important;
}
.hero-photo {
  object-position: 50% 0% !important;
}


/* ===========================================================
   V213 — original Yandex brand mark in reviews CTA
   Current Yandex mark: white Я on #FC3F1D circle.
   =========================================================== */
.btn-yandex-reviews .yandex-brand-icon{
  width:22px;
  height:22px;
  flex:0 0 22px;
  display:block;
}
.btn-yandex-reviews > span{
  display:inline-block;
}
@media(max-width:1279px){
  .btn-yandex-reviews .yandex-brand-icon{
    width:20px;
    height:20px;
    flex-basis:20px;
  }
}

/* ===========================================================
   V214 — useful hours + compact functional footer
   =========================================================== */
#contacts .contact-row-hours .contact-hours{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
#contacts .contact-row-hours .contact-hours svg{
  width:18px;
  height:18px;
  flex:0 0 auto;
  fill:none;
  stroke:var(--brand);
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#contacts .contact-row-hours .contact-hours span{
  color:var(--ink);
  font-size:15px;
  font-weight:700;
  letter-spacing:0;
  text-transform:none;
}

.footer.footer-v214{
  padding:22px 0 108px;
  color:var(--ink);
  font-size:12px;
}
.footer-v214 .footer-shell{
  position:relative;
  overflow:hidden;
  padding:24px 26px 18px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:34px;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(248,239,241,.58));
  box-shadow:0 22px 64px rgba(70,46,54,.10),inset 0 1px 0 rgba(255,255,255,.78);
  backdrop-filter:blur(18px) saturate(1.04);
}
.footer-v214 .footer-shell::before{
  content:"";
  position:absolute;
  width:260px;
  height:160px;
  right:-90px;
  top:-95px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(197,149,164,.16),rgba(197,149,164,0) 68%);
  pointer-events:none;
}
.footer-v214 .footer-top{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:30px;
}
.footer-v214 .footer-brand{
  display:inline-flex;
  flex-direction:column;
  width:max-content;
  line-height:1;
}
.footer-v214 .footer-brand-main{
  display:block;
  font-family:"Prata",Georgia,serif;
  font-size:28px;
  letter-spacing:-.06em;
  white-space:nowrap;
}
.footer-v214 .footer-brand-main > span{color:var(--brand-dark)}
.footer-v214 .footer-brand-main > b{color:#b78598;font-weight:400}
.footer-v214 .footer-brand-sub{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:5px;
  color:#8e6977;
}
.footer-v214 .footer-brand-sub i{
  width:48px;
  height:1px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(167,101,121,.82),rgba(197,149,164,.34));
}
.footer-v214 .footer-brand-sub small{
  font-size:9px;
  font-weight:700;
  font-style:normal;
  letter-spacing:.38em;
}
.footer-v214 .footer-brand-sub em{
  font-size:9px;
  font-style:normal;
  color:#c595a4;
}
.footer-v214 .footer-links{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 18px;
}
.footer-v214 .footer-links a{
  position:relative;
  color:#625459;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
  transition:color .25s ease;
}
.footer-v214 .footer-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-5px;
  height:1px;
  background:var(--brand);
  transition:right .28s var(--ease);
}
.footer-v214 .footer-links a:hover,
.footer-v214 .footer-links a:focus-visible{color:var(--brand-dark)}
.footer-v214 .footer-links a:hover::after,
.footer-v214 .footer-links a:focus-visible::after{right:0}
.footer-v214 .footer-book{
  min-height:48px;
  padding:0 22px;
  border-radius:999px;
}
.footer-v214 .footer-bottom{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:18px 28px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(63,44,50,.10);
  color:#766a6d;
  font-size:11px;
}
.footer-v214 .footer-facts,
.footer-v214 .footer-socials{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 18px;
}
.footer-v214 .footer-facts a,
.footer-v214 .footer-socials a{
  transition:color .22s ease;
}
.footer-v214 .footer-facts a:hover,
.footer-v214 .footer-facts a:focus-visible,
.footer-v214 .footer-socials a:hover,
.footer-v214 .footer-socials a:focus-visible{color:var(--brand-dark)}
.footer-v214 .footer-socials a{font-weight:700}
.footer-v214 .footer-copy{white-space:nowrap;text-align:right}

@media (max-width:1279px){
  .footer-v214 .footer-top{grid-template-columns:1fr auto;gap:22px}
  .footer-v214 .footer-links{grid-column:1/-1;grid-row:2;justify-content:flex-start;padding-top:14px;border-top:1px solid rgba(63,44,50,.08)}
  .footer-v214 .footer-bottom{grid-template-columns:1fr auto}
  .footer-v214 .footer-copy{grid-column:1/-1;text-align:left}
}
@media (max-width:1279px){
  #contacts .contact-row-hours .contact-hours span{font-size:14px}
  .footer.footer-v214{padding:10px 0 104px}
  .footer-v214 .footer-shell{padding:22px 18px 18px;border-radius:28px}
  .footer-v214 .footer-top{grid-template-columns:1fr;gap:18px}
  .footer-v214 .footer-brand-main{font-size:25px}
  .footer-v214 .footer-brand-sub i{width:40px}
  .footer-v214 .footer-book{width:100%}
  .footer-v214 .footer-links{grid-column:1;grid-row:auto;justify-content:flex-start;gap:13px 20px;padding-top:16px}
  .footer-v214 .footer-bottom{grid-template-columns:1fr;gap:14px;margin-top:18px}
  .footer-v214 .footer-facts{flex-direction:column;align-items:flex-start;gap:7px}
  .footer-v214 .footer-copy{text-align:left}
}


/* ===========================================================
   V215 — editorial premium footer
   Inspired by high-contrast luxury / beauty footer patterns:
   oversized brand lockup, one dominant CTA, compact utility row.
   =========================================================== */
.footer.footer-v215{
  padding:34px 0 112px;
  color:#f8eff1;
  font-size:13px;
}
.footer-v215 .footer-shell{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:390px;
  padding:0 42px 22px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:46px;
  background:
    radial-gradient(760px 360px at 88% 8%,rgba(206,146,169,.20),transparent 62%),
    radial-gradient(520px 340px at -6% 112%,rgba(255,234,240,.08),transparent 66%),
    linear-gradient(128deg,#35242b 0%,#4a303a 47%,#3a272f 100%);
  box-shadow:0 34px 88px rgba(60,37,46,.22),inset 0 1px 0 rgba(255,255,255,.14);
}
.footer-v215 .footer-shell::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-9%;
  right:-8%;
  top:138px;
  height:150px;
  border:1px solid rgba(232,185,201,.12);
  border-left-color:transparent;
  border-right-color:transparent;
  border-radius:50%;
  transform:rotate(-3deg);
  pointer-events:none;
}
.footer-v215 .footer-shell::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:420px;
  height:420px;
  right:-170px;
  top:-230px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 0 90px rgba(216,155,177,.09);
  pointer-events:none;
}
.footer-v215 .footer-stage{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:38px;
  min-height:210px;
  padding:28px 0 30px;
  border-bottom:1px solid rgba(255,255,255,.13);
}
.footer-v215 .footer-brand{
  display:inline-flex;
  flex-direction:column;
  width:max-content;
  max-width:100%;
  line-height:1;
}
.footer-v215 .footer-brand-main{
  display:block;
  font-family:"Prata",Georgia,serif;
  font-size:clamp(48px,5.25vw,76px);
  line-height:.96;
  letter-spacing:-.065em;
  white-space:nowrap;
  text-shadow:0 8px 28px rgba(0,0,0,.14);
}
.footer-v215 .footer-brand-main > span{color:#fff9f7}
.footer-v215 .footer-brand-main > b{color:#e8b9c9;font-weight:400}
.footer-v215 .footer-brand-sub{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  margin-top:12px;
  color:#e4b2c2;
}
.footer-v215 .footer-brand-sub i{
  flex:1 1 auto;
  height:1px;
  max-width:132px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(232,185,201,.82));
}
.footer-v215 .footer-brand-sub i:last-child{background:linear-gradient(90deg,rgba(232,185,201,.82),transparent)}
.footer-v215 .footer-brand-sub small{
  font-size:10px;
  font-weight:800;
  font-style:normal;
  letter-spacing:.48em;
  padding-left:.48em;
}
.footer-v215 .footer-brand-sub em{font-size:9px;font-style:normal;color:#efc8d5}
.footer-v215 .footer-book{
  appearance:none;
  border:1px solid rgba(255,255,255,.78);
  min-width:220px;
  min-height:66px;
  padding:7px 8px 7px 28px;
  border-radius:999px;
  background:rgba(255,249,247,.96);
  color:#402c34;
  box-shadow:0 18px 42px rgba(16,8,11,.18),inset 0 1px 0 #fff;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  font-size:15px;
  font-weight:800;
  cursor:pointer;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s ease;
}
.footer-v215 .footer-book svg{
  width:50px;
  height:50px;
  padding:14px;
  border-radius:50%;
  background:#a76579;
  stroke:#fff;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  fill:none;
  transition:transform .28s var(--ease);
}
.footer-v215 .footer-book:hover,.footer-v215 .footer-book:focus-visible{
  transform:translateY(-2px);
  background:#fff;
  box-shadow:0 24px 54px rgba(16,8,11,.24),inset 0 1px 0 #fff;
}
.footer-v215 .footer-book:hover svg,.footer-v215 .footer-book:focus-visible svg{transform:translateX(2px)}
.footer-v215 .footer-info{
  display:grid;
  grid-template-columns:1.18fr 1fr .72fr;
  gap:34px;
  padding:28px 0 24px;
}
.footer-v215 .footer-links,.footer-v215 .footer-facts,.footer-v215 .footer-socials{
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:10px 22px;
}
.footer-v215 .footer-links{align-items:flex-start}
.footer-v215 .footer-links a,.footer-v215 .footer-facts a,.footer-v215 .footer-socials a{
  color:rgba(255,246,248,.82);
  transition:color .22s ease,opacity .22s ease;
}
.footer-v215 .footer-links a{
  position:relative;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
}
.footer-v215 .footer-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-5px;
  height:1px;
  background:#e8b9c9;
  transition:right .26s var(--ease);
}
.footer-v215 .footer-links a:hover::after,.footer-v215 .footer-links a:focus-visible::after{right:0}
.footer-v215 .footer-facts{
  flex-direction:column;
  gap:8px;
  color:rgba(255,246,248,.66);
  font-size:12px;
  line-height:1.5;
}
.footer-v215 .footer-facts a{font-weight:700}
.footer-v215 .footer-socials{
  justify-content:flex-end;
  gap:8px 18px;
}
.footer-v215 .footer-socials a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
.footer-v215 .footer-socials a span{
  color:#e8b9c9;
  font-size:11px;
  transition:transform .22s var(--ease);
}
.footer-v215 .footer-socials a:hover span,.footer-v215 .footer-socials a:focus-visible span{transform:translate(2px,-2px)}
.footer-v215 .footer-links a:hover,.footer-v215 .footer-links a:focus-visible,.footer-v215 .footer-facts a:hover,.footer-v215 .footer-facts a:focus-visible,.footer-v215 .footer-socials a:hover,.footer-v215 .footer-socials a:focus-visible{color:#fff}
.footer-v215 .footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,246,248,.45);
  font-size:10px;
  letter-spacing:.06em;
}
.footer-v215 .footer-bottom > a{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  color:rgba(255,255,255,.74);
  font-size:15px;
  transition:background .22s ease,color .22s ease,transform .22s var(--ease);
}
.footer-v215 .footer-bottom > a:hover,.footer-v215 .footer-bottom > a:focus-visible{background:rgba(255,255,255,.08);color:#fff;transform:translateY(-2px)}
@media(max-width:1279px){
  .footer-v215 .footer-shell{padding:0 30px 20px;border-radius:38px}
  .footer-v215 .footer-stage{min-height:185px}
  .footer-v215 .footer-info{grid-template-columns:1fr 1fr}
  .footer-v215 .footer-socials{grid-column:1/-1;justify-content:flex-start;padding-top:2px}
}
@media(max-width:1279px){
  .footer.footer-v215{padding:14px 0 104px}
  .footer-v215 .footer-shell{min-height:0;padding:0 20px 18px;border-radius:30px}
  .footer-v215 .footer-stage{min-height:0;flex-direction:column;align-items:stretch;padding:30px 0 24px;gap:28px}
  .footer-v215 .footer-brand{width:100%;align-items:center}
  .footer-v215 .footer-brand-main{font-size:clamp(42px,13vw,58px)}
  .footer-v215 .footer-brand-sub i{max-width:82px}
  .footer-v215 .footer-book{width:100%;min-width:0;min-height:60px;padding-left:24px}
  .footer-v215 .footer-book svg{width:46px;height:46px}
  .footer-v215 .footer-info{grid-template-columns:1fr;gap:22px;padding:24px 0 20px}
  .footer-v215 .footer-links{gap:12px 20px}
  .footer-v215 .footer-facts{gap:7px}
  .footer-v215 .footer-socials{grid-column:auto;justify-content:flex-start}
  .footer-v215 .footer-shell::before{top:165px}
}
@media(max-width:420px){
  .footer-v215 .footer-brand-main{font-size:39px}
  .footer-v215 .footer-brand-sub small{font-size:9px}
}

/* ===========================================================
   V216 — Contacts become the actual final/footer composition.
   One premium closing scene: map + factual contact panel + legal row.
   No separate footer on the home page.
   =========================================================== */
#contacts.contact-footer-section{
  position:relative;
  padding:44px 0 108px!important;
  translate:none!important;
  scroll-margin-top:92px;
}
#contacts .contact-footer-shell{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(500px,.92fr);
  min-height:610px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.56);
  border-radius:46px;
  background:#eadfdd;
  box-shadow:0 34px 90px rgba(60,37,46,.17),inset 0 1px 0 rgba(255,255,255,.72);
}
#contacts .contact-footer-map{
  position:relative;
  min-width:0;
  min-height:610px;
  overflow:hidden;
  background:#ded2cf;
}
#contacts .contact-footer-map::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,transparent 74%,rgba(54,36,44,.14) 100%);
}
#contacts .contact-footer-map iframe{
  width:100%;
  height:100%;
  min-height:610px;
  filter:saturate(.78) contrast(.96) brightness(1.035);
}
#contacts .contact-map-route{
  position:absolute;
  z-index:3;
  left:26px;
  bottom:26px;
  display:inline-flex;
  align-items:center;
  gap:15px;
  min-height:54px;
  padding:7px 8px 7px 20px;
  border:1px solid rgba(255,255,255,.86);
  border-radius:999px;
  background:rgba(255,250,248,.88);
  backdrop-filter:blur(18px) saturate(1.15);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  box-shadow:0 14px 34px rgba(43,29,35,.15);
  color:#3d2a32;
  font-size:13px;
  font-weight:800;
  transition:transform .25s var(--ease),background .25s ease,box-shadow .25s ease;
}
#contacts .contact-map-route b{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:#a76579;
  color:#fff;
  font-size:16px;
  font-weight:500;
}
#contacts .contact-map-route:hover,#contacts .contact-map-route:focus-visible{
  transform:translateY(-2px);
  background:#fff;
  box-shadow:0 18px 42px rgba(43,29,35,.21);
}
#contacts .contact-footer-panel{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:50px 48px 28px;
  color:#fff9f7;
  background:
    radial-gradient(520px 360px at 90% 0%,rgba(218,162,181,.22),transparent 62%),
    radial-gradient(420px 310px at 8% 108%,rgba(255,236,241,.08),transparent 66%),
    linear-gradient(145deg,#38262e 0%,#4b303b 52%,#39262e 100%);
}
#contacts .contact-footer-panel::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:420px;
  height:210px;
  right:-175px;
  top:135px;
  border:1px solid rgba(241,199,213,.11);
  border-radius:50%;
  transform:rotate(-11deg);
  pointer-events:none;
}
#contacts .contact-footer-head{
  padding-bottom:30px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
#contacts .contact-footer-brand{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:rgba(245,215,224,.72);
  font-size:10px;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
}
#contacts .contact-footer-brand i{
  color:#e4afc1;
  font-style:normal;
  font-size:8px;
}
#contacts .contact-footer-title{
  margin:14px 0 0;
  color:#fffaf8;
  font-size:clamp(58px,5.2vw,82px);
  line-height:.98;
  font-weight:400;
  letter-spacing:-.055em;
}
#contacts .contact-footer-details{
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:0 28px;
  padding:18px 0 14px;
}
#contacts .contact-footer-detail{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  min-height:88px;
  padding:17px 0;
  border-bottom:1px solid rgba(255,255,255,.10);
}
#contacts a.contact-footer-detail{
  padding-right:28px;
  transition:color .22s ease;
}
#contacts .contact-footer-detail-wide{grid-column:auto}
#contacts .contact-footer-detail > span{
  margin-bottom:8px;
  color:rgba(255,246,248,.48);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
#contacts .contact-footer-detail strong{
  color:rgba(255,250,248,.94);
  font-size:14px;
  line-height:1.5;
  font-weight:650;
}
#contacts .contact-footer-detail > b{
  position:absolute;
  right:3px;
  bottom:19px;
  color:#e6b4c5;
  font-size:13px;
  font-weight:500;
  transition:transform .22s var(--ease),color .22s ease;
}
#contacts a.contact-footer-detail:hover > b,#contacts a.contact-footer-detail:focus-visible > b{
  transform:translate(2px,-2px);
  color:#fff;
}
#contacts .contact-footer-phone{grid-column:1/-1}
#contacts .contact-footer-phone strong{
  font-family:"Prata",Georgia,serif;
  font-size:clamp(21px,1.65vw,27px);
  line-height:1.2;
  letter-spacing:-.035em;
  font-weight:400;
}
#contacts .contact-footer-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:auto;
  padding-top:24px;
}
#contacts .contact-footer-book{
  appearance:none;
  min-width:208px;
  min-height:60px;
  padding:7px 8px 7px 24px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:999px;
  background:#fff9f7;
  color:#402c34;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  box-shadow:0 16px 38px rgba(12,7,9,.20),inset 0 1px 0 #fff;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  transition:transform .26s var(--ease),box-shadow .26s var(--ease),background .26s ease;
}
#contacts .contact-footer-book svg{
  width:46px;
  height:46px;
  padding:13px;
  border-radius:50%;
  background:#a76579;
  fill:none;
  stroke:#fff;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .26s var(--ease);
}
#contacts .contact-footer-book:hover,#contacts .contact-footer-book:focus-visible{
  transform:translateY(-2px);
  background:#fff;
  box-shadow:0 22px 48px rgba(12,7,9,.25),inset 0 1px 0 #fff;
}
#contacts .contact-footer-book:hover svg,#contacts .contact-footer-book:focus-visible svg{transform:translateX(2px)}
#contacts .contact-footer-socials{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:9px 17px;
}
#contacts .contact-footer-socials a{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:rgba(255,246,248,.68);
  font-size:12px;
  font-weight:700;
  transition:color .22s ease;
}
#contacts .contact-footer-socials a span{color:#e4afc1;transition:transform .22s var(--ease)}
#contacts .contact-footer-socials a:hover,#contacts .contact-footer-socials a:focus-visible{color:#fff}
#contacts .contact-footer-socials a:hover span,#contacts .contact-footer-socials a:focus-visible span{transform:translate(2px,-2px)}
#contacts .contact-footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:26px;
  padding-top:17px;
  border-top:1px solid rgba(255,255,255,.10);
  color:rgba(255,246,248,.38);
  font-size:9px;
  letter-spacing:.06em;
}
#contacts .contact-footer-bottom a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:rgba(255,246,248,.60);
  font-size:10px;
  font-weight:700;
  letter-spacing:0;
  transition:color .22s ease;
}
#contacts .contact-footer-bottom a b{color:#e4afc1;font-size:13px;font-weight:500}
#contacts .contact-footer-bottom a:hover,#contacts .contact-footer-bottom a:focus-visible{color:#fff}
@media(max-width:1279px){
  #contacts .contact-footer-shell{grid-template-columns:1fr 1fr;min-height:570px}
  #contacts .contact-footer-map,#contacts .contact-footer-map iframe{min-height:570px}
  #contacts .contact-footer-panel{padding:42px 34px 26px}
  #contacts .contact-footer-details{grid-template-columns:1fr;gap:0}
  #contacts .contact-footer-phone{grid-column:auto}
  #contacts .contact-footer-actions{align-items:flex-start;flex-direction:column;gap:18px}
  #contacts .contact-footer-socials{justify-content:flex-start}
}
@media(max-width:1279px){
  #contacts.contact-footer-section{padding:28px 0 104px!important}
  #contacts .contact-footer-shell{grid-template-columns:1fr;min-height:0;border-radius:32px}
  #contacts .contact-footer-panel{order:-1;padding:34px 22px 22px}
  #contacts .contact-footer-title{font-size:clamp(52px,15vw,70px)}
  #contacts .contact-footer-head{padding-bottom:24px}
  #contacts .contact-footer-details{padding-top:10px}
  #contacts .contact-footer-detail{min-height:74px;padding:14px 0}
  #contacts .contact-footer-detail strong{font-size:14px}
  #contacts .contact-footer-phone strong{font-size:22px}
  #contacts .contact-footer-actions{padding-top:20px}
  #contacts .contact-footer-book{width:100%;min-width:0}
  #contacts .contact-footer-socials{width:100%;justify-content:space-between;gap:10px}
  #contacts .contact-footer-bottom{margin-top:22px}
  #contacts .contact-footer-map,#contacts .contact-footer-map iframe{min-height:390px;height:390px}
  #contacts .contact-footer-map::after{background:linear-gradient(180deg,rgba(54,36,44,.08),transparent 20%)}
  #contacts .contact-map-route{left:18px;bottom:18px;min-height:50px;padding-left:18px}
  #contacts .contact-map-route b{width:36px;height:36px}
}
@media(max-width:430px){
  #contacts .contact-footer-socials{justify-content:flex-start;gap:12px 18px}
  #contacts .contact-footer-bottom{align-items:flex-start;flex-direction:column;gap:10px}
}

/* ===========================================================
   V217 — Contacts as a wide, compact closing block.
   Same horizontal footprint as the top navigation, no stripes,
   no 50/50 map split. The map is a secondary compact card.
   =========================================================== */
#contacts.contact-footer-section{
  position:relative;
  padding:34px 0 58px!important;
  translate:none!important;
  scroll-margin-top:92px;
}
#contacts .contact-footer-wide{
  width:min(calc(100% - 32px),1360px);
  margin:0 auto;
}
#contacts .contact-footer-shell{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,390px);
  gap:34px;
  min-height:410px;
  padding:34px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72);
  border-radius:42px;
  background:
    radial-gradient(720px 420px at 8% 0%,rgba(255,255,255,.82),transparent 70%),
    radial-gradient(620px 440px at 88% 12%,rgba(228,181,196,.22),transparent 68%),
    radial-gradient(520px 420px at 54% 115%,rgba(255,247,248,.72),transparent 66%),
    rgba(244,235,233,.86);
  box-shadow:0 28px 76px rgba(70,46,54,.13),inset 0 1px 0 rgba(255,255,255,.88);
  backdrop-filter:blur(24px) saturate(1.05);
  -webkit-backdrop-filter:blur(24px) saturate(1.05);
}
#contacts .contact-footer-shell::before,
#contacts .contact-footer-shell::after,
#contacts .contact-footer-content::before,
#contacts .contact-footer-content::after{
  content:none!important;
  display:none!important;
}
#contacts .contact-footer-content{
  position:relative;
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:7px 2px 2px 8px;
  color:#2b2024;
  background:none!important;
}
#contacts .contact-footer-title-wrap{
  align-self:flex-start;
  padding:0;
  border:0!important;
  background:none!important;
}
#contacts .contact-footer-title{
  margin:0;
  color:#251b1f;
  font-size:clamp(58px,5.8vw,82px);
  line-height:.98;
  font-weight:400;
  letter-spacing:-.055em;
}
#contacts .contact-footer-details{
  display:grid;
  grid-template-columns:minmax(260px,1.55fr) minmax(120px,.55fr);
  gap:24px 46px;
  max-width:1279px;
  margin-top:42px;
  padding:0!important;
}
#contacts .contact-footer-detail,
#contacts a.contact-footer-detail{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-width:0;
  min-height:0;
  padding:0!important;
  border:0!important;
  background:none!important;
  color:inherit;
}
#contacts .contact-footer-address{grid-column:1/2}
#contacts .contact-footer-phone{grid-column:1/2}
#contacts .contact-footer-detail > span{
  margin:0 0 7px;
  color:rgba(75,52,61,.48);
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
#contacts .contact-footer-detail strong{
  color:#3d2b32;
  font-size:14px;
  line-height:1.5;
  font-weight:700;
}
#contacts .contact-footer-phone strong{
  font-family:"Prata",Georgia,serif;
  font-size:clamp(19px,1.5vw,24px);
  line-height:1.25;
  letter-spacing:-.035em;
  font-weight:400;
}
#contacts .contact-footer-detail > b{display:none!important}
#contacts a.contact-footer-detail:hover strong,
#contacts a.contact-footer-detail:focus-visible strong{color:#9d5c72}
#contacts .contact-footer-actions{
  display:flex;
  align-items:center;
  gap:24px;
  margin-top:34px;
  padding:0!important;
}
#contacts .contact-footer-book{
  appearance:none;
  min-width:186px;
  min-height:56px;
  padding:6px 7px 6px 22px;
  border:0;
  border-radius:999px;
  background:#4b343d;
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  box-shadow:0 14px 30px rgba(75,52,61,.20);
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  transition:transform .26s var(--ease),box-shadow .26s var(--ease),background .26s ease;
}
#contacts .contact-footer-book svg{
  width:42px;
  height:42px;
  padding:12px;
  border-radius:50%;
  background:rgba(255,255,255,.13);
  fill:none;
  stroke:#fff;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .26s var(--ease);
}
#contacts .contact-footer-book:hover,#contacts .contact-footer-book:focus-visible{
  transform:translateY(-2px);
  background:#402c34;
  box-shadow:0 18px 36px rgba(75,52,61,.26);
}
#contacts .contact-footer-book:hover svg,#contacts .contact-footer-book:focus-visible svg{transform:translateX(2px)}
#contacts .contact-footer-socials{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:9px 18px;
}
#contacts .contact-footer-socials a{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:rgba(75,52,61,.66);
  font-size:12px;
  font-weight:750;
  transition:color .22s ease,transform .22s var(--ease);
}
#contacts .contact-footer-socials a span{color:#b97189}
#contacts .contact-footer-socials a:hover,#contacts .contact-footer-socials a:focus-visible{color:#2d2025;transform:translateY(-1px)}
#contacts .contact-footer-bottom{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:28px;
  margin-top:auto;
  padding:28px 0 0!important;
  border:0!important;
  color:rgba(75,52,61,.45);
  font-size:9px;
  letter-spacing:.055em;
}
#contacts .contact-footer-bottom a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:rgba(75,52,61,.60);
  font-size:10px;
  font-weight:750;
}
#contacts .contact-footer-bottom a b{color:#a76579;font-size:13px;font-weight:500}
#contacts .contact-footer-map{
  position:relative;
  align-self:stretch;
  min-width:0;
  min-height:342px;
  max-height:342px;
  margin:auto 0;
  overflow:hidden;
  border-radius:30px;
  background:#ded2cf;
  box-shadow:0 18px 48px rgba(65,43,51,.14),inset 0 1px 0 rgba(255,255,255,.75);
}
#contacts .contact-footer-map::after{content:none!important;display:none!important}
#contacts .contact-footer-map iframe{
  width:100%;
  height:100%;
  min-height:342px;
  border:0;
  filter:saturate(.76) contrast(.96) brightness(1.03);
}
#contacts .contact-map-route{
  position:absolute;
  z-index:3;
  left:18px;
  bottom:18px;
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  padding:6px 7px 6px 18px;
  border:1px solid rgba(255,255,255,.86);
  border-radius:999px;
  background:rgba(255,250,248,.91);
  backdrop-filter:blur(16px) saturate(1.1);
  -webkit-backdrop-filter:blur(16px) saturate(1.1);
  box-shadow:0 12px 28px rgba(43,29,35,.15);
  color:#3d2a32;
  font-size:12px;
  font-weight:800;
}
#contacts .contact-map-route b{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:#a76579;
  color:#fff;
  font-size:14px;
  font-weight:500;
}
#contacts .contact-map-route:hover,#contacts .contact-map-route:focus-visible{transform:translateY(-2px);background:#fff}
@media(max-width:1279px){
  #contacts .contact-footer-shell{grid-template-columns:minmax(0,1fr) 330px;gap:26px;padding:28px}
  #contacts .contact-footer-details{grid-template-columns:1fr 1fr;gap:22px 32px;margin-top:34px}
  #contacts .contact-footer-map{min-height:320px;max-height:320px}
  #contacts .contact-footer-map iframe{min-height:320px}
}
@media(max-width:1279px){
  #contacts.contact-footer-section{padding:26px 0 96px!important}
  #contacts .contact-footer-wide{width:calc(100% - 20px)}
  #contacts .contact-footer-shell{grid-template-columns:1fr;gap:24px;padding:24px;border-radius:32px}
  #contacts .contact-footer-content{padding:2px}
  #contacts .contact-footer-title{font-size:clamp(52px,15vw,68px)}
  #contacts .contact-footer-details{grid-template-columns:1fr 1fr;gap:22px;margin-top:30px}
  #contacts .contact-footer-address,#contacts .contact-footer-phone{grid-column:auto}
  #contacts .contact-footer-actions{align-items:flex-start;flex-direction:column;gap:18px;margin-top:30px}
  #contacts .contact-footer-socials{gap:10px 18px}
  #contacts .contact-footer-bottom{margin-top:30px;padding-top:0!important}
  #contacts .contact-footer-map{min-height:260px;max-height:260px;width:100%}
  #contacts .contact-footer-map iframe{min-height:260px}
}
@media(max-width:520px){
  #contacts .contact-footer-shell{padding:20px}
  #contacts .contact-footer-details{grid-template-columns:1fr;gap:19px}
  #contacts .contact-footer-book{width:100%}
  #contacts .contact-footer-bottom{align-items:flex-start;flex-direction:column;gap:10px}
  #contacts .contact-footer-map{min-height:230px;max-height:230px}
  #contacts .contact-footer-map iframe{min-height:230px}
}


/* ===========================================================
   V218 — CONTACTS FOOTER
   Keep the original contact block structure. Only:
   full header-width shell, title -> Contacts, working hours,
   copyright, compact secondary map, V217 pearl background.
   =========================================================== */
#contacts.contact-as-footer{
  position:relative;
  padding:34px 0 58px!important;
  translate:none!important;
  scroll-margin-top:92px;
}
#contacts .contact-wide{
  width:min(calc(100% - 32px),1360px);
  margin:0 auto;
}
#contacts .contact-shell-v218{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(350px,430px);
  gap:28px;
  padding:20px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:42px;
  overflow:hidden;
  background:
    radial-gradient(720px 420px at 8% 0%,rgba(255,255,255,.82),transparent 70%),
    radial-gradient(620px 440px at 88% 12%,rgba(228,181,196,.22),transparent 68%),
    radial-gradient(520px 420px at 54% 115%,rgba(255,247,248,.72),transparent 66%),
    rgba(244,235,233,.86);
  box-shadow:0 28px 76px rgba(70,46,54,.13),inset 0 1px 0 rgba(255,255,255,.88);
  backdrop-filter:blur(24px) saturate(1.05);
  -webkit-backdrop-filter:blur(24px) saturate(1.05);
}
#contacts .contact-shell-v218::before,
#contacts .contact-shell-v218::after{content:none!important;display:none!important}
#contacts .contact-copy{
  min-width:0;
  padding:30px 34px 24px;
}
#contacts .contact-copy h2{
  margin:0 0 26px;
  font-size:clamp(58px,5.7vw,82px);
  line-height:.98;
  font-weight:400;
  letter-spacing:-.055em;
}
#contacts .contact-list{
  width:min(100%,760px);
  margin-top:14px;
}
#contacts .contact-row{
  grid-template-columns:120px minmax(0,1fr);
  gap:18px;
  padding:14px 0;
}
#contacts .contact-row span{
  color:rgba(75,52,61,.50);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
}
#contacts .contact-row b{
  color:#3d2b32;
  font-size:14px;
  line-height:1.45;
}
#contacts .contact-hours{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
#contacts .contact-hours span{
  color:inherit;
  font-size:inherit;
  font-weight:inherit;
  letter-spacing:0;
  text-transform:none;
}
#contacts .contact-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:24px;
}
#contacts .contact-copyright{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin-top:24px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.62);
  border-radius:999px;
  background:rgba(255,255,255,.34);
  color:rgba(75,52,61,.48);
  font-size:9px;
  line-height:1;
  letter-spacing:.055em;
  white-space:nowrap;
}
#contacts .map-wrap{
  align-self:stretch;
  min-height:430px;
  height:auto;
  border-radius:30px;
  overflow:hidden;
  background:#ded2cf;
  box-shadow:0 18px 48px rgba(65,43,51,.12),inset 0 1px 0 rgba(255,255,255,.70);
}
#contacts .map-wrap iframe{
  width:100%;
  height:100%;
  min-height:430px;
  border:0;
  filter:saturate(.82) contrast(.97) brightness(1.03);
}
@media(max-width:1279px){
  #contacts .contact-shell-v218{grid-template-columns:minmax(0,1fr) 350px;gap:22px;padding:18px}
  #contacts .contact-copy{padding:26px 24px 22px}
  #contacts .map-wrap,#contacts .map-wrap iframe{min-height:410px}
}
@media(max-width:1279px){
  #contacts.contact-as-footer{padding:26px 0 96px!important}
  #contacts .contact-wide{width:calc(100% - 20px)}
  #contacts .contact-shell-v218{grid-template-columns:1fr;gap:18px;padding:16px;border-radius:32px}
  #contacts .contact-copy{padding:22px 18px 18px}
  #contacts .contact-copy h2{font-size:clamp(52px,15vw,68px)}
  #contacts .contact-row{grid-template-columns:104px minmax(0,1fr);gap:12px;padding:13px 0}
  #contacts .map-wrap,#contacts .map-wrap iframe{min-height:260px}
}
@media(max-width:520px){
  #contacts .contact-shell-v218{padding:12px}
  #contacts .contact-copy{padding:20px 14px 16px}
  #contacts .contact-row{grid-template-columns:1fr;gap:6px}
  #contacts .contact-actions{gap:8px}
  #contacts .contact-actions .btn{flex:1 1 calc(50% - 8px);justify-content:center}
  #contacts .contact-copyright{white-space:normal;line-height:1.3}
  #contacts .map-wrap,#contacts .map-wrap iframe{min-height:230px}
}

/* ===========================================================
   V219 — restore the contacts map to its original geometry.
   Keep V218 contacts/footer content and background unchanged.
   =========================================================== */
@media (min-width:1280px){
  #contacts .contact-shell-v218{
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  }
  #contacts .map-wrap,
  #contacts .map-wrap iframe{
    min-height:560px;
  }
}
#contacts .map-wrap{
  border-radius:31px;
  background:#d6cbc7;
  box-shadow:none;
}
#contacts .map-wrap iframe{
  filter:none;
}
@media (min-width:1280px) and (max-width:1279px){
  #contacts .contact-shell-v218{
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  }
  #contacts .map-wrap,
  #contacts .map-wrap iframe{
    min-height:420px;
  }
}

/* ===========================================================
   V230 — exact HOME EXPORT 2026-09-10 12:10 baseline.
   Published page and editor use the same data-kb-edit-id rules.
   =========================================================== */
#contacts .contact-shell-v218{border-radius:0!important;}
#contacts .map-wrap[data-kb-edit-id="contact-map"]{
  min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
  justify-self:start!important;align-self:start!important;
}
#contacts .map-wrap[data-kb-edit-id="contact-map"] iframe{
  width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
}
#top [data-kb-edit-id="auto-p-007"][data-kb-edit-id="auto-p-007"][data-kb-edit-id="auto-p-007"]{translate:0px 0px!important;font-size:20px!important}
#top [data-kb-edit-id="hero"][data-kb-edit-id="hero"][data-kb-edit-id="hero"]{padding-top:170px!important;padding-bottom:80px!important}
#top [data-kb-edit-id="hero-grid"][data-kb-edit-id="hero-grid"][data-kb-edit-id="hero-grid"]{gap:51px!important}
#top [data-kb-edit-id="hero-story"][data-kb-edit-id="hero-story"][data-kb-edit-id="hero-story"]{max-width:710px!important;padding-left:24px!important;padding-right:24px!important;padding-top:40px!important;padding-bottom:40px!important}
#top [data-kb-edit-id="hero-actions"][data-kb-edit-id="hero-actions"][data-kb-edit-id="hero-actions"]{margin-top:126px!important}
#top [data-kb-edit-id="hero-facts"][data-kb-edit-id="hero-facts"][data-kb-edit-id="hero-facts"]{padding-top:60px!important}
#top [data-kb-edit-id="hero-photo-wrap"][data-kb-edit-id="hero-photo-wrap"][data-kb-edit-id="hero-photo-wrap"]{width:495px!important;height:710px!important;margin-top:9px!important}
#top [data-kb-edit-id="hero-photo"][data-kb-edit-id="hero-photo"][data-kb-edit-id="hero-photo"]{object-position:50% 0%!important}
#contacts [data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"]{translate:-288px 84px!important;width:1940px!important;height:594px!important}
#contacts[data-kb-edit-id="contacts"][data-kb-edit-id="contacts"][data-kb-edit-id="contacts"]{margin-top:-177px!important;margin-bottom:-200px!important;padding-top:-47px!important;gap:0px!important}
#contacts [data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"]{translate:132px 8px!important;width:608px!important;height:532px!important}
#contacts [data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"]{translate:-24px 8px!important;width:910px!important;height:536px!important}
#contacts [data-kb-edit-id="contact-title"][data-kb-edit-id="contact-title"][data-kb-edit-id="contact-title"]{translate:0px -12px!important}
#contacts [data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"]{translate:0px -24px!important}
#contacts [data-kb-edit-id="contact-copyright"][data-kb-edit-id="contact-copyright"][data-kb-edit-id="contact-copyright"]{translate:244px 64px!important}
#contacts [data-kb-edit-id="contact-format-row"][data-kb-edit-id="contact-format-row"][data-kb-edit-id="contact-format-row"]{translate:0px -52px!important;width:528px!important;height:49px!important}
#contacts [data-kb-edit-id="contact-route"][data-kb-edit-id="contact-route"][data-kb-edit-id="contact-route"]{translate:2px 16px!important}
#contacts [data-kb-edit-id="contact-book"][data-kb-edit-id="contact-book"][data-kb-edit-id="contact-book"]{translate:0px 16px!important}
#contacts [data-kb-edit-id="contact-telegram"][data-kb-edit-id="contact-telegram"][data-kb-edit-id="contact-telegram"]{translate:0px 16px!important}
#contacts [data-kb-edit-id="contact-instagram"][data-kb-edit-id="contact-instagram"][data-kb-edit-id="contact-instagram"]{translate:0px 16px!important}
#contacts [data-kb-edit-id="contact-phone-row"][data-kb-edit-id="contact-phone-row"][data-kb-edit-id="contact-phone-row"]{translate:0px -8px!important;width:528px!important;height:49px!important}
#contacts [data-kb-edit-id="contact-address-value"][data-kb-edit-id="contact-address-value"][data-kb-edit-id="contact-address-value"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-hours-label"][data-kb-edit-id="contact-hours-label"][data-kb-edit-id="contact-hours-label"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-phone-label"][data-kb-edit-id="contact-phone-label"][data-kb-edit-id="contact-phone-label"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-format-label"][data-kb-edit-id="contact-format-label"][data-kb-edit-id="contact-format-label"]{translate:0px 0px!important;width:120px!important;height:14px!important}
#contacts [data-kb-edit-id="contact-metro-label"][data-kb-edit-id="contact-metro-label"][data-kb-edit-id="contact-metro-label"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-address-label"][data-kb-edit-id="contact-address-label"][data-kb-edit-id="contact-address-label"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-phone-link"][data-kb-edit-id="contact-phone-link"][data-kb-edit-id="contact-phone-link"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-list"][data-kb-edit-id="contact-list"][data-kb-edit-id="contact-list"]{translate:0px 0px!important;width:528px!important;height:237px!important}
#contacts [data-kb-edit-id="contact-hours-row"][data-kb-edit-id="contact-hours-row"][data-kb-edit-id="contact-hours-row"]{translate:0px 44px!important}

/* V230 — restore the small bottom copyright pill. */
#contacts [data-kb-edit-id="contact-copyright"]{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  z-index:4!important;
}
/* V230 — allow the restored bottom badge to remain visible at the shell edge. */
#contacts [data-kb-edit-id="contact-shell"]{overflow:visible!important;}

/* ===========================================================
   V231 — contacts row-flow fix.
   The visible order is now encoded in the DOM itself instead of
   using translate hacks, so rows cannot stack on top of each other.
   All other V230 user geometry is intentionally preserved.
   =========================================================== */
#contacts [data-kb-edit-id="contact-format-row"][data-kb-edit-id="contact-format-row"][data-kb-edit-id="contact-format-row"],
#contacts [data-kb-edit-id="contact-hours-row"][data-kb-edit-id="contact-hours-row"][data-kb-edit-id="contact-hours-row"],
#contacts [data-kb-edit-id="contact-phone-row"][data-kb-edit-id="contact-phone-row"][data-kb-edit-id="contact-phone-row"]{
  translate:0 0!important;
}
#contacts [data-kb-edit-id="contact-list"]{overflow:visible!important;}

/* ===========================================================
   V232 — EXACT HOME EXPORT 2026-09-10 12:47.
   User geometry only. No reinterpretation.
   V231 DOM row order and editor mechanics are preserved.
   =========================================================== */
#top [data-kb-edit-id="auto-p-007"][data-kb-edit-id="auto-p-007"][data-kb-edit-id="auto-p-007"]{translate:0px 0px!important;font-size:20px!important}
#top [data-kb-edit-id="hero"][data-kb-edit-id="hero"][data-kb-edit-id="hero"]{padding-top:170px!important;padding-bottom:80px!important}
#top [data-kb-edit-id="hero-grid"][data-kb-edit-id="hero-grid"][data-kb-edit-id="hero-grid"]{gap:51px!important}
#top [data-kb-edit-id="hero-story"][data-kb-edit-id="hero-story"][data-kb-edit-id="hero-story"]{max-width:710px!important;padding-left:24px!important;padding-right:24px!important;padding-top:40px!important;padding-bottom:40px!important}
#top [data-kb-edit-id="hero-actions"][data-kb-edit-id="hero-actions"][data-kb-edit-id="hero-actions"]{margin-top:126px!important}
#top [data-kb-edit-id="hero-facts"][data-kb-edit-id="hero-facts"][data-kb-edit-id="hero-facts"]{padding-top:60px!important}
#top [data-kb-edit-id="hero-photo-wrap"][data-kb-edit-id="hero-photo-wrap"][data-kb-edit-id="hero-photo-wrap"]{width:495px!important;height:710px!important;margin-top:9px!important}
#top [data-kb-edit-id="hero-photo"][data-kb-edit-id="hero-photo"][data-kb-edit-id="hero-photo"]{object-position:50% 0%!important}
#contacts [data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"]{translate:-288px 100px!important;width:1940px!important;height:594px!important}
#contacts[data-kb-edit-id="contacts"][data-kb-edit-id="contacts"][data-kb-edit-id="contacts"]{margin-top:-177px!important;margin-bottom:-200px!important;padding-top:-47px!important;gap:0px!important}
#contacts [data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"]{translate:132px 8px!important;width:608px!important;height:532px!important}
#contacts [data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"]{translate:-24px 8px!important;width:910px!important;height:536px!important}
#contacts [data-kb-edit-id="contact-title"][data-kb-edit-id="contact-title"][data-kb-edit-id="contact-title"]{translate:0px -12px!important}
#contacts [data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"]{translate:0px -24px!important}
#contacts [data-kb-edit-id="contact-copyright"][data-kb-edit-id="contact-copyright"][data-kb-edit-id="contact-copyright"]{translate:-4px 32px!important}
#contacts [data-kb-edit-id="contact-format-row"][data-kb-edit-id="contact-format-row"][data-kb-edit-id="contact-format-row"]{translate:0px 0px!important;width:528px!important;height:49px!important}
#contacts [data-kb-edit-id="contact-route"][data-kb-edit-id="contact-route"][data-kb-edit-id="contact-route"]{translate:2px 16px!important}
#contacts [data-kb-edit-id="contact-book"][data-kb-edit-id="contact-book"][data-kb-edit-id="contact-book"]{translate:0px 16px!important}
#contacts [data-kb-edit-id="contact-telegram"][data-kb-edit-id="contact-telegram"][data-kb-edit-id="contact-telegram"]{translate:0px 16px!important}
#contacts [data-kb-edit-id="contact-instagram"][data-kb-edit-id="contact-instagram"][data-kb-edit-id="contact-instagram"]{translate:0px 16px!important}
#contacts [data-kb-edit-id="contact-phone-row"][data-kb-edit-id="contact-phone-row"][data-kb-edit-id="contact-phone-row"]{translate:0px 0px!important;width:528px!important;height:49px!important}
#contacts [data-kb-edit-id="contact-address-value"][data-kb-edit-id="contact-address-value"][data-kb-edit-id="contact-address-value"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-hours-label"][data-kb-edit-id="contact-hours-label"][data-kb-edit-id="contact-hours-label"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-phone-label"][data-kb-edit-id="contact-phone-label"][data-kb-edit-id="contact-phone-label"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-format-label"][data-kb-edit-id="contact-format-label"][data-kb-edit-id="contact-format-label"]{translate:0px 0px!important;width:120px!important;height:14px!important}
#contacts [data-kb-edit-id="contact-metro-label"][data-kb-edit-id="contact-metro-label"][data-kb-edit-id="contact-metro-label"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-address-label"][data-kb-edit-id="contact-address-label"][data-kb-edit-id="contact-address-label"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-phone-link"][data-kb-edit-id="contact-phone-link"][data-kb-edit-id="contact-phone-link"]{translate:0px 0px!important}
#contacts [data-kb-edit-id="contact-list"][data-kb-edit-id="contact-list"][data-kb-edit-id="contact-list"]{translate:0px 0px!important;width:528px!important;height:237px!important}
#contacts [data-kb-edit-id="contact-hours-row"][data-kb-edit-id="contact-hours-row"][data-kb-edit-id="contact-hours-row"]{translate:0px 0px!important}


/* ===========================================================
   V239 — smooth navigation + native scrollbar stability
   Lenis and CSS native smooth-scroll must not animate the same page.
   Keep native scrollbar dragging 1:1 and pause expensive infinite
   decoration only during programmatic anchor flights.
   =========================================================== */
html, body {
  scroll-behavior: auto !important;
}

html.kb-anchor-flight .services-price-shell .sp-neon-rotor,
html.kb-anchor-flight .services-price-shell .sp-kicker-dot,
html.kb-anchor-flight .services-price-shell .sp-group-dot,
html.kb-anchor-flight .hero-overline .dot,
html.kb-anchor-flight .hero-photo-wrap::before,
html.kb-anchor-flight .hero-photo-wrap::after {
  animation-play-state: paused !important;
}

/* Reveals that enter during a long anchor flight should not run another
   transform animation at the same time as the page scroll. */
html.kb-anchor-flight .reveal {
  transition: none !important;
}

/* Native scrollbar/thumb interaction always wins over programmatic motion. */
html.kb-native-scrollbar-drag,
html.kb-native-scrollbar-drag body {
  scroll-behavior: auto !important;
}


/* ===========================================================
   V246 — Yandex map stable reveal
   Keep the original Yandex business marker and hide progressive
   iframe painting until the widget has had time to finish rendering.
   =========================================================== */
#contacts .map-wrap{position:relative;isolation:isolate;}
#contacts .map-wrap::after{
  content:"";position:absolute;inset:0;z-index:4;pointer-events:none;
  background:
    radial-gradient(circle at 58% 34%,rgba(216,240,196,.72),transparent 28%),
    radial-gradient(circle at 24% 64%,rgba(230,238,224,.72),transparent 31%),
    linear-gradient(135deg,#eef0ea 0%,#e7ece3 48%,#f3eee9 100%);
  opacity:1;visibility:visible;transition:opacity .20s ease,visibility 0s linear .20s;
}
#contacts .map-wrap iframe{opacity:0!important;transition:opacity .20s ease!important;}
#contacts .map-wrap.kb-map-ready-v246 iframe{opacity:1!important;}
#contacts .map-wrap.kb-map-ready-v246::after{opacity:0;visibility:hidden;}
html.kb-editor-mode-v244 #contacts .map-wrap::after{display:none!important;}
html.kb-editor-mode-v244 #contacts .map-wrap iframe{opacity:1!important;}


/* ===== SOURCE: assets/page-scrollbar-v242.css ===== */
/* ================================================================
   V242 — compositor-paced draggable page scrollbar for Lenis.
   Why: native browser scrollbar dragging updates scroll position directly,
   while wheel input is interpolated by Lenis. The custom thumb keeps the
   same dusty-pink visual but routes drag targets through Lenis, so page
   motion continues on requestAnimationFrame instead of stepping with the
   browser scrollbar thumb.
   ================================================================ */

@media (min-width: 900px) and (pointer: fine) {
  /* The native viewport scrollbar is hidden only while the custom control is
     active. Internal scrollbars (booking/editor/lightbox) remain untouched. */
  html.kb-page-scrollbar-v242 {
    scrollbar-width: none !important;
    scrollbar-color: transparent transparent !important;
    scrollbar-gutter: auto !important;
  }
  html.kb-page-scrollbar-v242::-webkit-scrollbar,
  html.kb-page-scrollbar-v242 > body::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
    background: transparent !important;
  }

  /* Preserve the exact pre-V242 content width on classic-scrollbar systems.
     JS measures the real native width before hiding it (10px on the current
     Windows/Chrome setup). */
  html.kb-page-scrollbar-v242 > body {
    width: calc(100% - var(--kb-native-scrollbar-w, 0px));
  }
  html.kb-page-scrollbar-v242 .topbar {
    right: var(--kb-native-scrollbar-w, 0px) !important;
  }
  html.kb-page-scrollbar-v242 .quick-contact-dock {
    margin-right: var(--kb-native-scrollbar-w, 0px) !important;
  }

  .kb-page-scrollbar-v242-ui {
    position: fixed;
    z-index: 95;
    top: 3px;
    right: 2px;
    bottom: 3px;
    width: 8px;
    opacity: 1;
    pointer-events: none;
    transition: opacity .16s ease;
    contain: layout style paint;
  }

  .kb-page-scrollbar-v242-track {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255,255,255,.46), rgba(244,236,236,.58));
    box-shadow: inset 0 0 0 1px rgba(174,139,151,.08);
    pointer-events: auto;
    cursor: default;
  }

  .kb-page-scrollbar-v242-thumb {
    position: absolute;
    top: 0;
    left: 0;
    width: 8px;
    min-height: 44px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(223,178,191,.98), rgba(199,144,163,.96));
    border: 1.5px solid rgba(255,255,255,.78);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.62),
      0 2px 8px rgba(150,92,115,.16);
    cursor: grab;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    will-change: transform, height;
  }

  .kb-page-scrollbar-v242-thumb:hover,
  .kb-page-scrollbar-v242-thumb:focus-visible {
    background: linear-gradient(180deg, rgba(216,168,182,.99), rgba(188,130,150,.98));
    outline: none;
  }

  html.kb-page-scrollbar-drag-v242 .kb-page-scrollbar-v242-thumb {
    cursor: grabbing;
  }

  /* Match the site's existing wheel-performance guard during a thumb drag.
     This is deliberately animation-only: no backdrop/filter/layout changes. */
  html.kb-page-scrollbar-drag-v242 .services-price-shell .sp-neon-rotor,
  html.kb-page-scrollbar-drag-v242 .services-price-shell .sp-kicker-dot,
  html.kb-page-scrollbar-drag-v242 .services-price-shell .sp-group-dot,
  html.kb-page-scrollbar-drag-v242 .hero-overline .dot,
  html.kb-page-scrollbar-drag-v242 .hero-photo-wrap::before,
  html.kb-page-scrollbar-drag-v242 .hero-photo-wrap::after {
    animation-play-state: paused !important;
  }

  html.kb-page-scrollbar-drag-v242,
  html.kb-page-scrollbar-drag-v242 body {
    user-select: none !important;
    -webkit-user-select: none !important;
  }

  body.modal-lock .kb-page-scrollbar-v242-ui,
  body.works-lightbox-open .kb-page-scrollbar-v242-ui {
    opacity: 0;
    pointer-events: none;
  }
}

@media (max-width: 899px), (pointer: coarse) {
  .kb-page-scrollbar-v242-ui { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .kb-page-scrollbar-v242-ui { transition: none !important; }
}


/* ===== SOURCE: assets/mobile-home-v324.css ===== */
/* KOSHKOBROW V280 — SINGLE ACTIVE MOBILE CASCADE.
   Generated from the proven V278 active chain; desktop CSS is untouched. */

/* ===== merged from mobile-v252.css ===== */
/* ======================================================================
   KOSHKOBROW V252 — MOBILE UI/UX REBUILD
   Scope: phone / phone editor preview only. Desktop styles are untouched.
   Goals: compact chrome, readable type, one rhythm, native scrolling,
   zero backdrop blur, zero animated filter layers, stable image sources.
   ====================================================================== */

html.kb-mobile-v252{
  --m-bg: #f3e9e7;
  --m-bg-2: #eadbd8;
  --m-surface: #fbf7f5;
  --m-surface-2: #f6eeec;
  --m-ink: #2c2024;
  --m-muted: #78696e;
  --m-line: rgba(74, 47, 57, .12);
  --m-brand: #a45f75;
  --m-brand-strong: #8f4f64;
  --m-plum: #422d35;
  --m-plum-2: #513942;
  --m-cream: #fff9f6;
  --m-pad: clamp(14px, 4.1vw, 18px);
  --m-radius-xl: 28px;
  --m-radius-lg: 22px;
  --m-radius-md: 16px;
  --m-header-h: 54px;
  --m-shadow: 0 16px 42px rgba(65, 41, 49, .10);
  --m-shadow-soft: 0 9px 28px rgba(65, 41, 49, .07);
  color-scheme: light;
  scroll-behavior: auto !important;
  scroll-padding-top: 76px !important;
  overflow-x: clip !important;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html.kb-mobile-v252, html.kb-mobile-v252 body{
  width: 100% !important;
  max-width: 100% !important;
  min-width: 320px !important;
  overflow-x: clip !important;
}

html.kb-mobile-v252 body{
  margin: 0 !important;
  color: var(--m-ink) !important;
  background:
    radial-gradient(circle at 14% 8%, rgba(255,255,255,.58), transparent 30%),
    radial-gradient(circle at 90% 34%, rgba(205,153,169,.10), transparent 28%),
    linear-gradient(180deg, #f5edeb 0%, var(--m-bg) 48%, #f1e6e4 100%) !important;
  background-attachment: scroll !important;
  font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  overscroll-behavior-x: none;
}

html.kb-mobile-v252 body::before, html.kb-mobile-v252 body::after{
  display: none !important;
  content: none !important;
}

html.kb-mobile-v252 *, html.kb-mobile-v252 *::before, html.kb-mobile-v252 *::after{
  box-sizing: border-box !important;
}

html.kb-mobile-v252 img{
  max-width: 100% !important;
}

html.kb-mobile-v252 .container{
  width: auto !important;
  max-width: none !important;
  margin-inline: var(--m-pad) !important;
  padding-inline: 0 !important;
}

html.kb-mobile-v252 .section, html.kb-mobile-v252 #services, html.kb-mobile-v252 #works, html.kb-mobile-v252 #reviews, html.kb-mobile-v252 #contacts{
  scroll-margin-top: 74px !important;
}

html.kb-mobile-v252 .section{
  padding: 56px 0 !important;
  margin: 0 !important;
}

html.kb-mobile-v252 .reveal, html.kb-mobile-v252 .reveal.in, html.kb-mobile-v252 [class*="reveal"]{
  opacity: 1 !important;
  transform: none !important;
  translate: none !important;
  transition: none !important;
}

html.kb-mobile-v252 [style*="will-change"]{
  will-change: auto !important;
}

html.kb-mobile-v252 .ui-blur-layer, html.kb-mobile-v252 .quick-contact-dock, html.kb-mobile-v252 .mobile-book, html.kb-mobile-v252 .kbm-sticky-book{
  display: none !important;
}

html.kb-mobile-v252 .serif, html.kb-mobile-v252 .section-display{
  font-family: "Prata", Georgia, serif !important;
  letter-spacing: -.045em !important;
}

/* ----------------------------------------------------------------------
   Header: compact, opaque, never covers section titles visually
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 .topbar{
  position: fixed !important;
  z-index: 120 !important;
  top: calc(8px + env(safe-area-inset-top, 0px)) !important;
  left: 10px !important;
  right: 10px !important;
  width: auto !important;
  height: var(--m-header-h) !important;
  min-height: var(--m-header-h) !important;
  inset-inline: 10px !important;
  pointer-events: none !important;
  border: 0 !important;
  background: transparent !important;
  transform: none !important;
}

html.kb-mobile-v252 .topbar .nav{
  width: 100% !important;
  height: var(--m-header-h) !important;
  min-height: var(--m-header-h) !important;
  margin: 0 !important;
  padding: 5px 5px 5px 11px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 7px !important;
  border: 1px solid rgba(79,51,61,.10) !important;
  border-radius: 17px !important;
  background: rgba(252,247,245,.985) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: 0 7px 24px rgba(58,37,45,.10), inset 0 1px 0 rgba(255,255,255,.82) !important;
  pointer-events: auto !important;
  overflow: hidden !important;
}

html.kb-mobile-v252 .topbar .logo{
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  min-width: 0 !important;
  max-width: 132px !important;
  margin-right: auto !important;
  overflow: hidden !important;
  line-height: 1 !important;
}

html.kb-mobile-v252 .topbar .logo-main{
  display: flex !important;
  align-items: baseline !important;
  white-space: nowrap !important;
  font-family: "Prata", Georgia, serif !important;
  font-size: 15px !important;
  line-height: 1 !important;
  letter-spacing: -.055em !important;
}

html.kb-mobile-v252 .topbar .logo-koshko{ color: #2f2327 !important; }
html.kb-mobile-v252 .topbar .logo-brow{ color: var(--m-brand) !important; }
html.kb-mobile-v252 .topbar .logo-sub{
  display: flex !important;
  width: 100% !important;
  align-items: center !important;
  gap: 4px !important;
  margin-top: 3px !important;
  color: #69565d !important;
}
html.kb-mobile-v252 .topbar .logo-line{ flex: 1 1 auto !important; height: 1px !important; background: rgba(94,68,77,.20) !important; }
html.kb-mobile-v252 .topbar .logo-star{ font-size: 6px !important; line-height: 1 !important; }
html.kb-mobile-v252 .topbar .logo-studio{ font-size: 6px !important; line-height: 1 !important; letter-spacing: .22em !important; font-weight: 800 !important; }

html.kb-mobile-v252 .topbar .navlinks{ display: none !important; }

html.kb-mobile-v252 .topbar .nav > .btn, html.kb-mobile-v252 .topbar .nav > a.btn{
  flex: 0 0 auto !important;
  min-width: 0 !important;
  width: auto !important;
  min-height: 42px !important;
  height: 42px !important;
  padding: 0 13px !important;
  border: 0 !important;
  border-radius: 13px !important;
  color: #fff !important;
  background: var(--m-plum) !important;
  box-shadow: none !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}

html.kb-mobile-v252 .kbm-menu-toggle{
  flex: 0 0 42px !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(70,45,54,.10) !important;
  border-radius: 13px !important;
  background: #f3e9e6 !important;
  box-shadow: none !important;
  cursor: pointer !important;
}
html.kb-mobile-v252 .kbm-menu-toggle::before, html.kb-mobile-v252 .kbm-menu-toggle::after, html.kb-mobile-v252 .kbm-menu-toggle > span{
  content: "" !important;
  display: block !important;
  position: absolute !important;
  width: 17px !important;
  height: 1.5px !important;
  border-radius: 2px !important;
  background: var(--m-plum) !important;
  transition: transform .2s ease, opacity .2s ease !important;
}
html.kb-mobile-v252 .kbm-menu-toggle::before{ transform: translateY(-5px) !important; }
html.kb-mobile-v252 .kbm-menu-toggle::after{ transform: translateY(5px) !important; }
html.kb-mobile-v252 .kbm-menu-toggle > span{ position: static !important; }
html.kb-mobile-v252.kbm-menu-open .kbm-menu-toggle::before{ transform: rotate(45deg) !important; }
html.kb-mobile-v252.kbm-menu-open .kbm-menu-toggle::after{ transform: rotate(-45deg) !important; }
html.kb-mobile-v252.kbm-menu-open .kbm-menu-toggle > span{ opacity: 0 !important; }

/* mobile menu — rendered only while open */
html.kb-mobile-v252 .kbm-menu-backdrop, html.kb-mobile-v252 .kbm-menu-sheet{
  display: none !important;
}
html.kb-mobile-v252.kbm-menu-open .kbm-menu-backdrop{
  display: block !important;
  position: fixed !important;
  z-index: 125 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  background: rgba(33,23,27,.40) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html.kb-mobile-v252.kbm-menu-open .kbm-menu-sheet{
  display: flex !important;
  position: fixed !important;
  z-index: 130 !important;
  top: calc(70px + env(safe-area-inset-top, 0px)) !important;
  left: 12px !important;
  right: 12px !important;
  width: auto !important;
  max-height: calc(100dvh - 88px - env(safe-area-inset-top, 0px)) !important;
  padding: 14px !important;
  flex-direction: column !important;
  gap: 12px !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 24px !important;
  background: #fbf7f5 !important;
  box-shadow: 0 25px 70px rgba(42,27,33,.22) !important;
  overflow: auto !important;
}
html.kb-mobile-v252 .kbm-menu-links{
  display: grid !important;
  gap: 6px !important;
}
html.kb-mobile-v252 .kbm-menu-links a{
  min-height: 52px !important;
  padding: 0 13px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border-radius: 15px !important;
  background: #f6eeec !important;
  color: var(--m-ink) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}
html.kb-mobile-v252 .kbm-menu-links a::after{
  content: "↗" !important;
  color: var(--m-brand) !important;
  font-size: 17px !important;
}
html.kb-mobile-v252 .kbm-menu-book{
  width: 100% !important;
  min-height: 52px !important;
  border: 0 !important;
  border-radius: 15px !important;
  color: #fff !important;
  background: var(--m-brand-strong) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

/* ----------------------------------------------------------------------
   Hero
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 #top.hero, html.kb-mobile-v252 .hero{
  min-height: 0 !important;
  height: auto !important;
  padding: calc(82px + env(safe-area-inset-top, 0px)) 0 36px !important;
  margin: 0 !important;
  display: block !important;
  overflow: hidden !important;
}
html.kb-mobile-v252 .hero-grid{
  width: auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  align-items: stretch !important;
  grid-template-columns: none !important;
  transform: none !important;
  translate: none !important;
}
html.kb-mobile-v252 .hero-copy{
  order: 1 !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  transform: none !important;
  translate: none !important;
}




html.kb-mobile-v252 .hero-brand-wrap{
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  overflow: visible !important;
}
html.kb-mobile-v252 .hero-brand-lockup{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 7px !important;
}
html.kb-mobile-v252 .hero-brand-main{
  display: flex !important;
  align-items: baseline !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  font-size: clamp(34px, 10.7vw, 43px) !important;
  line-height: .94 !important;
  letter-spacing: -.06em !important;
}
html.kb-mobile-v252 .hero-brand-sub{
  display: flex !important;
  width: min(210px, 62vw) !important;
  align-items: center !important;
  gap: 7px !important;
  margin: 0 !important;
  color: #705a62 !important;
}
html.kb-mobile-v252 .hero-brand-sub .hero-brand-line{ flex: 1 1 auto !important; height: 1px !important; background: rgba(89,61,71,.18) !important; }
html.kb-mobile-v252 .hero-brand-sub .hero-brand-star{ font-size: 8px !important; }
html.kb-mobile-v252 .hero-brand-sub .hero-brand-studio{ font-size: 9px !important; letter-spacing: .25em !important; font-weight: 800 !important; }

html.kb-mobile-v252 .hero-story{
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 16px 16px 17px !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 18px !important;
  background: rgba(255,252,249,.72) !important;
  box-shadow: none !important;
  transform: none !important;
  translate: none !important;
}
html.kb-mobile-v252 .hero-story p{
  margin: 0 !important;
  max-width: none !important;
  color: #55464b !important;
  font-size: 14px !important;
  line-height: 1.62 !important;
  font-weight: 500 !important;
  transform: none !important;
  translate: none !important;
}

html.kb-mobile-v252 .hero-actions{
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 1.15fr .85fr !important;
  gap: 8px !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  transform: none !important;
  translate: none !important;
}
html.kb-mobile-v252 .hero-actions .btn{
  width: 100% !important;
  min-width: 0 !important;
  min-height: 50px !important;
  height: 50px !important;
  padding: 0 12px !important;
  border-radius: 15px !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  box-shadow: none !important;
  transform: none !important;
}
html.kb-mobile-v252 .hero-actions .btn-brand{ background: var(--m-brand-strong) !important; color: #fff !important; border: 0 !important; }
html.kb-mobile-v252 .hero-actions .btn-light{ background: rgba(255,255,255,.58) !important; color: var(--m-plum) !important; border: 1px solid var(--m-line) !important; }

html.kb-mobile-v252 .hero-facts{
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 7px !important;
  margin: 18px 0 0 !important;
  padding: 0 !important;
  transform: none !important;
  translate: none !important;
}
html.kb-mobile-v252 .hero-fact{
  min-width: 0 !important;
  min-height: 66px !important;
  margin: 0 !important;
  padding: 10px 9px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 3px !important;
  border: 1px solid rgba(75,48,58,.09) !important;
  border-radius: 15px !important;
  background: rgba(255,250,248,.60) !important;
}
html.kb-mobile-v252 .hero-fact b{
  color: var(--m-plum) !important;
  font-size: 12px !important;
  line-height: 1.18 !important;
  font-weight: 800 !important;
  overflow-wrap: normal !important;
}
html.kb-mobile-v252 .hero-fact span{
  color: #7a6a70 !important;
  font-size: 9px !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
}

html.kb-mobile-v252 .hero-photo-wrap, html.kb-mobile-v252 .hero-photo-wrap.reveal{
  order: 2 !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 5 !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  align-self: stretch !important;
  transform: none !important;
  translate: none !important;
}
html.kb-mobile-v252 .hero-photo-wrap::before, html.kb-mobile-v252 .hero-photo-wrap::after{
  display: none !important;
  content: none !important;
}
html.kb-mobile-v252 .hero-photo-shell{
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  border: 1px solid rgba(91,58,70,.13) !important;
  border-radius: 26px !important;
  background: #e9d7d0 !important;
  box-shadow: var(--m-shadow) !important;
  overflow: hidden !important;
}
html.kb-mobile-v252 .hero-photo{
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center 24% !important;
  border-radius: 0 !important;
  filter: none !important;
}

/* decorative service strip is redundant on a small screen */
html.kb-mobile-v252 .brand-strip{ display: none !important; }

/* ----------------------------------------------------------------------
   Services — premium compact accordion, one category open at a time
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 #services.section-services-price{
  padding: 54px 0 !important;
  overflow: visible !important;
  background: linear-gradient(180deg, transparent 0 6%, rgba(66,45,53,.045) 6% 94%, transparent 94%) !important;
}
html.kb-mobile-v252 #services .container{ margin-inline: 12px !important; }
html.kb-mobile-v252 .services-price-shell{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 30px !important;
  background: linear-gradient(160deg, #463039 0%, #38272e 100%) !important;
  box-shadow: 0 22px 55px rgba(57,37,45,.17) !important;
  overflow: hidden !important;
  contain: layout style !important;
  color: #fff !important;
}
html.kb-mobile-v252 .sp-neon-frame, html.kb-mobile-v252 .sp-neon-rotor, html.kb-mobile-v252 .services-price-shell::before, html.kb-mobile-v252 .services-price-shell::after{
  display: none !important;
  animation: none !important;
  filter: none !important;
}
html.kb-mobile-v252 .sp-head{
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 25px 20px 20px !important;
  display: block !important;
  color: #fff !important;
  background: transparent !important;
  transform: none !important;
  translate: none !important;
}
html.kb-mobile-v252 .sp-title-wrap{ width: auto !important; margin: 0 !important; }
html.kb-mobile-v252 .sp-title{
  margin: 0 !important;
  color: #fff9f6 !important;
  font-size: clamp(38px, 11.2vw, 46px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.05em !important;
}
html.kb-mobile-v252 .sp-head-side{
  width: auto !important;
  max-width: none !important;
  margin: 12px 0 0 !important;
  padding: 0 !important;
  display: block !important;
}
html.kb-mobile-v252 .sp-head-side p{
  width: auto !important;
  max-width: 32em !important;
  margin: 0 !important;
  color: rgba(255,248,246,.68) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
}
html.kb-mobile-v252 .sp-body{
  width: auto !important;
  margin: 0 !important;
  padding: 0 10px 12px !important;
  background: transparent !important;
}
html.kb-mobile-v252 .sp-boundary-divider{ display: none !important; }
html.kb-mobile-v252 .sp-group{
  width: 100% !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,.055) !important;
  overflow: hidden !important;
  contain: layout style !important;
}
html.kb-mobile-v252 .sp-group:last-of-type{ margin-bottom: 0 !important; }
html.kb-mobile-v252 .sp-group-head{
  position: relative !important;
  width: 100% !important;
  min-height: 76px !important;
  margin: 0 !important;
  padding: 15px 46px 15px 15px !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 5px !important;
  align-items: center !important;
  color: #fff !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
}
html.kb-mobile-v252 .sp-group-head::after{
  content: "+" !important;
  position: absolute !important;
  right: 14px !important;
  top: 50% !important;
  width: 30px !important;
  height: 30px !important;
  transform: translateY(-50%) !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 10px !important;
  color: rgba(255,255,255,.85) !important;
  background: rgba(255,255,255,.06) !important;
  font-size: 21px !important;
  line-height: 1 !important;
  font-weight: 300 !important;
}
html.kb-mobile-v252 .sp-group.kbm-open .sp-group-head::after{ content: "−" !important; }
html.kb-mobile-v252 .sp-group-pill{
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 .sp-group-icon{
  width: 28px !important;
  height: 28px !important;
  flex: 0 0 28px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 9px !important;
  background: rgba(255,255,255,.07) !important;
}
html.kb-mobile-v252 .sp-group-icon svg{ width: 16px !important; height: 16px !important; stroke: currentColor !important; fill: none !important; }
html.kb-mobile-v252 .sp-group-head > p{
  width: auto !important;
  max-width: none !important;
  margin: 0 0 0 37px !important;
  color: rgba(255,248,246,.56) !important;
  font-size: 11px !important;
  line-height: 1.35 !important;
  text-align: left !important;
  font-weight: 500 !important;
}
html.kb-mobile-v252 .sp-group > .sp-service, html.kb-mobile-v252 .sp-group > .sp-service-divider-v101{
  display: none !important;
}
html.kb-mobile-v252 .sp-group.kbm-open > .sp-service{
  display: grid !important;
}
html.kb-mobile-v252 .sp-group.kbm-open > .sp-service-divider-v101{
  display: block !important;
}
html.kb-mobile-v252 .sp-service{
  width: auto !important;
  min-height: 0 !important;
  margin: 0 10px !important;
  padding: 14px 4px 15px !important;
  grid-template-columns: 28px minmax(0,1fr) auto !important;
  grid-template-rows: auto auto auto !important;
  gap: 7px 9px !important;
  align-items: start !important;
  border: 0 !important;
  background: transparent !important;
  color: #fff !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
html.kb-mobile-v252 .sp-service-divider-v101{
  height: 1px !important;
  margin: 0 14px 0 47px !important;
  background: rgba(255,255,255,.09) !important;
}
html.kb-mobile-v252 .sp-no{
  grid-column: 1 !important;
  grid-row: 1 / 4 !important;
  padding-top: 2px !important;
  color: rgba(255,245,243,.38) !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
}
html.kb-mobile-v252 .sp-main{
  grid-column: 2 / 4 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  margin: 0 !important;
}
html.kb-mobile-v252 .sp-main h3{
  margin: 0 !important;
  color: #fffafa !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 750 !important;
  letter-spacing: -.01em !important;
}
html.kb-mobile-v252 .sp-main p{
  margin: 5px 0 0 !important;
  color: rgba(255,248,246,.52) !important;
  font-size: 11px !important;
  line-height: 1.42 !important;
  font-weight: 500 !important;
}
html.kb-mobile-v252 .sp-note{
  display: inline !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #dcb4c1 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
}
html.kb-mobile-v252 .sp-time{
  grid-column: 2 !important;
  grid-row: 2 !important;
  align-self: center !important;
  color: rgba(255,248,246,.52) !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
}
html.kb-mobile-v252 .sp-price{
  grid-column: 3 !important;
  grid-row: 2 !important;
  align-self: center !important;
  justify-self: end !important;
  color: #fff !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}
html.kb-mobile-v252 .sp-book{
  grid-column: 2 / 4 !important;
  grid-row: 3 !important;
  width: 100% !important;
  min-height: 44px !important;
  height: 44px !important;
  margin: 3px 0 0 !important;
  padding: 0 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 13px !important;
  background: rgba(255,255,255,.10) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 .sp-book-icon{ width: 15px !important; height: 15px !important; stroke: currentColor !important; fill: none !important; }
html.kb-mobile-v252 .sp-more{
  margin: 10px 0 0 !important;
  padding: 14px !important;
  display: grid !important;
  gap: 7px !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: 17px !important;
  background: rgba(255,255,255,.04) !important;
  color: #fff !important;
}
html.kb-mobile-v252 .sp-more > span, html.kb-mobile-v252 .sp-more > strong, html.kb-mobile-v252 .sp-more > p{ color: inherit !important; }
html.kb-mobile-v252 .sp-more-link{
  min-height: 44px !important;
  margin-top: 2px !important;
  padding: 0 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 13px !important;
  background: #f2dfe5 !important;
  color: #4a3039 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

/* ----------------------------------------------------------------------
   Shared section headings
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 #works .section-display, html.kb-mobile-v252 #reviews .section-display, html.kb-mobile-v252 #contacts .section-display, html.kb-mobile-v252 .portfolio-hero h1{
  margin: 0 !important;
  color: var(--m-ink) !important;
  font-size: clamp(37px, 10.7vw, 44px) !important;
  line-height: 1.04 !important;
  letter-spacing: -.05em !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* ----------------------------------------------------------------------
   Works on home — one complete card, caption outside image, native swipe
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 #works{
  padding: 58px 0 62px !important;
  overflow: hidden !important;
}
html.kb-mobile-v252 #works .container{ margin-inline: var(--m-pad) !important; }
html.kb-mobile-v252 .works-v105-shell{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
html.kb-mobile-v252 .works-v105-head{
  width: 100% !important;
  margin: 0 0 20px !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 12px !important;
  align-items: end !important;
}
html.kb-mobile-v252 .works-v105-title-wrap{ min-width: 0 !important; }
html.kb-mobile-v252 .works-v105-actions{ margin: 0 !important; padding: 0 !important; }
html.kb-mobile-v252 .works-v105-all{
  min-height: 42px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 13px !important;
  background: rgba(255,255,255,.48) !important;
  color: var(--m-plum) !important;
  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}
html.kb-mobile-v252 .works-cta-icon{ width: 14px !important; height: 14px !important; }

html.kb-mobile-v252 .works-carousel{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}
html.kb-mobile-v252 .works-carousel-viewport{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory !important;
  scroll-behavior: smooth !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-x: contain !important;
  touch-action: pan-x pinch-zoom !important;
  scrollbar-width: none !important;
  border-radius: 0 !important;
}
html.kb-mobile-v252 .works-carousel-viewport::-webkit-scrollbar{ display: none !important; }
html.kb-mobile-v252 .works-carousel-track{
  width: max-content !important;
  min-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  gap: 12px !important;
  transform: none !important;
  transition: none !important;
}
html.kb-mobile-v252 .works-slide{
  flex: 0 0 100% !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  scroll-snap-align: start !important;
  scroll-snap-stop: always !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  cursor: pointer !important;
  text-align: left !important;
}
html.kb-mobile-v252 .works-slide-clip{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  display: grid !important;
  grid-template-rows: auto auto !important;
  gap: 0 !important;
  overflow: visible !important;
  border-radius: 0 !important;
  background: transparent !important;
}
html.kb-mobile-v252 .works-slide-media{
  grid-row: 1 !important;
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  display: block !important;
  overflow: hidden !important;
  border: 1px solid rgba(79,51,61,.11) !important;
  border-radius: 24px !important;
  background: #e8d7d2 !important;
  box-shadow: var(--m-shadow-soft) !important;
}
html.kb-mobile-v252 .works-slide-media img:not(.works-slide-blur){
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  filter: none !important;
  transform: none !important;
}
html.kb-mobile-v252 .works-slide-blur, html.kb-mobile-v252 .works-slide-shade{ display: none !important; }
html.kb-mobile-v252 .works-slide-caption{
  grid-row: 2 !important;
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  min-height: 66px !important;
  margin: 0 !important;
  padding: 12px 2px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 3px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--m-ink) !important;
  text-align: left !important;
  transform: none !important;
}
html.kb-mobile-v252 .works-slide-caption small{
  color: var(--m-brand-strong) !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .10em !important;
  text-transform: uppercase !important;
}
html.kb-mobile-v252 .works-slide-caption strong{
  max-width: 100% !important;
  color: var(--m-ink) !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  text-wrap: balance !important;
}
html.kb-mobile-v252 .works-v115-controls{
  width: 100% !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 48px 1fr 48px !important;
  gap: 8px !important;
  align-items: center !important;
}
html.kb-mobile-v252 .works-v115-nav{
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 15px !important;
  background: rgba(255,255,255,.54) !important;
  color: var(--m-plum) !important;
  box-shadow: none !important;
}
html.kb-mobile-v252 .works-v115-nav svg{ width: 18px !important; height: 18px !important; }
html.kb-mobile-v252 .works-carousel-status{
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  color: #6f6065 !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: .06em !important;
}
html.kb-mobile-v252 .works-carousel-dots{ display: none !important; }

/* ----------------------------------------------------------------------
   Reviews — solid hierarchy, one readable review per swipe
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 #reviews{
  padding: 58px 0 62px !important;
  background: rgba(255,255,255,.18) !important;
  overflow: hidden !important;
}
html.kb-mobile-v252 #reviews .container{ margin-inline: var(--m-pad) !important; }
html.kb-mobile-v252 .reviews-heading-row{
  width: 100% !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  align-items: start !important;
}
html.kb-mobile-v252 .reviews-title, html.kb-mobile-v252 .reviews-title > div{ margin: 0 !important; padding: 0 !important; transform: none !important; }
html.kb-mobile-v252 .reviews-summary{
  width: 100% !important;
  margin: 0 !important;
  padding: 14px !important;
  display: grid !important;
  grid-template-columns: 1.05fr 1fr 1fr !important;
  gap: 8px !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 19px !important;
  background: rgba(255,252,249,.70) !important;
  box-shadow: none !important;
}
html.kb-mobile-v252 .review-stat{
  min-width: 0 !important;
  min-height: 54px !important;
  padding: 8px 7px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 2px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: #f5ecea !important;
  color: #736269 !important;
  font-size: 9px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  text-align: left !important;
}
html.kb-mobile-v252 .review-stat:first-child{
  background: var(--m-plum) !important;
  color: rgba(255,255,255,.72) !important;
}
html.kb-mobile-v252 .review-stat:first-child::first-line{ color: #fff !important; }
html.kb-mobile-v252 .review-stat:nth-child(4){
  grid-column: 1 / -1 !important;
  min-height: 42px !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-inline: 12px !important;
  color: var(--m-plum) !important;
  background: #ead9de !important;
}

html.kb-mobile-v252 .reviews-marquee-shell{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  mask-image: none !important;
  -webkit-mask-image: none !important;
}
html.kb-mobile-v252 .reviews-marquee-track{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  transform: none !important;
  animation: none !important;
}
html.kb-mobile-v252 .reviews-marquee-set{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  gap: 10px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-x: contain !important;
  touch-action: pan-x pinch-zoom !important;
  scrollbar-width: none !important;
}
html.kb-mobile-v252 .reviews-marquee-set::-webkit-scrollbar{ display: none !important; }
html.kb-mobile-v252 .reviews-marquee-set:nth-child(n/**/+2){ display: none !important; }
html.kb-mobile-v252 .review-marquee-card{
  flex: 0 0 100% !important;
  width: 100% !important;
  min-width: 100% !important;
  min-height: 198px !important;
  margin: 0 !important;
  padding: 17px !important;
  display: flex !important;
  flex-direction: column !important;
  scroll-snap-align: start !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 21px !important;
  background: var(--m-surface) !important;
  color: var(--m-ink) !important;
  box-shadow: var(--m-shadow-soft) !important;
  transform: none !important;
}
html.kb-mobile-v252 .review-card-top{
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin: 0 0 14px !important;
}
html.kb-mobile-v252 .stars{ color: #a66074 !important; font-size: 14px !important; line-height: 1 !important; letter-spacing: .08em !important; }
html.kb-mobile-v252 .review-go{
  width: 32px !important;
  height: 32px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 10px !important;
  background: #f2e7e6 !important;
  color: var(--m-plum) !important;
  font-size: 15px !important;
}
html.kb-mobile-v252 .review-marquee-card > p{
  margin: 0 0 18px !important;
  color: #4d4045 !important;
  font-size: 14px !important;
  line-height: 1.58 !important;
  font-weight: 500 !important;
}
html.kb-mobile-v252 .review-author{
  margin-top: auto !important;
  padding-top: 12px !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 10px !important;
  border-top: 1px solid rgba(74,47,57,.09) !important;
}
html.kb-mobile-v252 .review-author b{ color: var(--m-plum) !important; font-size: 12px !important; font-weight: 800 !important; }
html.kb-mobile-v252 .review-author span{ color: #89787e !important; font-size: 10px !important; font-weight: 650 !important; }
html.kb-mobile-v252 .reviews-footer{
  width: 100% !important;
  margin: 12px 0 0 !important;
  padding: 0 !important;
}
html.kb-mobile-v252 .btn-yandex-reviews{
  width: 100% !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 15px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  border: 0 !important;
  border-radius: 15px !important;
  background: var(--m-plum) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 .yandex-brand-icon{ width: 20px !important; height: 20px !important; flex: 0 0 20px !important; }

/* ----------------------------------------------------------------------
   Contacts — title -> map -> information -> actions
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 #contacts.contact-as-footer{
  padding: 58px 0 calc(32px + env(safe-area-inset-bottom, 0px)) !important;
  background: transparent !important;
}
html.kb-mobile-v252 #contacts .contact-wide{
  width: auto !important;
  max-width: none !important;
  margin: 0 var(--m-pad) !important;
  padding: 0 !important;
}
html.kb-mobile-v252 #contacts .contact-shell, html.kb-mobile-v252 #contacts .contact-shell-v218{
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  transform: none !important;
}
html.kb-mobile-v252 #contacts .contact-copy{
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  transform: none !important;
}
html.kb-mobile-v252 #contacts .contact-copy > h2{
  order: 1 !important;
  margin: 0 0 18px !important;
}
html.kb-mobile-v252 #contacts .map-wrap{
  order: 2 !important;
  position: relative !important;
  width: 100% !important;
  height: 216px !important;
  min-height: 216px !important;
  max-height: 216px !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  border: 1px solid rgba(74,47,57,.10) !important;
  border-radius: 22px !important;
  background:
    radial-gradient(circle at 56% 45%, rgba(164,95,117,.17) 0 7px, transparent 8px),
    linear-gradient(135deg, #e6ddd8 0%, #f3ede8 52%, #dce5d4 100%) !important;
  box-shadow: var(--m-shadow-soft) !important;
  overflow: hidden !important;
  transform: none !important;
}
html.kb-mobile-v252 #contacts .map-wrap::before{
  content: "Карта студии" !important;
  position: absolute !important;
  z-index: 0 !important;
  left: 14px !important;
  bottom: 13px !important;
  min-height: 32px !important;
  padding: 0 11px !important;
  display: flex !important;
  align-items: center !important;
  border-radius: 10px !important;
  color: #5d4a51 !important;
  background: rgba(255,250,248,.84) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 #contacts .map-wrap iframe{
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  transition: opacity .18s ease !important;
  background: transparent !important;
}
html.kb-mobile-v252 #contacts .map-wrap.kbm-map-loaded iframe{ opacity: 1 !important; }
html.kb-mobile-v252 #contacts .contact-list{
  order: 3 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  display: grid !important;
  gap: 0 !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 20px !important;
  background: rgba(255,252,249,.70) !important;
  overflow: hidden !important;
}
html.kb-mobile-v252 #contacts .contact-row{
  width: auto !important;
  min-height: 57px !important;
  margin: 0 13px !important;
  padding: 10px 0 !important;
  display: grid !important;
  grid-template-columns: 84px minmax(0,1fr) !important;
  gap: 12px !important;
  align-items: center !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(74,47,57,.08) !important;
  background: transparent !important;
}
html.kb-mobile-v252 #contacts .contact-row:last-child{ border-bottom: 0 !important; }
html.kb-mobile-v252 #contacts .contact-row > span{
  color: #907b82 !important;
  font-size: 9px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
html.kb-mobile-v252 #contacts .contact-row > b, html.kb-mobile-v252 #contacts .contact-row > b a, html.kb-mobile-v252 #contacts .contact-hours{
  min-width: 0 !important;
  color: #3e3035 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  font-weight: 750 !important;
  text-align: left !important;
  overflow-wrap: break-word !important;
}
html.kb-mobile-v252 #contacts .contact-actions{
  order: 4 !important;
  width: 100% !important;
  margin: 12px 0 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
}
html.kb-mobile-v252 #contacts .contact-actions .btn{
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  height: 48px !important;
  padding: 0 10px !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  transform: none !important;
}
html.kb-mobile-v252 #contacts .contact-actions .btn:first-child{
  grid-column: 1 / -1 !important;
  min-height: 52px !important;
  height: 52px !important;
  color: #fff !important;
  background: var(--m-brand-strong) !important;
  border: 0 !important;
}
html.kb-mobile-v252 #contacts .contact-actions .btn-light{
  color: var(--m-plum) !important;
  background: rgba(255,255,255,.58) !important;
  border: 1px solid var(--m-line) !important;
}
html.kb-mobile-v252 #contacts .contact-actions .btn-dark{
  color: #fff !important;
  background: var(--m-plum) !important;
  border: 0 !important;
}
html.kb-mobile-v252 #contacts .contact-copyright{
  order: 5 !important;
  margin: 21px 0 0 !important;
  padding: 0 !important;
  color: #9a858c !important;
  font-size: 9px !important;
  line-height: 1.4 !important;
  letter-spacing: .08em !important;
  text-align: center !important;
  text-transform: uppercase !important;
}

/* ----------------------------------------------------------------------
   Booking modal — solid, stable, thumb-friendly; closed means not rendered
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 #bookingModal.modal, html.kb-mobile-v252 .modal#bookingModal{
  display: none !important;
  position: fixed !important;
  z-index: 220 !important;
  inset: 0 !important;
  width: 100% !important;
  height: var(--kb-vh, 100dvh) !important;
  padding: 0 !important;
  margin: 0 !important;
  align-items: flex-end !important;
  justify-content: stretch !important;
  background: transparent !important;
  opacity: 1 !important;
  visibility: visible !important;
}
html.kb-mobile-v252 #bookingModal.modal.open{
  display: flex !important;
}
html.kb-mobile-v252 #bookingModal .modal-backdrop{
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  background: rgba(31,21,25,.48) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html.kb-mobile-v252 #bookingModal .modal-panel{
  position: relative !important;
  z-index: 2 !important;
  width: calc(100% - 12px) !important;
  max-width: none !important;
  height: min(calc(var(--kb-vh, 100dvh) - 18px), 760px) !important;
  max-height: calc(var(--kb-vh, 100dvh) - 18px) !important;
  margin: 0 6px 6px !important;
  padding: 0 14px calc(12px + env(safe-area-inset-bottom,0px)) !important;
  display: block !important;
  border: 1px solid rgba(255,255,255,.52) !important;
  border-radius: 25px !important;
  background: #fbf7f5 !important;
  box-shadow: 0 30px 90px rgba(31,21,25,.32) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch !important;
  transform: none !important;
}
html.kb-mobile-v252 #bookingModal .modal-head{
  position: sticky !important;
  z-index: 6 !important;
  top: 0 !important;
  min-height: 67px !important;
  margin: 0 -14px !important;
  padding: 12px 14px 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  border-bottom: 1px solid rgba(74,47,57,.08) !important;
  background: #fbf7f5 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html.kb-mobile-v252 #bookingModal .booking-head-copy h3{
  margin: 0 !important;
  color: var(--m-ink) !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 #bookingModal .booking-kicker{
  display: inline-block !important;
  margin-top: 2px !important;
  color: #9a838b !important;
  font-size: 9px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
}
html.kb-mobile-v252 #bookingModal .modal-close{
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 14px !important;
  background: #f2e9e7 !important;
  color: var(--m-plum) !important;
  font-size: 24px !important;
  line-height: 1 !important;
}
html.kb-mobile-v252 #bookingModal .steps, html.kb-mobile-v252 #bookingModal .step-labels{
  display: none !important;
}
html.kb-mobile-v252 #bookingModal .booking-form{
  width: 100% !important;
  margin: 0 !important;
  padding: 15px 0 86px !important;
}
html.kb-mobile-v252 #bookingModal .booking-step{
  display: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
html.kb-mobile-v252 #bookingModal .booking-step.active{ display: block !important; }
html.kb-mobile-v252 #bookingModal .booking-step-intro{
  margin: 0 0 14px !important;
  padding: 0 !important;
}
html.kb-mobile-v252 #bookingModal .step-title{
  color: var(--m-ink) !important;
  font-size: 20px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 #bookingModal .booking-step-intro p, html.kb-mobile-v252 #bookingModal .booking-selection-status{
  margin: 5px 0 0 !important;
  color: #85737a !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
}
html.kb-mobile-v252 #bookingModal .booking-category{
  margin: 0 0 10px !important;
  padding: 12px !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 18px !important;
  background: #fffaf8 !important;
  box-shadow: none !important;
}
html.kb-mobile-v252 #bookingModal .booking-category-head{
  margin: 0 0 10px !important;
  display: grid !important;
  grid-template-columns: 28px 1fr !important;
  gap: 9px !important;
  align-items: start !important;
}
html.kb-mobile-v252 #bookingModal .booking-category-index{
  width: 28px !important;
  height: 28px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 9px !important;
  background: #f0e3e6 !important;
  color: var(--m-brand-strong) !important;
  font-size: 9px !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 #bookingModal .booking-category-head strong{ color: var(--m-ink) !important; font-size: 13px !important; line-height: 1.25 !important; }
html.kb-mobile-v252 #bookingModal .booking-category-head small{ display: block !important; margin-top: 2px !important; color: #927e85 !important; font-size: 9px !important; line-height: 1.35 !important; }
html.kb-mobile-v252 #bookingModal .service-options{ display: grid !important; gap: 6px !important; }
html.kb-mobile-v252 #bookingModal .service-choice-label{
  min-height: 52px !important;
  padding: 9px 10px !important;
  border: 1px solid rgba(74,47,57,.10) !important;
  border-radius: 13px !important;
  background: #f7efed !important;
}
html.kb-mobile-v252 #bookingModal .date-chip, html.kb-mobile-v252 #bookingModal .time-chip{
  min-height: 46px !important;
  border-radius: 13px !important;
}
html.kb-mobile-v252 #bookingModal .field{
  min-height: 50px !important;
  padding: 0 13px !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 13px !important;
  background: #fff !important;
  color: var(--m-ink) !important;
  font-size: 16px !important;
  box-shadow: none !important;
}
html.kb-mobile-v252 #bookingModal textarea.field{ min-height: 96px !important; padding-top: 12px !important; resize: vertical !important; }
html.kb-mobile-v252 #bookingModal .booking-nav{
  position: sticky !important;
  z-index: 7 !important;
  bottom: 0 !important;
  min-height: 68px !important;
  margin: 20px -14px -86px !important;
  padding: 9px 14px calc(9px + env(safe-area-inset-bottom,0px)) !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 8px !important;
  border-top: 1px solid rgba(74,47,57,.08) !important;
  background: #fbf7f5 !important;
}
html.kb-mobile-v252 #bookingModal .booking-nav .right{ display: flex !important; gap: 8px !important; margin-left: auto !important; }
html.kb-mobile-v252 #bookingModal .booking-nav .btn{
  min-height: 48px !important;
  height: 48px !important;
  padding: 0 15px !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 #bookingModal .booking-nav .btn-brand{ color: #fff !important; background: var(--m-brand-strong) !important; border: 0 !important; }
html.kb-mobile-v252 #bookingModal .booking-nav .btn-light{ color: var(--m-plum) !important; background: #f1e8e6 !important; border: 1px solid var(--m-line) !important; }

/* ----------------------------------------------------------------------
   Lightbox — true fullscreen viewer; no site header competing with image
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 .works-lightbox{
  display: none !important;
  position: fixed !important;
  z-index: 240 !important;
  inset: 0 !important;
  width: 100% !important;
  height: var(--kb-vh, 100dvh) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #171114 !important;
  overflow: hidden !important;
}
html.kb-mobile-v252 .works-lightbox.open{ display: block !important; }
html.kb-mobile-v252 body.works-lightbox-open .topbar{ display: none !important; }
html.kb-mobile-v252 .works-lightbox-backdrop{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  background: #171114 !important;
}
html.kb-mobile-v252 .works-lightbox-panel{
  position: absolute !important;
  z-index: 2 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: calc(58px + env(safe-area-inset-top,0px)) 12px calc(76px + env(safe-area-inset-bottom,0px)) !important;
  display: grid !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
html.kb-mobile-v252 .works-lightbox-panel > img{
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: calc(var(--kb-vh,100dvh) - 155px) !important;
  object-fit: contain !important;
  border-radius: 17px !important;
  background: #261d21 !important;
  box-shadow: 0 18px 60px rgba(0,0,0,.30) !important;
}
html.kb-mobile-v252 .works-lightbox-close{
  position: fixed !important;
  z-index: 5 !important;
  top: calc(10px + env(safe-area-inset-top,0px)) !important;
  right: 10px !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 14px !important;
  background: #2d2227 !important;
  color: #fff !important;
  font-size: 26px !important;
}
html.kb-mobile-v252 .works-lightbox-meta{
  position: fixed !important;
  z-index: 4 !important;
  left: 12px !important;
  right: 12px !important;
  bottom: calc(10px + env(safe-area-inset-bottom,0px)) !important;
  width: auto !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 9px 66px 9px 12px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 2px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 15px !important;
  background: #2a2024 !important;
  color: #fff !important;
}
html.kb-mobile-v252 .works-lightbox-meta span{ color: rgba(255,255,255,.50) !important; font-size: 9px !important; line-height: 1.2 !important; font-weight: 800 !important; letter-spacing: .10em !important; }
html.kb-mobile-v252 .works-lightbox-meta strong{ color: #fff !important; font-size: 11px !important; line-height: 1.3 !important; font-weight: 700 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
html.kb-mobile-v252 .works-lightbox-nav{
  position: fixed !important;
  z-index: 5 !important;
  bottom: calc(13px + env(safe-area-inset-bottom,0px)) !important;
  top: auto !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 13px !important;
  background: #3b2b32 !important;
  color: #fff !important;
  transform: none !important;
  box-shadow: none !important;
}
html.kb-mobile-v252 .works-lightbox-prev{ left: auto !important; right: 62px !important; }
html.kb-mobile-v252 .works-lightbox-next{ right: 14px !important; }
html.kb-mobile-v252 .works-lightbox-nav-icon, html.kb-mobile-v252 .works-lightbox-nav-icon svg{ width: 20px !important; height: 20px !important; }

/* ----------------------------------------------------------------------
   /works/ — editorial one-column portfolio, no blank placeholder state
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 body:has(.portfolio-page){
  background: linear-gradient(180deg, #f5edeb 0%, #f1e6e4 100%) !important;
}
html.kb-mobile-v252 .portfolio-page{
  width: 100% !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: calc(88px + env(safe-area-inset-top,0px)) 0 56px !important;
}
html.kb-mobile-v252 .portfolio-page > .container{
  margin-inline: var(--m-pad) !important;
}
html.kb-mobile-v252 .portfolio-hero{
  width: 100% !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  min-height: 0 !important;
  border: 0 !important;
}
html.kb-mobile-v252 .portfolio-eyebrow{
  display: block !important;
  margin: 0 0 8px !important;
  color: var(--m-brand-strong) !important;
  font-size: 9px !important;
  line-height: 1.3 !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}
html.kb-mobile-v252 .portfolio-hero-copy, html.kb-mobile-v252 .portfolio-hero-side{ width: 100% !important; margin: 0 !important; padding: 0 !important; }
html.kb-mobile-v252 .portfolio-hero-side{
  display: grid !important;
  gap: 10px !important;
}
html.kb-mobile-v252 .portfolio-hero-side p{
  max-width: 34em !important;
  margin: 0 !important;
  color: #6f5f65 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}
html.kb-mobile-v252 .portfolio-back{
  width: max-content !important;
  min-height: 42px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 13px !important;
  background: rgba(255,255,255,.52) !important;
  color: var(--m-plum) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
}
html.kb-mobile-v252 .portfolio-gallery{ width: 100% !important; margin: 0 !important; padding: 0 !important; }
html.kb-mobile-v252 .portfolio-masonry{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
  column-count: auto !important;
}
html.kb-mobile-v252 .portfolio-card{
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-rows: auto auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  break-inside: auto !important;
  transform: none !important;
  text-align: left !important;
}
html.kb-mobile-v252 .portfolio-card > img{
  grid-row: 1 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: center !important;
  border: 1px solid rgba(74,47,57,.10) !important;
  border-radius: 23px !important;
  background: #e8d7d2 !important;
  box-shadow: var(--m-shadow-soft) !important;
  opacity: 1 !important;
  filter: none !important;
}
html.kb-mobile-v252 .portfolio-card-meta{
  grid-row: 2 !important;
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  min-height: 62px !important;
  margin: 0 !important;
  padding: 10px 2px 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 10px !important;
  color: var(--m-ink) !important;
  background: transparent !important;
  transform: none !important;
}
html.kb-mobile-v252 .portfolio-card-meta small{
  display: block !important;
  margin-bottom: 2px !important;
  color: var(--m-brand-strong) !important;
  font-size: 9px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .10em !important;
  text-transform: uppercase !important;
}
html.kb-mobile-v252 .portfolio-card-meta strong{
  color: var(--m-ink) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
}
html.kb-mobile-v252 .portfolio-card-open{
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 11px !important;
  background: rgba(255,255,255,.58) !important;
  color: var(--m-plum) !important;
}
html.kb-mobile-v252 .portfolio-card-open svg{ width: 17px !important; height: 17px !important; }
html.kb-mobile-v252 .portfolio-page + #contacts, html.kb-mobile-v252 .portfolio-page ~ #contacts{ margin-top: 0 !important; }

/* ----------------------------------------------------------------------
   Tiny phones / landscape bridge
   ---------------------------------------------------------------------- */
@media (max-width: 350px) {
  html.kb-mobile-v252{ --m-pad: 12px; }
  html.kb-mobile-v252 .topbar{ left: 7px !important; right: 7px !important; inset-inline: 7px !important; }
  html.kb-mobile-v252 .topbar .logo{ max-width: 105px !important; }
  html.kb-mobile-v252 .topbar .nav > .btn, html.kb-mobile-v252 .topbar .nav > a.btn{ padding-inline: 10px !important; font-size: 10px !important; }
  html.kb-mobile-v252 .hero-brand-main{ font-size: 33px !important; }
  html.kb-mobile-v252 .hero-actions{ grid-template-columns: 1fr !important; }
  html.kb-mobile-v252 .hero-facts{ grid-template-columns: 1fr 1fr !important; }
  html.kb-mobile-v252 .hero-fact:last-child{ grid-column: 1 / -1 !important; }
  html.kb-mobile-v252 .works-v105-head{ grid-template-columns: 1fr !important; align-items: start !important; }
  html.kb-mobile-v252 .works-v105-all{ width: max-content !important; }
  html.kb-mobile-v252 .reviews-summary{ grid-template-columns: 1fr 1fr !important; }
  html.kb-mobile-v252 .review-stat:first-child{ grid-column: 1 / -1 !important; }
  html.kb-mobile-v252 #contacts .contact-row{ grid-template-columns: 76px minmax(0,1fr) !important; }
}

@media (min-width: 600px) and (max-width: 1279px) {
  html.kb-mobile-v252{ --m-pad: 24px; }
  html.kb-mobile-v252 .hero-photo-wrap{ aspect-ratio: 16 / 11 !important; max-height: 520px !important; }
  html.kb-mobile-v252 .hero-photo{ object-position: center 28% !important; }
  html.kb-mobile-v252 #services .container{ margin-inline: 24px !important; }
  html.kb-mobile-v252 .portfolio-masonry{ grid-template-columns: 1fr 1fr !important; gap: 18px 14px !important; }
  html.kb-mobile-v252 .portfolio-card > img{ aspect-ratio: 4 / 5 !important; }
}

/* desktop editor phone-preview: keep the phone canvas behavior */
html.kb-mobile-v252.kb-editor-phone-preview-v252{
  min-width: 980px !important;
  background: #34272c !important;
}
html.kb-mobile-v252.kb-editor-phone-preview-v252 body{
  width: var(--kb-phone-preview-w,390px) !important;
  min-width: var(--kb-phone-preview-w,390px) !important;
  max-width: var(--kb-phone-preview-w,390px) !important;
  margin: 0 0 0 18px !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 28px 90px rgba(0,0,0,.30) !important;
}
html.kb-mobile-v252.kb-editor-phone-preview-v252 .topbar{
  left: 28px !important;
  right: auto !important;
  width: calc(var(--kb-phone-preview-w,390px) - 20px) !important;
}

/* ======================================================================
   V252 FINAL AUTHORITY — neutralise desktop editor exports on phones
   ====================================================================== */
html.kb-mobile-v252 section#reviews, html.kb-mobile-v252 section#contacts{
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero"][data-kb-edit-id]{
  padding-top: calc(82px + env(safe-area-inset-top, 0px)) !important;
  padding-bottom: 34px !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-grid"][data-kb-edit-id]{
  gap: 18px !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-story"][data-kb-edit-id]{
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="auto-p-007"][data-kb-edit-id]{
  margin: 0 !important;
  color: #5f5055 !important;
  font-size: 14px !important;
  line-height: 1.58 !important;
  font-weight: 500 !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #top .hero-story:not(.kbm-story-open) [data-kb-edit-id="auto-p-007"]{
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 4 !important;
  overflow: hidden !important;
}
html.kb-mobile-v252 .kbm-story-more{
  min-height: 38px !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--m-brand-strong) !important;
  font: 800 11px/1 "Manrope", system-ui, sans-serif !important;
  letter-spacing: .02em !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 4px !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-actions"][data-kb-edit-id]{
  margin-top: 12px !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-facts"][data-kb-edit-id]{
  padding-top: 0 !important;
  margin-top: 14px !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-photo-wrap"][data-kb-edit-id]{
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 5 !important;
  margin: 0 !important;
  border-radius: 24px !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-photo"][data-kb-edit-id]{
  width: 100% !important;
  height: 100% !important;
  object-position: center 24% !important;
}

/* clean editorial headings: no legacy boxed heading component */
html.kb-mobile-v252 #works .section-display, html.kb-mobile-v252 #reviews .section-display, html.kb-mobile-v252 #contacts .section-display, html.kb-mobile-v252 .portfolio-hero h1, html.kb-mobile-v252 .works-v105-title-wrap .section-display, html.kb-mobile-v252 #reviews .reviews-title .section-display, html.kb-mobile-v252 #contacts .contact-copy h2.section-display{
  width: auto !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--m-ink) !important;
  font-size: clamp(35px, 9.7vw, 41px) !important;
  line-height: 1.04 !important;
  letter-spacing: -.045em !important;
}
html.kb-mobile-v252 .works-v105-title-wrap, html.kb-mobile-v252 #reviews .reviews-title{
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #works .works-v105-head, html.kb-mobile-v252 #reviews .reviews-heading-row{
  align-items: center !important;
}
html.kb-mobile-v252 #reviews .reviews-title{ transform: none !important; }

/* Header yields screen space while scrolling down, returns instantly on upward intent. */
html.kb-mobile-v252 .topbar{
  transition: transform .22s cubic-bezier(.2,.75,.2,1), opacity .18s ease !important;
}
html.kb-mobile-v252.kbm-header-hidden:not(.kbm-menu-open) .topbar{
  transform: translate3d(0, calc(-100% - 18px), 0) !important;
  opacity: .01 !important;
  pointer-events: none !important;
}

/* richer but calmer content scale */
html.kb-mobile-v252 #works{ padding-top: 54px !important; padding-bottom: 58px !important; }
html.kb-mobile-v252 #reviews{ padding-top: 54px !important; padding-bottom: 58px !important; }
html.kb-mobile-v252 #contacts.contact-as-footer{ padding-top: 54px !important; }
html.kb-mobile-v252 .works-v105-head{ margin-bottom: 18px !important; }
html.kb-mobile-v252 .works-v105-all{
  min-height: 40px !important;
  padding-inline: 11px !important;
  font-size: 10px !important;
  background: rgba(255,255,255,.62) !important;
}
html.kb-mobile-v252 .works-slide-caption{
  min-height: 58px !important;
  padding: 12px 2px 0 !important;
  background: transparent !important;
}
html.kb-mobile-v252 .works-slide-caption small{ font-size: 9px !important; letter-spacing: .09em !important; }
html.kb-mobile-v252 .works-slide-caption strong{ font-size: 13px !important; line-height: 1.35 !important; }

html.kb-mobile-v252 #contacts .contact-copy > h2{ margin-bottom: 16px !important; }
html.kb-mobile-v252 #contacts .map-wrap{
  height: 188px !important;
  min-height: 188px !important;
  max-height: 188px !important;
  border-radius: 20px !important;
  margin-bottom: 12px !important;
}
html.kb-mobile-v252 #contacts .contact-row{
  min-height: 54px !important;
  grid-template-columns: 78px minmax(0,1fr) !important;
}
html.kb-mobile-v252 #contacts .contact-row > span{ font-size: 9px !important; }
html.kb-mobile-v252 #contacts .contact-row > b, html.kb-mobile-v252 #contacts .contact-row > b a, html.kb-mobile-v252 #contacts .contact-hours{ font-size: 13px !important; }

/* the full works page never exposes a giant empty placeholder */
html.kb-mobile-v252 .portfolio-card > img{
  display: block !important;
  background: linear-gradient(135deg,#e5d5d1,#f3e9e6) !important;
}
html.kb-mobile-v252 .portfolio-card:not(:has(img[src])){ display: none !important; }

@media (max-width: 359px) {
  html.kb-mobile-v252 #works .section-display, html.kb-mobile-v252 #reviews .section-display, html.kb-mobile-v252 #contacts .section-display, html.kb-mobile-v252 .portfolio-hero h1{ font-size: 33px !important; }
}

/* V252 editor-export contact reset: desktop visual-editor values are intentionally desktop-only. */
html.kb-mobile-v252 #contacts[data-kb-edit-id="contacts"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 54px 0 calc(32px + env(safe-area-inset-bottom, 0px)) !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-wide"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-shell"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-copy"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-list"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-map"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  max-width: 100% !important;
  height: 188px !important;
  min-height: 188px !important;
  max-height: 188px !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-title"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-copyright"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-format-row"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-hours-row"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-phone-row"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-route"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-book"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-telegram"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-instagram"][data-kb-edit-id][data-kb-edit-id]{
  width: auto !important;
  height: auto !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-format-row"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-hours-row"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-phone-row"][data-kb-edit-id][data-kb-edit-id]{
  width: auto !important;
  min-height: 54px !important;
}
html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-list"][data-kb-edit-id][data-kb-edit-id]{
  overflow: hidden !important;
}

/* Home gallery must own its natural height on mobile (desktop uses absolute clipping). */
html.kb-mobile-v252 .works-slide-clip{
  position: relative !important;
  inset: auto !important;
  z-index: auto !important;
  height: auto !important;
  min-height: 0 !important;
  pointer-events: none !important;
}
html.kb-mobile-v252 .works-slide-media{
  position: relative !important;
  inset: auto !important;
}
html.kb-mobile-v252 .works-slide{
  flex: 0 0 calc(100vw - (2 * var(--m-pad))) !important;
  width: calc(100vw - (2 * var(--m-pad))) !important;
  min-width: calc(100vw - (2 * var(--m-pad))) !important;
  max-width: calc(100vw - (2 * var(--m-pad))) !important;
}
html.kb-mobile-v252.kb-editor-phone-preview-v252 .works-slide{
  flex-basis: calc(var(--kb-phone-preview-w, 390px) - (2 * var(--m-pad))) !important;
  width: calc(var(--kb-phone-preview-w, 390px) - (2 * var(--m-pad))) !important;
  min-width: calc(var(--kb-phone-preview-w, 390px) - (2 * var(--m-pad))) !important;
  max-width: calc(var(--kb-phone-preview-w, 390px) - (2 * var(--m-pad))) !important;
}
/* final geometry correction */
html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-wide"][data-kb-edit-id][data-kb-edit-id]{
  width: auto !important;
  max-width: none !important;
  margin-left: var(--m-pad) !important;
  margin-right: var(--m-pad) !important;
}
html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-shell"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-copy"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-list"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  max-width: 100% !important;
}
html.kb-mobile-v252 .works-slide-media::before, html.kb-mobile-v252 .works-slide-media::after{
  display: none !important;
  content: none !important;
  background: none !important;
  opacity: 0 !important;
}
html.kb-mobile-v252 .works-slide-media > img:not(.works-slide-blur){
  position: relative !important;
  z-index: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
html.kb-mobile-v252 .works-v105-actions [data-kb-edit-id="home-works-v105-all-works-v117-all-202"][data-kb-edit-id]{
  width: auto !important;
  min-width: 96px !important;
  max-width: none !important;
  padding: 0 10px !important;
  justify-content: center !important;
}
html.kb-mobile-v252 #contacts .contact-actions .btn:last-child{
  grid-column: 1 / -1 !important;
  width: 100% !important;
}
/* lightbox final geometry: defeat desktop centering transforms/max sizes */
html.kb-mobile-v252 .works-lightbox.open .works-lightbox-panel{
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  inset: 0 !important;
  transform: none !important;
}
html.kb-mobile-v252 .works-lightbox.open .works-lightbox-meta{
  left: 12px !important;
  right: 118px !important;
  width: auto !important;
  max-width: none !important;
  transform: none !important;
  translate: none !important;
}
html.kb-mobile-v252 .works-lightbox.open > .works-lightbox-nav, html.kb-mobile-v252 .works-lightbox.open .works-lightbox-prev, html.kb-mobile-v252 .works-lightbox.open .works-lightbox-next{
  top: auto !important;
  transform: none !important;
  translate: none !important;
}
html.kb-mobile-v252 .works-lightbox.open .works-lightbox-prev{ left: auto !important; right: 62px !important; }
html.kb-mobile-v252 .works-lightbox.open .works-lightbox-next{ left: auto !important; right: 14px !important; }
html.kb-mobile-v252 .works-lightbox, html.kb-mobile-v252 .works-lightbox *{ outline-color: transparent !important; }
/* /works final: remove every desktop editorial transform/overlay from phone */
html.kb-mobile-v252 .portfolio-page[data-we-id="page"]{
  padding-top: calc(88px + env(safe-area-inset-top,0px)) !important;
  padding-bottom: 56px !important;
}
html.kb-mobile-v252 .portfolio-hero[data-we-id="hero"]{
  padding: 0 !important;
  gap: 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
html.kb-mobile-v252 .portfolio-hero::before, html.kb-mobile-v252 .portfolio-hero::after{
  display: none !important;
  content: none !important;
}
html.kb-mobile-v252 .portfolio-eyebrow[data-we-id="eyebrow"]{
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 .portfolio-hero [data-we-id="title"]{
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(35px,9.7vw,41px) !important;
  line-height: 1.04 !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 .portfolio-hero [data-we-id="intro"]{
  width: 100% !important;
  max-width: 34em !important;
  height: auto !important;
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 .portfolio-hero [data-we-id="back"]{
  width: max-content !important;
  height: 42px !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 .portfolio-gallery[data-we-id="gallery"]{
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
html.kb-mobile-v252 .portfolio-masonry[data-we-id="gallery-grid"]{
  column-count: auto !important;
  column-gap: 0 !important;
}
html.kb-mobile-v252 .portfolio-card::after{
  display: none !important;
  content: none !important;
}
html.kb-mobile-v252 .portfolio-card-meta > span{
  max-width: calc(100% - 48px) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
html.kb-mobile-v252 .portfolio-card-open{
  position: static !important;
  inset: auto !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 11px !important;
  box-shadow: none !important;
}

/* ======================================================================
   V252 FINAL POLISH — real-phone rhythm / readability pass
   ====================================================================== */
html.kb-mobile-v252{
  --m-pad: clamp(15px, 4.2vw, 18px);
}

/* hero: concise copy, stable hierarchy, no ellipsis */
html.kb-mobile-v252 #top [data-kb-edit-id="hero"][data-kb-edit-id]{
  padding-top: calc(78px + env(safe-area-inset-top, 0px)) !important;
  padding-bottom: 30px !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-grid"][data-kb-edit-id]{ gap: 16px !important; }

html.kb-mobile-v252 .hero-brand-wrap{ margin-bottom: 14px !important; }
html.kb-mobile-v252 .hero-brand-main{
  font-size: clamp(34px, 10.1vw, 40px) !important;
  line-height: .96 !important;
}
html.kb-mobile-v252 .hero-brand-sub{ width: min(190px, 58vw) !important; gap: 6px !important; }
html.kb-mobile-v252 #top [data-kb-edit-id="auto-p-007"][data-kb-edit-id]{
  display: block !important;
  margin: 0 !important;
  color: #5b4b51 !important;
  font-size: 14px !important;
  line-height: 1.53 !important;
  font-weight: 520 !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: initial !important;
}
html.kb-mobile-v252 #top .hero-story:not(.kbm-story-open) [data-kb-edit-id="auto-p-007"]{
  display: block !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
}
html.kb-mobile-v252 .kbm-story-more{ display: none !important; }
html.kb-mobile-v252 #top [data-kb-edit-id="hero-actions"][data-kb-edit-id]{ margin-top: 13px !important; }
html.kb-mobile-v252 .hero-actions .btn{
  height: 48px !important;
  min-height: 48px !important;
  border-radius: 14px !important;
  font-size: 11.5px !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-facts"][data-kb-edit-id]{ margin-top: 12px !important; }
html.kb-mobile-v252 .hero-fact{
  min-height: 64px !important;
  padding: 9px 8px !important;
  border-radius: 14px !important;
}
html.kb-mobile-v252 .hero-fact b{ font-size: 12.5px !important; }
html.kb-mobile-v252 .hero-fact span{ font-size: 9.5px !important; line-height: 1.28 !important; }
html.kb-mobile-v252 #top [data-kb-edit-id="hero-photo-wrap"][data-kb-edit-id]{
  aspect-ratio: 4 / 4.82 !important;
  border-radius: 24px !important;
}

/* services: readable, compact, no desktop-sized headline / redundant DIKIDI promo */
html.kb-mobile-v252 #services.section-services-price{
  padding: 40px 0 42px !important;
  background: linear-gradient(180deg, transparent 0 3%, rgba(66,45,53,.035) 3% 97%, transparent 97%) !important;
}
html.kb-mobile-v252 #services .container{ margin-inline: 10px !important; }
html.kb-mobile-v252 .services-price-shell{ border-radius: 26px !important; }
html.kb-mobile-v252 .sp-head{ padding: 22px 18px 15px !important; }
html.kb-mobile-v252 .sp-title{
  font-size: clamp(34px, 9.8vw, 38px) !important;
  line-height: 1.03 !important;
}
html.kb-mobile-v252 .sp-head-side{ margin-top: 8px !important; }
html.kb-mobile-v252 .sp-head-side p{
  max-width: 28em !important;
  font-size: 11.5px !important;
  line-height: 1.48 !important;
}
html.kb-mobile-v252 .sp-body{ padding: 0 8px 9px !important; }
html.kb-mobile-v252 .sp-group{ margin-bottom: 6px !important; border-radius: 18px !important; }
html.kb-mobile-v252 .sp-group-head{
  min-height: 64px !important;
  padding: 11px 43px 11px 13px !important;
  gap: 3px !important;
}
html.kb-mobile-v252 .sp-group-head::after{
  right: 12px !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 9px !important;
  font-size: 18px !important;
}
html.kb-mobile-v252 .sp-group-pill{ gap: 8px !important; font-size: 14px !important; }
html.kb-mobile-v252 .sp-group-icon{ width: 26px !important; height: 26px !important; flex-basis: 26px !important; }
html.kb-mobile-v252 .sp-group-icon svg{ width: 14px !important; height: 14px !important; }
html.kb-mobile-v252 .sp-group-head > p{
  margin-left: 34px !important;
  font-size: 10px !important;
  line-height: 1.32 !important;
}
html.kb-mobile-v252 .sp-service{
  margin: 0 9px !important;
  padding: 12px 2px 13px !important;
  grid-template-columns: 26px minmax(0,1fr) auto !important;
  gap: 6px 8px !important;
}
html.kb-mobile-v252 .sp-service-divider-v101{ margin-left: 43px !important; }
html.kb-mobile-v252 .sp-main h3{ font-size: 13.5px !important; line-height: 1.32 !important; }
html.kb-mobile-v252 .sp-main p{ display: none !important; }
html.kb-mobile-v252 .sp-note{ display: inline !important; font-size: 9.5px !important; }
html.kb-mobile-v252 .sp-time{ font-size: 10.5px !important; }
html.kb-mobile-v252 .sp-price{ font-size: 14px !important; }
html.kb-mobile-v252 .sp-book{
  height: 42px !important;
  min-height: 42px !important;
  margin-top: 2px !important;
  border-radius: 12px !important;
  font-size: 10.5px !important;
}
html.kb-mobile-v252 .sp-more{ display: none !important; }

/* section typography: editorial, but never overpowering the screen */
html.kb-mobile-v252 #works .section-display, html.kb-mobile-v252 #reviews .section-display, html.kb-mobile-v252 #contacts .section-display, html.kb-mobile-v252 .portfolio-hero h1, html.kb-mobile-v252 .works-v105-title-wrap .section-display, html.kb-mobile-v252 #reviews .reviews-title .section-display, html.kb-mobile-v252 #contacts .contact-copy h2.section-display{
  font-size: clamp(33px, 9.2vw, 38px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.043em !important;
}

/* works: remove the old desktop vertical translation and tighten the handoff to reviews */
html.kb-mobile-v252 #works[data-kb-edit-id="dom-works"], html.kb-mobile-v252 #works{
  translate: none !important;
  transform: none !important;
  padding-top: 42px !important;
  padding-bottom: 28px !important;
}
html.kb-mobile-v252 .works-v105-head{ margin-bottom: 15px !important; }
html.kb-mobile-v252 .works-v105-all{
  min-height: 39px !important;
  border-radius: 12px !important;
  font-size: 9.5px !important;
}
html.kb-mobile-v252 .works-slide-media{
  aspect-ratio: 1 / 1.12 !important;
  border-radius: 22px !important;
}
html.kb-mobile-v252 .works-slide-caption{
  min-height: 52px !important;
  padding: 10px 2px 0 !important;
}
html.kb-mobile-v252 .works-slide-caption small{ font-size: 8.5px !important; }
html.kb-mobile-v252 .works-slide-caption strong{ font-size: 13.5px !important; line-height: 1.3 !important; }
html.kb-mobile-v252 .works-v115-controls{
  margin-top: 7px !important;
  grid-template-columns: 44px 1fr 44px !important;
}
html.kb-mobile-v252 .works-v115-nav{
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  border-radius: 13px !important;
}

/* reviews: readable stats, tighter section transitions */
html.kb-mobile-v252 #reviews{
  padding-top: 38px !important;
  padding-bottom: 36px !important;
}
html.kb-mobile-v252 #reviews .reviews-heading-row, html.kb-mobile-v252 #reviews [data-kb-edit-id="home-reviews-heading-row-293"]{
  margin: 0 0 16px !important;
  padding: 0 !important;
  gap: 13px !important;
}
html.kb-mobile-v252 .reviews-summary, html.kb-mobile-v252 #reviews [data-kb-edit-id="home-reviews-summary-295"]{
  padding: 7px !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 6px !important;
  border-radius: 18px !important;
}
html.kb-mobile-v252 .review-stat, html.kb-mobile-v252 .review-stat:nth-child(4){
  grid-column: auto !important;
  min-height: 50px !important;
  padding: 8px 10px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 1px !important;
  border-radius: 12px !important;
  font-size: 10px !important;
  text-align: left !important;
}
html.kb-mobile-v252 .review-stat b{
  color: inherit !important;
  font-size: 13px !important;
  line-height: 1.15 !important;
  font-weight: 850 !important;
}
html.kb-mobile-v252 .review-stat span{
  color: inherit !important;
  opacity: .72 !important;
  font-size: 8.5px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}
html.kb-mobile-v252 .review-stat:nth-child(4){ background: #ead9de !important; color: var(--m-plum) !important; }
html.kb-mobile-v252 .review-marquee-card{
  min-height: 184px !important;
  padding: 16px !important;
  border-radius: 20px !important;
}
html.kb-mobile-v252 .review-card-top{ margin-bottom: 12px !important; }
html.kb-mobile-v252 .review-marquee-card > p{ margin-bottom: 15px !important; font-size: 13.5px !important; line-height: 1.54 !important; }
html.kb-mobile-v252 .reviews-marquee-shell, html.kb-mobile-v252 #reviews [data-kb-edit-id="home-reviews-marquee-shell-300"]{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
html.kb-mobile-v252 .reviews-footer{ margin-top: 10px !important; }

/* contacts: map is between title and details; details are easy to scan */
html.kb-mobile-v252 #contacts.contact-as-footer, html.kb-mobile-v252 #contacts[data-kb-edit-id="contacts"][data-kb-edit-id][data-kb-edit-id]{
  padding-top: 40px !important;
  padding-bottom: calc(30px + env(safe-area-inset-bottom, 0px)) !important;
}
html.kb-mobile-v252 #contacts .contact-copy > h2{ margin-bottom: 14px !important; }
html.kb-mobile-v252 #contacts .map-wrap, html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-map"][data-kb-edit-id][data-kb-edit-id]{
  height: 176px !important;
  min-height: 176px !important;
  max-height: 176px !important;
  margin-bottom: 10px !important;
  border-radius: 19px !important;
}
html.kb-mobile-v252 #contacts .contact-list{ border-radius: 18px !important; }
html.kb-mobile-v252 #contacts .contact-row, html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-format-row"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-hours-row"][data-kb-edit-id][data-kb-edit-id], html.kb-mobile-v252 #contacts [data-kb-edit-id="contact-phone-row"][data-kb-edit-id][data-kb-edit-id]{
  min-height: 51px !important;
  grid-template-columns: 76px minmax(0,1fr) !important;
  gap: 10px !important;
  padding: 9px 0 !important;
}
html.kb-mobile-v252 #contacts .contact-row > span{ font-size: 8.5px !important; }
html.kb-mobile-v252 #contacts .contact-row > b, html.kb-mobile-v252 #contacts .contact-row > b a, html.kb-mobile-v252 #contacts .contact-hours{ font-size: 12.5px !important; line-height: 1.35 !important; }
html.kb-mobile-v252 #contacts .contact-actions{ margin-top: 10px !important; gap: 7px !important; }
html.kb-mobile-v252 #contacts .contact-actions .btn{ height: 46px !important; min-height: 46px !important; border-radius: 13px !important; }
html.kb-mobile-v252 #contacts .contact-actions .btn:first-child{ height: 50px !important; min-height: 50px !important; }
html.kb-mobile-v252 #contacts .contact-copyright{ margin-top: 17px !important; font-size: 8.5px !important; }

/* lightbox controls: no glossy desktop leftovers */
html.kb-mobile-v252 .works-lightbox.open .works-lightbox-close, html.kb-mobile-v252 .works-lightbox.open .works-lightbox-prev, html.kb-mobile-v252 .works-lightbox.open .works-lightbox-next{
  border: 1px solid rgba(255,255,255,.15) !important;
  background: #2a2024 !important;
  color: #fff !important;
  box-shadow: none !important;
  filter: none !important;
}
html.kb-mobile-v252 .works-lightbox.open .works-lightbox-close{ border-radius: 13px !important; }
html.kb-mobile-v252 .works-lightbox.open .works-lightbox-meta{
  background: #2a2024 !important;
  border-color: rgba(255,255,255,.10) !important;
  box-shadow: none !important;
}

/* /works: slightly denser editorial grid while keeping one-column photos large */
html.kb-mobile-v252 .portfolio-page[data-we-id="page"]{
  padding-top: calc(80px + env(safe-area-inset-top,0px)) !important;
  padding-bottom: 48px !important;
}
html.kb-mobile-v252 .portfolio-hero[data-we-id="hero"]{ gap: 10px !important; }
html.kb-mobile-v252 .portfolio-hero [data-we-id="intro"]{ font-size: 12.5px !important; line-height: 1.5 !important; }
html.kb-mobile-v252 .portfolio-masonry[data-we-id="gallery-grid"]{ gap: 18px !important; }
html.kb-mobile-v252 .portfolio-card{ border-radius: 20px !important; }
html.kb-mobile-v252 .portfolio-card > img{ border-radius: 20px !important; }

@media (max-width: 350px) {
  
  
  html.kb-mobile-v252 .hero-brand-main{ font-size: 32px !important; }
  html.kb-mobile-v252 .hero-actions{ grid-template-columns: 1fr 1fr !important; }
  html.kb-mobile-v252 .hero-facts{ gap: 5px !important; }
  html.kb-mobile-v252 .hero-fact{ padding-inline: 6px !important; }
  html.kb-mobile-v252 #contacts .contact-row{ grid-template-columns: 70px minmax(0,1fr) !important; }
}
/* mobile-only text clones cannot be overwritten by the desktop visual editor runtime */
html.kb-mobile-v252 .hero-story > [data-kb-edit-id="auto-p-007"]{ display: none !important; }
html.kb-mobile-v252 .hero-story > .kbm-story-copy{
  display: block !important;
  margin: 0 !important;
  color: #5b4b51 !important;
  font-size: 14px !important;
  line-height: 1.53 !important;
  font-weight: 520 !important;
}
html.kb-mobile-v252 #services .sp-head-side > [data-kb-edit-id="home-p-073"]{ display: none !important; }
html.kb-mobile-v252 #services .sp-head-side > .kbm-service-lead{
  display: block !important;
  margin: 0 !important;
  max-width: 28em !important;
  color: rgba(255,248,246,.68) !important;
  font-size: 11.5px !important;
  line-height: 1.48 !important;
  font-weight: 500 !important;
}
/* strongest mobile-copy authority, after editor-export rules */
html.kb-mobile-v252 #top .hero-story > [data-kb-edit-id="auto-p-007"][data-kb-edit-id]{
  display: none !important;
}
html.kb-mobile-v252 #services .sp-head-side > [data-kb-edit-id="home-p-073"][data-kb-edit-id]{
  display: none !important;
}

/* V252 HARD MOBILE GEOMETRY — must outrank persisted desktop editor values */
html.kb-mobile-v252 #top [data-kb-edit-id="hero"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  padding: calc(78px + env(safe-area-inset-top,0px)) 0 30px !important;
  margin: 0 !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-grid"][data-kb-edit-id][data-kb-edit-id]{
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin-inline: var(--m-pad) !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-story"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 14px 15px !important;
  position: static !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 17px !important;
  background: rgba(255,252,249,.66) !important;
  box-shadow: none !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-actions"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-facts"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-photo-wrap"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 4.82 !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  translate: none !important;
  transform: none !important;
}
html.kb-mobile-v252 #top [data-kb-edit-id="hero-photo"][data-kb-edit-id][data-kb-edit-id]{
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center 24% !important;
  translate: none !important;
  transform: none !important;
}

/* ROOT-ID authority: outranks old editor-export selectors baked into style-v241.css */
html#kb-mobile-root-v252 main#top > section.hero{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  padding: calc(78px + env(safe-area-inset-top,0px)) 0 30px !important;
  margin: 0 !important;
}
html#kb-mobile-root-v252 main#top > section.hero > div.container.hero-grid{
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin-inline: var(--m-pad) !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-story{
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 14px 15px !important;
  position: static !important;
  border: 1px solid var(--m-line) !important;
  border-radius: 17px !important;
  background: rgba(255,252,249,.66) !important;
  box-shadow: none !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-actions{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-actions > *{
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-facts{
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-fact{
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-photo-wrap, html#kb-mobile-root-v252 main#top > section.hero .hero-photo-wrap.reveal{
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 4.82 !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 24px !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-photo-shell{
  width: 100% !important;
  height: 100% !important;
  border-radius: 24px !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-photo{
  width: 100% !important;
  height: 100% !important;
  object-position: center 24% !important;
}

html#kb-mobile-root-v252 section#services > div.container > div.services-price-shell.reveal > div.sp-head:nth-of-type(1){
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 22px 18px 15px !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#services .sp-head-side, html#kb-mobile-root-v252 section#services .sp-head-side > p{
  width: auto !important;
  max-width: none !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#services .sp-group-head > p, html#kb-mobile-root-v252 section#services .sp-time{
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#services .sp-group-head > p{
  padding: 0 !important;
  margin-left: 34px !important;
}
html#kb-mobile-root-v252 section#services .sp-time{ margin-top: 0 !important; }

html#kb-mobile-root-v252 section#works{ translate: none !important; transform: none !important; }
html#kb-mobile-root-v252 section#reviews .reviews-marquee-shell{
  border-radius: 0 !important;
  translate: none !important;
  transform: none !important;
}

/* Last baked-editor escapes: works CTA, review stats, contacts geometry */
html#kb-mobile-root-v252 section#works .works-v105-actions{
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  display: flex !important;
  justify-content: flex-end !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#works .works-v105-all, html#kb-mobile-root-v252 section#works .works-v105-actions [data-kb-edit-id]{
  width: auto !important;
  min-width: 98px !important;
  max-width: none !important;
  min-height: 39px !important;
  height: 39px !important;
  padding: 0 10px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#works .works-cta-icon{
  position: static !important;
  flex: 0 0 14px !important;
  width: 14px !important;
  height: 14px !important;
  translate: none !important;
  transform: none !important;
}

html#kb-mobile-root-v252 section#reviews .reviews-summary, html#kb-mobile-root-v252 section#reviews [data-kb-edit-id="home-reviews-summary-295"]{
  width: 100% !important;
  height: auto !important;
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 6px !important;
  padding: 7px !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#reviews .review-stat{
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 50px !important;
  margin: 0 !important;
  translate: none !important;
  transform: none !important;
}

html#kb-mobile-root-v252 section#contacts [data-kb-edit-id="contact-wide"]{
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 var(--m-pad) !important;
  padding: 0 !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#contacts [data-kb-edit-id="contact-shell"]{
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  overflow: visible !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#contacts [data-kb-edit-id="contact-copy"]{
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#contacts [data-kb-edit-id="contact-title"]{
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#contacts [data-kb-edit-id="contact-map"]{
  width: 100% !important;
  max-width: 100% !important;
  height: 176px !important;
  min-height: 176px !important;
  max-height: 176px !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#contacts [data-kb-edit-id="contact-list"]{
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  overflow: hidden !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#contacts .contact-row, html#kb-mobile-root-v252 section#contacts [data-kb-edit-id$="-row"]{
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 51px !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#contacts [data-kb-edit-id="contact-actions"]{
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#contacts [data-kb-edit-id="contact-copyright"]{
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 17px 0 0 !important;
  padding: 0 !important;
  display: block !important;
  translate: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 section#services .sp-time{
  width: auto !important;
  max-width: none !important;
  translate: none !important;
  transform: none !important;
}

/* works header CTA: compact, never steals title width */
html#kb-mobile-root-v252 section#works .works-v105-head{
  grid-template-columns: minmax(0,1fr) 108px !important;
  gap: 10px !important;
}
html#kb-mobile-root-v252 section#works .works-v105-title-wrap .section-display{
  white-space: nowrap !important;
}
html#kb-mobile-root-v252 section#works .works-v105-actions, html#kb-mobile-root-v252 section#works .works-v105-all, html#kb-mobile-root-v252 section#works .works-v105-actions [data-kb-edit-id]{
  width: 108px !important;
  min-width: 108px !important;
  max-width: 108px !important;
}
html#kb-mobile-root-v252 section#works .works-cta-icon{ display: none !important; }
html#kb-mobile-root-v252 section#works .works-v105-all::after{
  content: "↗" !important;
  display: inline-block !important;
  margin-left: 3px !important;
  color: var(--m-brand-strong) !important;
  font-size: 13px !important;
  line-height: 1 !important;
}

/* precise hamburger/X geometry */
html#kb-mobile-root-v252 .kbm-menu-toggle{ position: relative !important; }
html#kb-mobile-root-v252 .kbm-menu-toggle::before, html#kb-mobile-root-v252 .kbm-menu-toggle::after, html#kb-mobile-root-v252 .kbm-menu-toggle > span{
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  margin: 0 !important;
  transform-origin: center !important;
}
html#kb-mobile-root-v252 .kbm-menu-toggle::before{ transform: translate(-50%,-50%) translateY(-5px) !important; }
html#kb-mobile-root-v252 .kbm-menu-toggle > span{ transform: translate(-50%,-50%) !important; }
html#kb-mobile-root-v252 .kbm-menu-toggle::after{ transform: translate(-50%,-50%) translateY(5px) !important; }
html#kb-mobile-root-v252.kbm-menu-open .kbm-menu-toggle::before{ transform: translate(-50%,-50%) rotate(45deg) !important; }
html#kb-mobile-root-v252.kbm-menu-open .kbm-menu-toggle::after{ transform: translate(-50%,-50%) rotate(-45deg) !important; }
html#kb-mobile-root-v252.kbm-menu-open .kbm-menu-toggle > span{ opacity: 0 !important; }

@media (max-width:350px) {
  html#kb-mobile-root-v252 section#works .works-v105-head{ grid-template-columns:minmax(0,1fr) 92px !important; gap:8px !important; }
  html#kb-mobile-root-v252 section#works .works-v105-actions, html#kb-mobile-root-v252 section#works .works-v105-all, html#kb-mobile-root-v252 section#works .works-v105-actions [data-kb-edit-id]{
    width:92px !important; min-width:92px !important; max-width:92px !important; padding-inline:7px !important;
  }
}

/* V252 WebKit safety: no live backdrop blur anywhere on mobile. */
html#kb-mobile-root-v252 body *, html#kb-mobile-root-v252 body *::before, html#kb-mobile-root-v252 body *::after{
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* V252 final visual cleanup — works header action is a quiet editorial link. */
html#kb-mobile-root-v252 section#works .works-v105-head{
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 12px !important;
}
html#kb-mobile-root-v252 section#works .works-v105-title-wrap{
  min-width: 0 !important;
  flex: 1 1 auto !important;
}
html#kb-mobile-root-v252 section#works .works-v105-actions{
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: 0 0 auto !important;
}
html#kb-mobile-root-v252 section#works .works-v105-all, html#kb-mobile-root-v252 section#works .works-v105-actions > a[data-kb-edit-id]{
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 2px 0 8px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #98516d !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: -.01em !important;
  gap: 4px !important;
  justify-content: flex-end !important;
}
html#kb-mobile-root-v252 section#works .works-v105-all::after{
  content: "↗" !important;
  display: inline-block !important;
  margin-left: 2px !important;
  color: currentColor !important;
  font-size: 14px !important;
  line-height: 1 !important;
}
html#kb-mobile-root-v252 section#works .works-v105-all > span.works-cta-icon[data-kb-edit-id], html#kb-mobile-root-v252 section#works .works-v105-actions .works-cta-icon[data-kb-edit-id]{
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* V252 final lightbox controls — flat, quiet, no desktop gloss. */
html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-close[data-kb-edit-id], html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-nav[data-kb-edit-id], html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-prev[data-kb-edit-id], html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-next[data-kb-edit-id]{
  border: 1px solid rgba(255,255,255,.16) !important;
  background: #2a2024 !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #fff !important;
  text-shadow: none !important;
  transform: none !important;
}
html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-close[data-kb-edit-id]{
  width: 44px !important;
  height: 44px !important;
  border-radius: 14px !important;
}
html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-nav[data-kb-edit-id]{
  width: 44px !important;
  height: 44px !important;
  border-radius: 14px !important;
}
html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-close[data-kb-edit-id]::before, html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-close[data-kb-edit-id]::after, html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-nav[data-kb-edit-id]::before, html#kb-mobile-root-v252 .works-lightbox.open button.works-lightbox-nav[data-kb-edit-id]::after{
  display: none !important;
  content: none !important;
}
html#kb-mobile-root-v252 .works-lightbox.open .works-lightbox-meta[data-kb-edit-id]{
  border: 1px solid rgba(255,255,255,.12) !important;
  background: #241b1f !important;
  box-shadow: none !important;
}

/* ======================================================================
   KOSHKOBROW V252 — MOBILE UI/UX REFINEMENT
   Goal: editorial, premium, quiet. No desktop geometry, no glass blur.
   ====================================================================== */

html.kb-mobile-v252{
  --kb-bg: #f7efed;
  --kb-paper: #fffaf8;
  --kb-paper-2: #f3e8e6;
  --kb-ink: #2d2226;
  --kb-muted: #7d6c72;
  --kb-line: rgba(71,48,58,.12);
  --kb-plum: #754157;
  --kb-plum-deep: #4b2f3a;
  --kb-radius-xl: 28px;
  --kb-radius-lg: 22px;
  --kb-radius-md: 16px;
  background: var(--kb-bg) !important;
}

/* global rhythm */
html.kb-mobile-v252 body{ background: var(--kb-bg) !important; color: var(--kb-ink) !important; }
html.kb-mobile-v252 main{ overflow: clip !important; }
html.kb-mobile-v252 .section{ scroll-margin-top: 72px !important; }
html.kb-mobile-v252 .container{ width: auto !important; max-width: none !important; margin-inline: 16px !important; padding-inline: 0 !important; }
html.kb-mobile-v252 .section-display{ font-size: clamp(38px, 10.4vw, 46px) !important; line-height: .98 !important; letter-spacing: -.045em !important; }

/* header: less app-like, more editorial */
html.kb-mobile-v252 .site-header, html.kb-mobile-v252 header.site-header{
  top: 8px !important; left: 10px !important; right: 10px !important;
  width: auto !important; border-radius: 18px !important;
  border: 1px solid rgba(72,48,58,.10) !important;
  background: rgba(255,250,248,.97) !important;
  box-shadow: 0 8px 24px rgba(72,48,58,.08) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
html.kb-mobile-v252 .nav{ min-height: 54px !important; padding: 7px 8px 7px 12px !important; gap: 8px !important; }
html.kb-mobile-v252 .logo-main{ font-size: 17px !important; letter-spacing: -.04em !important; }
html.kb-mobile-v252 .logo-sub{ transform: scale(.78) !important; transform-origin: left top !important; margin-top: -1px !important; }
html.kb-mobile-v252 .nav > .btn-dark{ min-height: 38px !important; padding: 0 15px !important; border-radius: 12px !important; font-size: 11px !important; }

/* hero: remove dashboard feel, tighten hierarchy */
html.kb-mobile-v252 .hero{ padding: 88px 0 30px !important; min-height: 0 !important; }
html.kb-mobile-v252 .hero-grid{ display: flex !important; flex-direction: column !important; gap: 18px !important; }
html.kb-mobile-v252 .hero-copy{ display: flex !important; flex-direction: column !important; gap: 0 !important; }

html.kb-mobile-v252 .hero-brand-wrap{ margin: 0 0 16px !important; }
html.kb-mobile-v252 .hero-brand-main{ font-size: clamp(43px, 12.6vw, 56px) !important; line-height: .92 !important; letter-spacing: -.065em !important; white-space: nowrap !important; }
html.kb-mobile-v252 .hero-brand-sub{ margin-top: 7px !important; opacity: .70 !important; }
html.kb-mobile-v252 .hero-story{ margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
html.kb-mobile-v252 .hero-story p{ margin: 0 !important; max-width: 34em !important; font-size: 14px !important; line-height: 1.55 !important; color: #5f5055 !important; }
html.kb-mobile-v252 .hero-actions{ margin: 18px 0 0 !important; display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
html.kb-mobile-v252 .hero-actions .btn{ min-height: 48px !important; border-radius: 14px !important; font-size: 12px !important; box-shadow: none !important; }
html.kb-mobile-v252 .hero-facts{ margin: 12px 0 0 !important; padding: 0 !important; display: grid !important; grid-template-columns: .7fr 1.15fr .7fr !important; gap: 6px !important; background: none !important; }
html.kb-mobile-v252 .hero-fact{ min-height: 64px !important; padding: 10px !important; border: 1px solid var(--kb-line) !important; border-radius: 14px !important; background: rgba(255,250,248,.56) !important; box-shadow: none !important; }
html.kb-mobile-v252 .hero-fact b{ font-size: 13px !important; line-height: 1.1 !important; }
html.kb-mobile-v252 .hero-fact span{ margin-top: 5px !important; font-size: 8.5px !important; line-height: 1.25 !important; color: var(--kb-muted) !important; }
html.kb-mobile-v252 .hero-photo-wrap{ margin: 2px 0 0 !important; padding: 0 !important; }
html.kb-mobile-v252 .hero-photo-shell{ height: min(118vw, 470px) !important; min-height: 0 !important; border-radius: 26px 26px 90px 26px !important; box-shadow: 0 18px 40px rgba(77,51,61,.11) !important; }
html.kb-mobile-v252 .hero-photo{ width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center 28% !important; }

/* services: no giant dark slab. ALL groups collapsed initially. */
html.kb-mobile-v252 #services.section-services-price{ padding: 34px 0 38px !important; background: transparent !important; }
html.kb-mobile-v252 #services .container{ margin-inline: 16px !important; }
html.kb-mobile-v252 .services-price-shell{
  padding: 0 !important; border: 0 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important; color: var(--kb-ink) !important;
  overflow: visible !important;
}
html.kb-mobile-v252 .sp-head{ padding: 0 0 18px !important; color: var(--kb-ink) !important; }
html.kb-mobile-v252 .sp-title{ color: var(--kb-ink) !important; font-size: clamp(40px, 10.8vw, 48px) !important; letter-spacing: -.055em !important; }
html.kb-mobile-v252 .sp-head-side{ margin-top: 9px !important; }
html.kb-mobile-v252 .sp-head-side p{ color: var(--kb-muted) !important; font-size: 12px !important; line-height: 1.45 !important; }
html.kb-mobile-v252 .sp-body{ padding: 0 !important; display: grid !important; gap: 8px !important; }
html.kb-mobile-v252 .sp-group{
  margin: 0 !important; border: 1px solid var(--kb-line) !important; border-radius: 18px !important;
  background: rgba(255,250,248,.68) !important; box-shadow: none !important; overflow: hidden !important;
}
html.kb-mobile-v252 .sp-group-head{
  min-height: 68px !important; padding: 13px 50px 13px 14px !important;
  color: var(--kb-ink) !important; background: transparent !important;
}
html.kb-mobile-v252 .sp-group-head::after{
  content: "+" !important; right: 13px !important; width: 31px !important; height: 31px !important;
  border: 1px solid rgba(84,53,65,.13) !important; border-radius: 50% !important;
  color: var(--kb-plum) !important; background: #fffaf8 !important; font-size: 18px !important;
}
html.kb-mobile-v252 .sp-group.kbm-open .sp-group-head::after{ content: "−" !important; }
html.kb-mobile-v252 .sp-group-pill{ color: var(--kb-ink) !important; font-size: 15px !important; font-weight: 750 !important; gap: 10px !important; }
html.kb-mobile-v252 .sp-group-icon{ width: 30px !important; height: 30px !important; flex-basis: 30px !important; border-color: rgba(117,65,87,.13) !important; background: rgba(117,65,87,.06) !important; color: var(--kb-plum) !important; }
html.kb-mobile-v252 .sp-group-head > p{ margin-left: 40px !important; color: var(--kb-muted) !important; font-size: 10px !important; }
html.kb-mobile-v252 .sp-group > .sp-service, html.kb-mobile-v252 .sp-group > .sp-service-divider-v101{ display: none !important; }
html.kb-mobile-v252 .sp-group.kbm-open{ background: #fffaf8 !important; border-color: rgba(117,65,87,.22) !important; }
html.kb-mobile-v252 .sp-group.kbm-open > .sp-service{ display: grid !important; }
html.kb-mobile-v252 .sp-group.kbm-open > .sp-service-divider-v101{ display: block !important; }
html.kb-mobile-v252 .sp-service{ margin: 0 12px !important; padding: 14px 2px !important; color: var(--kb-ink) !important; border: 0 !important; background: transparent !important; box-shadow: none !important; grid-template-columns: 1fr auto !important; gap: 5px 10px !important; }
html.kb-mobile-v252 .sp-no{ display: none !important; }
html.kb-mobile-v252 .sp-main{ grid-column: 1 / 2 !important; }
html.kb-mobile-v252 .sp-main h3{ color: var(--kb-ink) !important; font-size: 13px !important; line-height: 1.3 !important; }
html.kb-mobile-v252 .sp-main p{ display: none !important; }
html.kb-mobile-v252 .sp-time{ grid-column: 1 / 2 !important; color: var(--kb-muted) !important; font-size: 10px !important; }
html.kb-mobile-v252 .sp-price{ grid-column: 2 / 3 !important; grid-row: 1 / 2 !important; align-self: start !important; color: var(--kb-ink) !important; font-size: 13px !important; font-weight: 800 !important; }
html.kb-mobile-v252 .sp-book{ grid-column: 2 / 3 !important; grid-row: 2 / 3 !important; align-self: end !important; min-height: 30px !important; padding: 0 10px !important; border-radius: 10px !important; border: 1px solid rgba(117,65,87,.15) !important; background: rgba(117,65,87,.07) !important; color: var(--kb-plum) !important; font-size: 9px !important; box-shadow: none !important; }
html.kb-mobile-v252 .sp-book-icon{ display: none !important; }
html.kb-mobile-v252 .sp-service-divider-v101{ height: 1px !important; margin: 0 12px !important; background: var(--kb-line) !important; }

/* Works: cleaner editorial card, no partial chopped neighbour */
html.kb-mobile-v252 #works{ padding: 38px 0 42px !important; transform: none !important; translate: none !important; }
html.kb-mobile-v252 .works-v105-head{ margin-bottom: 14px !important; align-items: end !important; }
html.kb-mobile-v252 .works-v105-actions{ align-self: end !important; }
html.kb-mobile-v252 .works-v105-all{ font-size: 10px !important; letter-spacing: .02em !important; color: var(--kb-plum) !important; }
html.kb-mobile-v252 .works-carousel-viewport{ overflow-x: auto !important; scroll-snap-type: x mandatory !important; padding: 0 !important; scroll-padding: 0 !important; }
html.kb-mobile-v252 .works-carousel-track{ gap: 10px !important; padding: 0 !important; }
html.kb-mobile-v252 .works-slide{ flex: 0 0 100% !important; width: 100% !important; scroll-snap-align: start !important; }
html.kb-mobile-v252 .works-slide-clip{ border-radius: 22px !important; overflow: hidden !important; background: #eadfdd !important; }
html.kb-mobile-v252 .works-slide-media{ height: min(118vw, 460px) !important; }
html.kb-mobile-v252 .works-slide-media img{ width: 100% !important; height: 100% !important; object-fit: cover !important; }
html.kb-mobile-v252 .works-slide-shade{ display: none !important; }
html.kb-mobile-v252 .works-slide-caption{ position: static !important; display: grid !important; gap: 2px !important; padding: 10px 2px 2px !important; color: var(--kb-ink) !important; background: transparent !important; text-align: left !important; }
html.kb-mobile-v252 .works-slide-caption small{ font-size: 8px !important; color: var(--kb-muted) !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
html.kb-mobile-v252 .works-slide-caption strong{ font-size: 12px !important; line-height: 1.3 !important; font-weight: 650 !important; }

/* reviews: calm card, less dashboard */
html.kb-mobile-v252 #reviews{ padding: 40px 0 42px !important; }
html.kb-mobile-v252 .reviews-heading-row{ gap: 12px !important; margin-bottom: 14px !important; }
html.kb-mobile-v252 .reviews-summary{ display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 6px !important; }
html.kb-mobile-v252 .reviews-summary > *{ min-height: 58px !important; border: 1px solid var(--kb-line) !important; border-radius: 14px !important; background: rgba(255,250,248,.62) !important; box-shadow: none !important; }
html.kb-mobile-v252 .review-marquee-card{ min-width: 100% !important; width: 100% !important; min-height: 188px !important; padding: 18px !important; border: 1px solid var(--kb-line) !important; border-radius: 20px !important; background: #fffaf8 !important; box-shadow: none !important; }
html.kb-mobile-v252 .reviews-marquee-track{ gap: 10px !important; }
html.kb-mobile-v252 .review-marquee-card p{ font-size: 14px !important; line-height: 1.55 !important; }
html.kb-mobile-v252 .reviews-footer{ margin-top: 10px !important; }
html.kb-mobile-v252 .btn-yandex-reviews{ min-height: 46px !important; border-radius: 14px !important; box-shadow: none !important; }

/* contacts: map is supportive, not the whole screen */
html.kb-mobile-v252 #contacts{ padding: 42px 0 24px !important; }
html.kb-mobile-v252 .contact-shell{ padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
html.kb-mobile-v252 .contact-copy{ display: flex !important; flex-direction: column !important; }
html.kb-mobile-v252 .contact-copy > h2{ margin-bottom: 14px !important; }
html.kb-mobile-v252 .map-wrap{ height: 218px !important; margin: 0 0 10px !important; border: 1px solid var(--kb-line) !important; border-radius: 20px !important; overflow: hidden !important; background: #eadfdd !important; box-shadow: none !important; }
html.kb-mobile-v252 .map-wrap iframe{ width: 100% !important; height: 100% !important; }
html.kb-mobile-v252 .contact-list{ margin: 0 !important; border: 1px solid var(--kb-line) !important; border-radius: 20px !important; overflow: hidden !important; background: rgba(255,250,248,.72) !important; }
html.kb-mobile-v252 .contact-row{ min-height: 54px !important; padding: 11px 13px !important; border-bottom: 1px solid var(--kb-line) !important; }
html.kb-mobile-v252 .contact-row:last-child{ border-bottom: 0 !important; }
html.kb-mobile-v252 .contact-row span{ font-size: 8px !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--kb-muted) !important; }
html.kb-mobile-v252 .contact-row b{ font-size: 11px !important; }
html.kb-mobile-v252 .contact-actions{ margin-top: 10px !important; display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
html.kb-mobile-v252 .contact-actions .btn{ min-height: 44px !important; border-radius: 13px !important; font-size: 10px !important; box-shadow: none !important; }
html.kb-mobile-v252 .contact-actions [data-book]{ grid-column: 1 / -1 !important; }

/* modal/menu/lightbox: flat, stable, native */
html.kb-mobile-v252 .booking-modal, html.kb-mobile-v252 .modal-card{ backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
html.kb-mobile-v252 .works-lightbox{ background: #1f191b !important; }
html.kb-mobile-v252 .works-lightbox img{ max-height: 74dvh !important; border-radius: 16px !important; }
html.kb-mobile-v252 .kbm-menu-panel{ border-radius: 22px !important; box-shadow: 0 20px 50px rgba(55,38,44,.16) !important; }

/* 320px safety */
@media (max-width: 350px) {
  html.kb-mobile-v252 .container{ margin-inline: 12px !important; }
  html.kb-mobile-v252 .hero-brand-main{ font-size: 39px !important; }
  html.kb-mobile-v252 .hero-actions{ grid-template-columns: 1fr !important; }
  html.kb-mobile-v252 .hero-facts{ grid-template-columns: 1fr 1fr 1fr !important; }
  html.kb-mobile-v252 .sp-title{ font-size: 37px !important; }
}

/* ===== merged from mobile-v252-seo-fix.css ===== */
/* KOSHKOBROW V252 — SEO/overlay guard. No redesign. */

/* Mobile semantic text uses the original DOM nodes, not duplicate JS clones. */
html.kb-mobile-v252 .hero-story > [data-kb-edit-id="auto-p-007"]{
  display: block !important;
}
html.kb-mobile-v252 .hero-story > .kbm-story-copy{
  display: none !important;
}
html.kb-mobile-v252 #services .sp-head-side > [data-kb-edit-id="home-p-073"]{
  display: block !important;
}
html.kb-mobile-v252 #services .sp-head-side > .kbm-service-lead{
  display: none !important;
}

/* User requirement: services/prices are always expanded on mobile. */
html.kb-mobile-v252 #services .sp-group > .sp-service{
  display: grid !important;
}
html.kb-mobile-v252 #services .sp-group > .sp-service-divider-v101{
  display: block !important;
}
html.kb-mobile-v252 #services .sp-group-head::after{
  content: none !important;
  display: none !important;
}

/* Closed fullscreen layers must not stay in the render tree on mobile. */
html.kb-mobile-v252 #bookingModal:not(.open), html.kb-mobile-v252 .works-lightbox:not(.open), html.kb-mobile-v252 .ui-blur-layer:not(.is-visible), html.kb-mobile-v252:not(.kbm-menu-open) .kbm-menu-backdrop, html.kb-mobile-v252:not(.kbm-menu-open) .kbm-menu-sheet{
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* The shared desktop blur compositor is not used by the mobile design. */
html.kb-mobile-v252 .ui-blur-layer{
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* V259 REAL HERO/SERVICE SEMANTIC SOURCE FIX.
   V252 intentionally hid source nodes with stronger #top/#services selectors
   because it used mobile clones. SEO cleanup removes those clones, therefore
   the original semantic nodes must outrank the old hide rules. */
html#kb-mobile-root-v252#kb-mobile-root-v252.kb-mobile-v252 #top#top .hero-story > [data-kb-edit-id="auto-p-007"][data-kb-edit-id]{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
html#kb-mobile-root-v252#kb-mobile-root-v252.kb-mobile-v252 #services#services .sp-head-side > [data-kb-edit-id="home-p-073"][data-kb-edit-id]{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* ===== merged from mobile-editor-v256.css ===== */
/* KOSHKOBROW Mobile Editor V256 — editor-only quality of life. */
html.kb-editor-mode-v256.kb-editor-phone-preview-v252{ background:#2f2f2f !important; }
html.kb-editor-mode-v256.kb-editor-phone-preview-v252 body{ box-shadow:0 18px 55px rgba(0,0,0,.28); }

/* ===== merged from mobile-v261-block1.css ===== */
/* V260 BLOCK 1 — header + hero composition fixes */
html.kb-mobile-v252 .topbar{
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  inset-inline: 0 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  padding-top: 0 !important;
  transform: none !important;
  opacity: 1 !important;
}
html.kb-mobile-v252.kbm-header-hidden:not(.kbm-menu-open) .topbar{
  transform: none !important;
  opacity: 1 !important;
  pointer-events: none !important;
}
html.kb-mobile-v252 .topbar .nav{
  min-height: 68px !important;
  height: auto !important;
  padding: calc(10px + env(safe-area-inset-top, 0px)) 14px 10px !important;
  gap: 10px !important;
  border-radius: 0 0 20px 20px !important;
  background: rgba(250, 244, 242, 0.68) !important;
  -webkit-backdrop-filter: blur(18px) saturate(155%) !important;
  backdrop-filter: blur(18px) saturate(155%) !important;
  border: 1px solid rgba(114, 83, 94, 0.14) !important;
  border-top: 0 !important;
  box-shadow: 0 12px 28px rgba(43, 29, 35, 0.10), inset 0 1px 0 rgba(255,255,255,0.55) !important;
}
html.kb-mobile-v252 .topbar .logo{
  max-width: 134px !important;
}
html.kb-mobile-v252 .topbar .nav > .btn, html.kb-mobile-v252 .topbar .nav > a.btn, html.kb-mobile-v252 .kbm-menu-toggle{
  min-height: 44px !important;
  height: 44px !important;
}

html.kb-mobile-v252 .hero-copy{
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}




html.kb-mobile-v252 .hero-brand-wrap{
  margin: 0 !important;
  width: 100% !important;
  text-align: center !important;
}
html.kb-mobile-v252 .hero-brand-lockup{
  display: inline-flex !important;
  width: 100% !important;
  flex-direction: column !important;
  align-items: center !important;
}
html.kb-mobile-v252 .hero-brand-main{
  display: inline-flex !important;
  justify-content: center !important;
  width: 100% !important;
  font-size: clamp(42px, 12.8vw, 58px) !important;
  line-height: .92 !important;
  letter-spacing: -.065em !important;
  white-space: nowrap !important;
}
html.kb-mobile-v252 .hero-brand-sub{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  margin: 10px auto 0 !important;
  padding-inline: 16px !important;
  gap: 8px !important;
  opacity: .84 !important;
}
html.kb-mobile-v252 .hero-brand-sub .hero-brand-line{
  flex: 1 1 0 !important;
  min-width: 56px !important;
  max-width: 88px !important;
}
html.kb-mobile-v252 .hero-brand-sub .hero-brand-studio{
  font-size: 10px !important;
  line-height: 1 !important;
  letter-spacing: .28em !important;
}
html.kb-mobile-v252 .hero-brand-sub .hero-brand-star{
  font-size: 9px !important;
}

html.kb-mobile-v252 .hero-photo-wrap, html.kb-mobile-v252 .hero-photo-wrap.reveal{
  margin: 14px 0 0 !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  align-self: stretch !important;
}
html.kb-mobile-v252 .hero-photo-shell{
  border-radius: 28px !important;
  overflow: hidden !important;
}
html.kb-mobile-v252 .hero-photo{
  display: block !important;
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
}

html.kb-mobile-v252 .hero-story{
  margin: 14px 0 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
html.kb-mobile-v252 .hero-story > [data-kb-edit-id="auto-p-007"], html.kb-mobile-v252 .hero-story > .kbm-story-copy, html.kb-mobile-v252 #top .hero-story > [data-kb-edit-id="auto-p-007"][data-kb-edit-id]{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.56 !important;
  color: #5f5055 !important;
  text-align: left !important;
  max-width: none !important;
}

html.kb-mobile-v252 .hero-actions{
  margin: 18px 0 0 !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
}
html.kb-mobile-v252 .hero-facts, html.kb-mobile-v252 #top [data-kb-edit-id="hero-facts"][data-kb-edit-id], html.kb-mobile-v252 #top [data-kb-edit-id="hero-facts"][data-kb-edit-id][data-kb-edit-id]{
  margin: 14px 0 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}
html.kb-mobile-v252 .hero-fact, html.kb-mobile-v252 #top .hero-fact{
  min-width: 0 !important;
  min-height: 84px !important;
  padding: 12px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
}
html.kb-mobile-v252 .hero-fact b, html.kb-mobile-v252 .hero-fact span{
  display: block !important;
}
html.kb-mobile-v252 .hero-fact span{
  font-size: 9px !important;
  line-height: 1.3 !important;
}

@media (max-width: 340px) {
  html.kb-mobile-v252 .hero-brand-main{ font-size: 36px !important; }
  html.kb-mobile-v252 .hero-facts{ gap: 6px !important; }
  html.kb-mobile-v252 .hero-fact{ min-height: 80px !important; padding: 10px !important; }
}

/* V261 correction: exact mobile hero order + original desktop jewel marker */
html.kb-mobile-v252 .hero-copy{
  display: flex !important;
  flex-direction: column !important;
}

html.kb-mobile-v252 .hero-brand-wrap{ order: 1 !important; }
html.kb-mobile-v252 .hero-photo-wrap, html.kb-mobile-v252 .hero-photo-wrap.reveal{ order: 2 !important; }
html.kb-mobile-v252 .hero-story{ order: 3 !important; }
html.kb-mobile-v252 .hero-actions{ order: 4 !important; }
html.kb-mobile-v252 .hero-facts{ order: 5 !important; }

/* Exact desktop jewel marker, scaled for mobile. */





/* ----------------------------------------------------------------------
   V276 — portrait identity label, anchored above portrait
   Editorial treatment: small name + quiet role, no icon and no overlap.
   ---------------------------------------------------------------------- */
html.kb-mobile-v252 .hero-brand-wrap{ order: 0 !important; }




html.kb-mobile-v252 .hero-photo-wrap, html.kb-mobile-v252 .hero-photo-wrap.reveal{
  order: 2 !important;
  margin-top: 0 !important;
}
html.kb-mobile-v252 .hero-story{ order: 3 !important; }
html.kb-mobile-v252 .hero-actions{ order: 4 !important; }
html.kb-mobile-v252 .hero-facts{ order: 5 !important; }

@media (max-width:350px) {
  
  
  
}

/* ===== merged from mobile-v262-block1.css ===== */
/* V262 BLOCK 1 — exact spacing / frosted header / centered brand */

/* Header: edge-to-edge, always visible, real frosted glass. */
html#kb-mobile-root-v252.kb-mobile-v252 .topbar[data-kb-edit-id="home-topbar-001"]{
  position: fixed !important;
  z-index: 500 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  inset-inline: 0 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  translate: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transition: none !important;
}
html#kb-mobile-root-v252.kb-mobile-v252.kbm-header-hidden .topbar[data-kb-edit-id="home-topbar-001"]{
  transform: none !important;
  translate: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
html#kb-mobile-root-v252.kb-mobile-v252 .topbar .nav[data-kb-edit-id="home-nav-002"]{
  width: 100% !important;
  min-height: 78px !important;
  height: auto !important;
  margin: 0 !important;
  padding: calc(11px + env(safe-area-inset-top, 0px)) 16px 11px !important;
  gap: 10px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(92,61,72,.13) !important;
  border-radius: 0 0 22px 22px !important;
  background: linear-gradient(180deg, rgba(255,251,249,.76), rgba(246,235,238,.62)) !important;
  -webkit-backdrop-filter: blur(30px) saturate(145%) !important;
  backdrop-filter: blur(30px) saturate(145%) !important;
  box-shadow: 0 10px 30px rgba(59,38,46,.09), inset 0 -1px 0 rgba(255,255,255,.46) !important;
  overflow: hidden !important;
}
html#kb-mobile-root-v252.kb-mobile-v252 .topbar .logo[data-kb-edit-id="home-logo-logo-lockup-003"]{
  max-width: 132px !important;
  margin-right: auto !important;
}
html#kb-mobile-root-v252.kb-mobile-v252 .topbar .nav > .btn[data-kb-edit-id="home-btn-btn-dark-018"]{
  min-height: 46px !important;
  height: 46px !important;
  padding-inline: 16px !important;
  border-radius: 14px !important;
}
html#kb-mobile-root-v252.kb-mobile-v252 .kbm-menu-toggle{
  width: 46px !important;
  min-width: 46px !important;
  height: 46px !important;
  min-height: 46px !important;
  border-radius: 14px !important;
}

/* Never let fixed header overlap hero content. */
html#kb-mobile-root-v252 main#top > section.hero[data-kb-edit-id="hero"]{
  padding-top: calc(108px + env(safe-area-inset-top, 0px)) !important;
  padding-bottom: 34px !important;
}
html#kb-mobile-root-v252 main#top > section.hero > .container.hero-grid[data-kb-edit-id="hero-grid"]{
  width: auto !important;
  margin-left: 22px !important;
  margin-right: 22px !important;
  margin-inline: 22px !important;
  padding: 0 !important;
  gap: 0 !important;
}

/* Overline: exact desktop jewel, aligned with hero content. */





/* Brand: same left/right breathing room and perfectly centered STUDIO lockup. */
html#kb-mobile-root-v252 .hero-brand-wrap[data-kb-edit-id="home-hero-brand-wrap-025"]{
  order: 1 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  overflow: visible !important;
}
html#kb-mobile-root-v252 .hero-brand-lockup[data-kb-edit-id="home-hero-brand-lockup-026"]{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
html#kb-mobile-root-v252 .hero-brand-main[data-kb-edit-id="home-hero-brand-main-027"]{
  display: flex !important;
  justify-content: center !important;
  align-items: baseline !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  font-size: clamp(38px, 11.25vw, 48px) !important;
  line-height: .94 !important;
  letter-spacing: -.06em !important;
  white-space: nowrap !important;
  transform: none !important;
  translate: none !important;
}
html#kb-mobile-root-v252 .hero-brand-sub[data-kb-edit-id="home-hero-brand-sub-030"]{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: calc(100% - 44px) !important;
  max-width: 330px !important;
  margin: 14px auto 0 !important;
  padding: 0 !important;
  gap: 8px !important;
  opacity: .78 !important;
  transform: none !important;
  translate: none !important;
}
html#kb-mobile-root-v252 .hero-brand-sub .hero-brand-line{
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 1px !important;
}
html#kb-mobile-root-v252 .hero-brand-sub .hero-brand-studio[data-kb-edit-id="home-hero-brand-studio-033"]{
  flex: 0 0 auto !important;
  font-size: 10px !important;
  line-height: 1 !important;
  letter-spacing: .28em !important;
  padding-left: .28em !important;
}
html#kb-mobile-root-v252 .hero-brand-sub .hero-brand-star{ flex: 0 0 auto !important; font-size: 9px !important; }

/* Exact requested hero order. */
html#kb-mobile-root-v252 .hero-photo-wrap[data-kb-edit-id="hero-photo-wrap"]{ order: 2 !important; margin: 22px 0 0 !important; }
html#kb-mobile-root-v252 .hero-story[data-kb-edit-id="hero-story"]{ order: 3 !important; margin: 16px 0 0 !important; }
html#kb-mobile-root-v252 .hero-actions[data-kb-edit-id="hero-actions"]{ order: 4 !important; margin: 16px 0 0 !important; }
html#kb-mobile-root-v252 .hero-facts[data-kb-edit-id="hero-facts"]{ order: 5 !important; margin: 14px 0 0 !important; }

/* Three equal cards. */
html#kb-mobile-root-v252 .hero-facts[data-kb-edit-id="hero-facts"]{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 8px !important;
}
html#kb-mobile-root-v252 .hero-facts[data-kb-edit-id="hero-facts"] > .hero-fact{
  width: auto !important;
  min-width: 0 !important;
  min-height: 88px !important;
  height: 100% !important;
  padding: 12px 11px !important;
}

@media (max-width: 350px) {
  html#kb-mobile-root-v252 main#top > section.hero > .container.hero-grid[data-kb-edit-id="hero-grid"]{ margin-inline: 16px !important; }
  html#kb-mobile-root-v252 .hero-brand-main[data-kb-edit-id="home-hero-brand-main-027"]{ font-size: 36px !important; }
  html#kb-mobile-root-v252 .hero-brand-sub[data-kb-edit-id="home-hero-brand-sub-030"]{ width: calc(100% - 28px) !important; }
  html#kb-mobile-root-v252 .hero-facts[data-kb-edit-id="hero-facts"]{ gap: 6px !important; }
  html#kb-mobile-root-v252 .hero-facts[data-kb-edit-id="hero-facts"] > .hero-fact{ padding: 10px 8px !important; }
}

/* Beat old ROOT-ID authority rules for vertical rhythm. */
html#kb-mobile-root-v252 main#top > section.hero .hero-photo-wrap[data-kb-edit-id="hero-photo-wrap"], html#kb-mobile-root-v252 main#top > section.hero .hero-photo-wrap.reveal[data-kb-edit-id="hero-photo-wrap"]{
  order: 2 !important;
  margin: 22px 0 0 !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-story[data-kb-edit-id="hero-story"]{
  order: 3 !important;
  margin: 18px 0 0 !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-actions[data-kb-edit-id="hero-actions"]{
  order: 4 !important;
  margin: 16px 0 0 !important;
}
html#kb-mobile-root-v252 main#top > section.hero .hero-facts[data-kb-edit-id="hero-facts"]{
  order: 5 !important;
  margin: 14px 0 0 !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
}

/* ===== merged from mobile-v277-identity-fix.css ===== */
/* V277 — definitive hero identity order fix.
   Wins over the older V262 ID-specific rules before first paint. */
@media (max-width:1279px) {
  html#kb-mobile-root-v252 body main#top section.hero .hero-copy[data-kb-edit-id="home-hero-copy-019"]{
    display: flex !important;
    flex-direction: column !important;
  }

  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-brand-wrap[data-kb-edit-id="home-hero-brand-wrap-025"]{
    order: 0 !important;
    margin: 0 !important;
  }

  

  

  

  

  

  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-photo-wrap[data-kb-edit-id="hero-photo-wrap"], html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-photo-wrap.reveal[data-kb-edit-id="hero-photo-wrap"]{
    order: 2 !important;
    margin-top: 0 !important;
  }

  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-story[data-kb-edit-id="hero-story"]{ order: 3 !important; }
  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-actions[data-kb-edit-id="hero-actions"]{ order: 4 !important; }
  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-facts[data-kb-edit-id="hero-facts"]{ order: 5 !important; }
}

@media (max-width:350px) {
  
  
  
}

/* ===== merged from mobile-v278-identity-lock.css ===== */
/* V278 — keep the identity row visible and in one canonical mobile slot. */
@media (max-width:1279px){
  html#kb-mobile-root-v252 body main#top section.hero .hero-copy[data-kb-edit-id="home-hero-copy-019"]{
    display:flex !important;
    flex-direction:column !important;
  }

  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-brand-wrap[data-kb-edit-id="home-hero-brand-wrap-025"]{
    order:0 !important;
  }

  

  
  
  
  

  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-photo-wrap[data-kb-edit-id="hero-photo-wrap"]{
    order:2 !important;
    margin-top:0 !important;
  }
  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-story[data-kb-edit-id="hero-story"]{order:3 !important;}
  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-actions[data-kb-edit-id="hero-actions"]{order:4 !important;}
  html#kb-mobile-root-v252 body main#top section.hero .hero-copy > .hero-facts[data-kb-edit-id="hero-facts"]{order:5 !important;}
}

/* ===== merged from mobile-v277-hero-flow.css ===== */
/* V277 — deterministic mobile hero flow. No flex order: DOM order is visual order. */
@media (max-width:1279px){
  html.kb-mobile-v252 #top .hero-copy[data-kb-edit-id="home-hero-copy-019"]{
    display:block !important;
  }

  html.kb-mobile-v252 #top .hero-copy > .hero-brand-wrap, html.kb-mobile-v252 #top .hero-copy > .hero-photo-wrap, html.kb-mobile-v252 #top .hero-copy > .hero-story, html.kb-mobile-v252 #top .hero-copy > .hero-actions, html.kb-mobile-v252 #top .hero-copy > .hero-facts{
    order:initial !important;
  }

  /* identity label: one quiet line directly above the portrait */
  
  
  
  
  

  html.kb-mobile-v252 #top .hero-photo-wrap[data-kb-edit-id="hero-photo-wrap"]{
    margin-top:0 !important;
  }
}

@media (max-width:350px){
  
  
  
}


/* ===== V280 canonical hero identity contract =====
   The editor runtime may carry legacy mobile geometry. The actual semantic
   identity row has one fixed slot: BRAND -> IDENTITY -> PORTRAIT. */
@media (max-width:1279px){
  html#kb-mobile-root-v252 body main#top section.hero .hero-copy[data-kb-edit-id="home-hero-copy-019"]{
    overflow:visible !important;
  }
  
  
  
  
}


/* ===== V287 — HERO IDENTITY IS AN ORDINARY EDITOR ELEMENT =====
   All V249–V286 special-case identity rules were removed from this compiled
   mobile stylesheet. These are only low-specificity defaults. Published
   editor state wins naturally, exactly like for every other data-kb-edit-id. */
@media (max-width:1279px){
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-hero-overline-020"]{
    display:flex;
    visibility:visible;
    opacity:1;
    position:static;
    width:100%;
    min-height:14px;
    margin:16px 0 10px;
    padding:0 2px;
    align-items:center;
    justify-content:flex-start;
    flex-direction:row;
    flex-wrap:nowrap;
    gap:8px;
    white-space:nowrap;
    overflow:visible;
    background:transparent;
    border:0;
    box-shadow:none;
    pointer-events:auto;
  }
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-dot-021"]{
    display:inline-block;
    width:12px;
    height:12px;
    min-width:12px;
    flex:0 0 12px;
    margin:0 2px 0 0;
    padding:0;
    border-radius:999px;
    background:radial-gradient(circle at 50% 50%,rgba(255,250,252,.98) 0 31%,rgba(221,160,184,.95) 34% 67%,rgba(195,125,153,.94) 70% 100%);
    box-shadow:0 0 0 1px rgba(255,255,255,.42),0 0 10px rgba(213,144,171,.28);
    opacity:1;
  }
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-hero-overline-name-022"],
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-hero-overline-role-024"]{
    display:inline-block;
    margin:0;
    padding:0;
    color:#6f5b62;
    font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:10px;
    line-height:1.3;
    font-weight:800;
    letter-spacing:1.05px;
    text-transform:uppercase;
    white-space:nowrap;
    opacity:1;
  }
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-hero-overline-divider-023"]{
    display:inline-block;
    margin:0 -2px;
    padding:0;
    color:#bc8699;
    font-family:"Manrope",system-ui,sans-serif;
    font-size:13px;
    line-height:1;
    font-weight:800;
    letter-spacing:0;
    text-transform:none;
    opacity:.95;
  }
}
@media (max-width:350px){
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-hero-overline-020"]{gap:7px}
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-dot-021"]{width:10px;height:10px;min-width:10px;flex-basis:10px}
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-hero-overline-name-022"],
  :where(html#kb-mobile-root-v252.kb-mobile-v252) :where(#top) [data-kb-edit-id="home-hero-overline-role-024"]{font-size:9.1px;letter-spacing:.85px}
}

/* ===== V289 — remove mobile header logo resize ceiling =====
   The editor already supports free resize. The old mobile skin capped the
   actual logo at 132px with !important, so the selection box could not grow.
   Keep all existing layout rules, but remove only that hard ceiling. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 .topbar .logo[data-kb-edit-id="home-logo-logo-lockup-003"],
  html#kb-mobile-root-v252 .topbar .logo[data-kb-edit-id="home-logo-logo-lockup-003"]{
    max-width:none !important;
  }
}

/* ============================================================
   V290 — MOBILE SERVICES / PRICE: DARK DESKTOP-INSPIRED EDITORIAL
   Mobile only. Hero/header/works/reviews/contacts are untouched.
   Static effects only: no backdrop-filter, no animated neon.
   ============================================================ */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services.section-services-price{
    padding:42px 0 46px !important;
    background:transparent !important;
    overflow:visible !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services > .container{
    margin-inline:10px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .services-price-shell{
    position:relative !important;
    isolation:isolate !important;
    overflow:hidden !important;
    padding:0 !important;
    border:1px solid rgba(245,211,224,.16) !important;
    border-radius:30px !important;
    color:#fff !important;
    background:
      radial-gradient(90% 28% at 95% 0%,rgba(177,105,132,.24),transparent 70%),
      radial-gradient(80% 24% at 2% 100%,rgba(137,79,101,.12),transparent 72%),
      linear-gradient(180deg,#3c2c32 0%,#34262b 46%,#302328 100%) !important;
    box-shadow:
      0 24px 54px rgba(43,26,32,.22),
      0 0 0 1px rgba(236,166,196,.05) inset !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .services-price-shell::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    inset:0 !important;
    z-index:0 !important;
    pointer-events:none !important;
    border-radius:inherit !important;
    background:
      linear-gradient(110deg,transparent 0 43%,rgba(255,255,255,.018) 50%,transparent 57%) !important;
    opacity:1 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .services-price-shell::after,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-neon-frame,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-neon-rotor{
    display:none !important;
    animation:none !important;
    filter:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-head,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-body{
    position:relative !important;
    z-index:2 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-head{
    display:block !important;
    width:auto !important;
    height:auto !important;
    translate:none !important;
    transform:none !important;
    padding:30px 24px 24px !important;
    border-bottom:1px solid rgba(255,255,255,.10) !important;
    color:#fff !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title-wrap{
    margin:0 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title{
    margin:0 !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-family:"Prata",Georgia,serif !important;
    font-size:clamp(43px,11.8vw,54px) !important;
    line-height:.98 !important;
    font-weight:400 !important;
    letter-spacing:-.055em !important;
    text-shadow:0 1px 0 rgba(255,255,255,.03) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-head-side{
    display:block !important;
    margin:14px 0 0 !important;
    padding:0 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-head-side > [data-kb-edit-id="home-p-073"][data-kb-edit-id]{
    display:block !important;
    margin:0 !important;
    max-width:31em !important;
    translate:none !important;
    transform:none !important;
    color:rgba(255,245,249,.58) !important;
    -webkit-text-fill-color:rgba(255,245,249,.58) !important;
    font-size:12px !important;
    line-height:1.55 !important;
    font-weight:500 !important;
    text-align:left !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-head-side > .kbm-service-lead{
    display:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-body{
    display:block !important;
    padding:10px 20px 24px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group{
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    overflow:visible !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group + .sp-group{
    margin-top:16px !important;
    padding-top:20px !important;
    border-top:1px solid rgba(255,255,255,.11) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-boundary-divider{
    display:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-head{
    position:relative !important;
    display:block !important;
    min-height:0 !important;
    margin:0 0 4px !important;
    padding:10px 0 12px !important;
    background:transparent !important;
    color:#fff !important;
    cursor:default !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-head::after{
    content:none !important;
    display:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-pill{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    min-height:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#efc6d4 !important;
    font-size:11px !important;
    line-height:1.2 !important;
    font-weight:850 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-icon{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    flex:0 0 30px !important;
    border:1px solid rgba(240,192,210,.18) !important;
    border-radius:10px !important;
    background:rgba(255,255,255,.055) !important;
    color:#efb9cc !important;
    box-shadow:0 8px 18px rgba(20,9,13,.08) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-icon svg{
    width:15px !important;
    height:15px !important;
    stroke:currentColor !important;
    stroke-width:1.6 !important;
    fill:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-head > p{
    display:block !important;
    margin:8px 0 0 40px !important;
    padding:0 !important;
    translate:none !important;
    transform:none !important;
    color:rgba(255,245,249,.43) !important;
    -webkit-text-fill-color:rgba(255,245,249,.43) !important;
    font-size:10px !important;
    line-height:1.45 !important;
    font-weight:500 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service{
    position:relative !important;
    display:grid !important;
    grid-template-columns:28px minmax(0,1fr) auto !important;
    grid-template-areas:
      "no main price"
      "no time book" !important;
    align-items:start !important;
    gap:7px 10px !important;
    min-height:0 !important;
    margin:0 !important;
    padding:17px 0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:#fff !important;
    overflow:visible !important;
    transform:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service::before,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service::after{
    content:none !important;
    display:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service + .sp-service{
    border-top:1px solid rgba(255,255,255,.09) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-service-divider-v101{
    display:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no{
    display:block !important;
    grid-area:no !important;
    align-self:start !important;
    margin:0 !important;
    padding:3px 0 0 !important;
    color:#d79bb0 !important;
    -webkit-text-fill-color:#d79bb0 !important;
    font-family:"Prata",Georgia,serif !important;
    font-size:10px !important;
    line-height:1 !important;
    opacity:.92 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-main{
    grid-area:main !important;
    min-width:0 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-main h3{
    margin:0 !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-size:14px !important;
    line-height:1.30 !important;
    font-weight:720 !important;
    letter-spacing:-.015em !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-main p{
    display:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-note{
    display:block !important;
    margin-top:4px !important;
    color:#dfa5b9 !important;
    -webkit-text-fill-color:#dfa5b9 !important;
    font-size:9px !important;
    line-height:1.2 !important;
    font-weight:850 !important;
    letter-spacing:.045em !important;
    text-transform:uppercase !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-time{
    grid-area:time !important;
    align-self:center !important;
    margin:0 !important;
    padding:0 !important;
    translate:none !important;
    transform:none !important;
    color:rgba(255,245,249,.42) !important;
    -webkit-text-fill-color:rgba(255,245,249,.42) !important;
    font-size:10px !important;
    line-height:1.3 !important;
    text-align:left !important;
    white-space:nowrap !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-price{
    grid-area:price !important;
    align-self:start !important;
    margin:0 !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-family:"Prata",Georgia,serif !important;
    font-size:18px !important;
    line-height:1.1 !important;
    font-weight:400 !important;
    letter-spacing:-.025em !important;
    text-align:right !important;
    white-space:nowrap !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-book{
    grid-area:book !important;
    justify-self:end !important;
    align-self:center !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    width:auto !important;
    min-width:94px !important;
    min-height:34px !important;
    height:34px !important;
    margin:0 !important;
    padding:0 12px !important;
    border:1px solid rgba(247,215,226,.18) !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.065) !important;
    color:#f3d4de !important;
    -webkit-text-fill-color:#f3d4de !important;
    box-shadow:none !important;
    font-family:"Manrope",system-ui,sans-serif !important;
    font-size:9px !important;
    line-height:1 !important;
    font-weight:800 !important;
    letter-spacing:.015em !important;
    transform:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-book-icon{
    display:block !important;
    width:13px !important;
    height:13px !important;
    flex:0 0 13px !important;
    stroke:currentColor !important;
    fill:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-more{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:14px !important;
    margin:22px 0 0 !important;
    padding:18px !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-radius:20px !important;
    background:linear-gradient(120deg,rgba(255,255,255,.045),rgba(167,101,121,.075)) !important;
    box-shadow:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-more-copy{
    display:grid !important;
    gap:4px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-more-copy span{
    color:#d7a9b8 !important;
    font-size:9px !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-more-copy strong{
    color:#fff !important;
    font-family:"Prata",Georgia,serif !important;
    font-size:19px !important;
    font-weight:400 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-more-copy p{
    margin:0 !important;
    color:rgba(255,245,249,.44) !important;
    font-size:10px !important;
    line-height:1.45 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-more-link{
    width:100% !important;
    height:42px !important;
    min-height:42px !important;
    border-radius:999px !important;
    background:#f1e3e8 !important;
    color:#4b343d !important;
    -webkit-text-fill-color:#4b343d !important;
    box-shadow:none !important;
    font-size:10px !important;
    font-weight:850 !important;
  }
}

@media (max-width:350px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services > .container{margin-inline:7px !important}
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-head{padding:26px 19px 21px !important}
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-body{padding:8px 16px 21px !important}
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title{font-size:40px !important}
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service{grid-template-columns:24px minmax(0,1fr) auto !important;gap:7px 8px !important}
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-main h3{font-size:13px !important}
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-price{font-size:16px !important}
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-book{min-width:84px !important;padding:0 10px !important}
}

/* ============================================================
   V291 — SERVICE ROW TEMPLATE + TRUE NUMBER CENTERING
   Keep the V290 visual sizes/spacing. Every service uses the same
   grid contract as service 01. Number circles are real flex boxes,
   so the digits are mathematically centered and still editable.
   ============================================================ */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service{
    grid-template-columns:28px minmax(0,1fr) auto !important;
    grid-template-areas:
      "no main price"
      "no time book" !important;
    align-items:start !important;
    gap:7px 10px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    justify-self:start !important;
    align-self:start !important;
    box-sizing:border-box !important;
    padding:0 !important;
    margin:0 !important;
    text-align:center !important;
    text-indent:0 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    transform:none !important;
    translate:none !important;
    vertical-align:middle !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-main{
    grid-area:main !important;
    min-width:0 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-time{
    grid-area:time !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-price{
    grid-area:price !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-book{
    grid-area:book !important;
  }
}


/* ===== V293 — independent editable digit inside service number circle =====
   The circle remains the existing .sp-no editor element. The visible digits
   are now a separate child editor element, so dragging/nudging the digits no
   longer moves or resizes the circle and cannot disturb the service row. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no{
    overflow:visible !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no > .sp-no-text{
    display:block;
    position:absolute;
    left:50%;
    top:50%;
    margin:0;
    padding:0;
    font:inherit;
    color:inherit;
    -webkit-text-fill-color:inherit;
    line-height:1;
    text-align:center;
    white-space:nowrap;
    pointer-events:auto;
    user-select:none;
    z-index:2;
    transform:translate(-50%,-50%);
  }
}


/* ===== V294 — service recovery + truly independent number text =====
   Service editor geometry restored from user 14:58 export. */


/* ===== V295 — prettier service number badges, no geometry changes =====
   Keep the user-set position/size intact. Only refine the badge surface and
   switch visible numbering to 1..9 instead of 01..09. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no{
    border-radius:999px !important;
    border:1px solid rgba(220,186,201,.18) !important;
    background:
      radial-gradient(120% 120% at 28% 24%, rgba(255,255,255,.08) 0%, rgba(255,255,255,.025) 28%, rgba(255,255,255,0) 62%),
      linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(255,255,255,.012) 100%) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      inset 0 0 0 1px rgba(255,255,255,.015),
      0 10px 24px rgba(16,8,13,.08) !important;
    backdrop-filter:saturate(112%) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no > .sp-no-text{
    font-family:"Manrope", system-ui, sans-serif;
    font-weight:800;
    letter-spacing:-0.015em;
    color:#e4a7be;
    -webkit-text-fill-color:#e4a7be;
    text-shadow:0 0 10px rgba(228,167,190,.08);
  }
}


/* ===== V298 — editorial luxury services title =====
   Research-led direction: strong typographic hierarchy, dark high-contrast
   surface, restrained accent. No dots, no underline, no glow, no extra labels.
   Geometry stays under the existing editor state. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title{
    color:#fff7fa !important;
    -webkit-text-fill-color:#fff7fa !important;
    background:none !important;
    filter:none !important;
    text-shadow:0 1px 0 rgba(255,255,255,.025),0 10px 26px rgba(12,5,9,.16) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title::before,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title::after{
    content:none !important;
    display:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title-main{
    color:#fff7fa !important;
    -webkit-text-fill-color:#fff7fa !important;
    font:inherit !important;
    letter-spacing:inherit !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title-and{
    display:inline-block !important;
    margin:0 .08em !important;
    color:#d8a0b5 !important;
    -webkit-text-fill-color:#d8a0b5 !important;
    font-family:"Prata",Georgia,serif !important;
    font-size:.64em !important;
    font-style:italic !important;
    font-weight:400 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    vertical-align:.08em !important;
    opacity:.92 !important;
  }
}


/* ===== V299 — simple stronger services title =====
   User-requested direction: keep the title in theme, no split styling, no
   dots, no underlines, no gimmicks. Just make it read a bit stronger and more
   premium with slightly heavier contrast and restrained shadow. Geometry stays
   under the current editor state. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title{
    color:#fff9fb !important;
    -webkit-text-fill-color:#fff9fb !important;
    background:none !important;
    filter:none !important;
    text-shadow:0 1px 0 rgba(255,255,255,.04), 0 8px 18px rgba(13,6,10,.16) !important;
    letter-spacing:-.03em !important;
    word-spacing:.02em !important;
    font-variation-settings:normal !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title::before,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title::after,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title-main,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-title-and{
    content:none !important;
    display:none !important;
  }
}


/* ===== V300 — premium numeral styling for service badges =====
   Only change the digit style inside the service circles. Keep current user
   geometry, editable child digit elements, and circle positions untouched. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no > .sp-no-text{
    font-family:"Prata", Georgia, serif !important;
    font-weight:400 !important;
    font-size:1.08em !important;
    letter-spacing:0 !important;
    color:#efc0cf !important;
    -webkit-text-fill-color:#efc0cf !important;
    text-shadow:0 1px 0 rgba(255,255,255,.03), 0 6px 14px rgba(24,11,17,.10) !important;
    transform:translate(-50%,-52%) !important;
  }
}


/* ===== V301 — larger cleaner numeral style for service badges =====
   User-requested adjustment: drop the decorative serif look and make the
   service digits bigger, cleaner and more premium-looking without touching
   service layout or circle geometry. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no > .sp-no-text{
    font-family:"Manrope", system-ui, sans-serif !important;
    font-weight:800 !important;
    font-size:1.28em !important;
    line-height:1 !important;
    letter-spacing:-0.02em !important;
    color:#f2c7d5 !important;
    -webkit-text-fill-color:#f2c7d5 !important;
    text-shadow:0 1px 0 rgba(255,255,255,.04), 0 4px 10px rgba(18,8,13,.08) !important;
    transform:translate(-50%,-51%) !important;
  }
}


/* ===== V302 — high-fashion numerals (Bodoni Moda) =====
   Research direction: Bodoni/Didot are established fashion/luxury faces.
   Use Bodoni Moda at a heavier display weight so the thin strokes survive
   on the dark reverse background. No service/circle geometry changes. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no > .sp-no-text{
    font-family:"Bodoni Moda", "Times New Roman", serif !important;
    font-weight:800 !important;
    font-size:1.42em !important;
    line-height:.92 !important;
    letter-spacing:-0.035em !important;
    font-optical-sizing:auto !important;
    font-variation-settings:"opsz" 24, "wght" 800 !important;
    font-feature-settings:"lnum" 1, "kern" 1 !important;
    color:#f3c4d4 !important;
    -webkit-text-fill-color:#f3c4d4 !important;
    text-shadow:0 1px 0 rgba(255,255,255,.035), 0 5px 12px rgba(17,7,12,.10) !important;
    transform:translate(-50%,-51%) !important;
  }
}


/* ===== V303 — boutique luxury numerals (Cormorant Garamond) =====
   Only the visible 1..9 digit typography changes.
   Circle size, service positions, editor geometry and digit editability stay untouched. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no > .sp-no-text{
    font-family:"Cormorant Garamond", Georgia, serif !important;
    font-weight:700 !important;
    font-size:1.42em !important;
    line-height:.92 !important;
    letter-spacing:-.035em !important;
    color:#f0bdcf !important;
    -webkit-text-fill-color:#f0bdcf !important;
    text-shadow:
      0 1px 0 rgba(255,255,255,.045),
      0 5px 12px rgba(18,8,13,.10) !important;
    font-variant-numeric:lining-nums proportional-nums !important;
    transform:translate(-50%,-52%) !important;
  }
}


/* ===== V304 — modern luxury numerals (Jost) =====
   Research direction: luxury fashion commonly uses subtle geometric sans
   typography; Jost is used in an actual luxury brand style guide.
   Only the visible 1..9 numerals change. No service/circle geometry changes. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no > .sp-no-text{
    font-family:"Jost","Helvetica Neue",Arial,sans-serif !important;
    font-weight:500 !important;
    font-size:18px !important;
    line-height:1 !important;
    letter-spacing:.015em !important;
    font-style:normal !important;
    font-variant-numeric:lining-nums proportional-nums !important;
    color:#f0c5d4 !important;
    -webkit-text-fill-color:#f0c5d4 !important;
    text-shadow:0 2px 8px rgba(12,6,9,.10) !important;
    transform:translate(-50%,-51%) !important;
  }
}


/* ===== V305 — EXACT DESKTOP NUMERAL TYPOGRAPHY ON MOBILE =====
   Desktop reference from style-v241.css:
   Prata / 18px / line-height 1 / #efc0d0 / lining tabular numerals.
   Only the child digit typography changes; mobile circle/service geometry stays untouched. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-no > .sp-no-text{
    font-family:"Prata",Georgia,serif !important;
    font-size:18px !important;
    font-weight:400 !important;
    font-style:normal !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    font-variant-numeric:tabular-nums lining-nums !important;
    font-feature-settings:'tnum' 1,'lnum' 1 !important;
    color:#efc0d0 !important;
    -webkit-text-fill-color:#efc0d0 !important;
    text-shadow:none !important;
    transform:translate(-50%,-50%) !important;
  }
}

/* ===== V308 — FLUID PHONE WIDTH PARITY =====
   The user's 390px iPhone-12 layout is the exact anchor.
   Unlike V307, this works BOTH below and above 390px, so 360/375/390/393/
   412/414/428/430/440 phones keep the same visual right/left relationships.
   No vertical geometry and no editor state are changed.

   Anchor math from the saved user layout:
     viewport 390px -> sp-body 359px -> inner group 319px
     therefore body width = viewport - 31px
     and the existing 20px horizontal body padding yields group = viewport - 71px.
   Category descriptions have hand-tuned X positions at 390px, so only their
   horizontal visual offset receives delta=(viewport - 390px).
*/
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body{
    width:calc(100vw - 31px) !important;
    max-width:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group{
    width:100% !important;
    max-width:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head{
    width:100% !important;
    max-width:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head > p{
    transform:translateX(max(0px, calc(100vw - 390px))) !important;
  }

  /* Keep each service's right column tied to the real responsive group width. */
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-price,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-book{
    justify-self:end !important;
  }
}


/* ===== V313 — SAFE NARROW PHONE CATEGORY + BOTTOM CTA =====
   Base is V309 (before V310/V311/V312 runtime experiments).
   Key correction:
   - 390px remains the exact editor anchor.
   - Wider phones move category descriptions right by only the extra width.
   - Narrower phones NEVER move descriptions left, because the user's saved
     x/width already fit at 360–375; shifting left caused the overlaps.
   - On narrow phones only, descriptions may wrap naturally inside their
     existing right-side box.
   - Bottom DIKIDI card gets a small visual breathing gap without changing
     editor state or document geometry. */
@media (max-width:379px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-more{
    position:relative !important;
    top:-12px !important;
  }
}


/* ===== V314 — FLUID CATEGORY DESCRIPTION WIDTH, NO REPOSITIONING =====
   Preserve every editor-saved x/y position. The category descriptions were
   hand-tuned at the 390px anchor so their right edges land exactly on the
   group edge. On narrower containers we only reduce the available width;
   words wrap naturally instead of the whole description moving left/down.
   On 390px+ the saved width and V308 extra-width shift remain unchanged. */
@media (max-width:1279px){
  /* Beat the editor's generated fixed heights only for these description nodes,
     while leaving translate/x/y untouched. */
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-head > p[data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id][data-kb-edit-id]{
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
    overflow:visible !important;
  }

  /* Available width = responsive group width - the exact saved visual left edge.
     These constants come from the user's own 390px editor geometry:
       brows:     margin 40 + x 116.5 = 156.5
       lashes:    margin 40 + x 129.6 = 169.6
       complexes: margin 40 + x 133   = 173
       extras:    margin 40 + x 120   = 160
     max-width only constrains narrow screens; it does NOT enlarge or move
     anything on the user's 390px anchor or on wider screens. */
  html#kb-mobile-root-v252.kb-mobile-v252 #services [data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"][data-kb-edit-id="home-p-080"]{
    max-width:calc(100% - 156.5px) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services [data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"][data-kb-edit-id="home-p-106"]{
    max-width:calc(100% - 169.6px) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services [data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"][data-kb-edit-id="home-p-143"]{
    max-width:calc(100% - 173px) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #services [data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"][data-kb-edit-id="home-p-179"]{
    max-width:calc(100% - 160px) !important;
  }
}


/* ===== V317 — PRESERVE THE 390px EDITOR CANVAS ON NARROW PHONES =====
   The approved layout was tuned with a 319px inner services canvas at 390px.
   Previous patches compressed that canvas at 360/375px, which changed title/price
   spacing and triggered extra wrapping. Do not squeeze the user's layout.
   Instead, consume the spare horizontal padding first.

   body width = viewport - 31px
   target inner canvas = 319px
   therefore horizontal body padding = (viewport - 350px) / 2

   390px -> 20px padding -> 319px inner canvas (exact current layout)
   375px -> 12.5px padding -> 319px inner canvas
   360px -> 5px padding -> 319px inner canvas
   350px -> 0px padding -> 319px inner canvas

   This preserves the user's editor-set title/price relationships and element
   sizes on common narrow phones instead of modifying text boxes. */
@media (min-width:350px) and (max-width:389px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body{
    padding-left:calc((100vw - 350px) / 2) !important;
    padding-right:calc((100vw - 350px) / 2) !important;
  }
}

/* Below 350px there is physically less than the approved 319px canvas.
   Use every available pixel before any content-level fallback is allowed. */
@media (max-width:349px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body{
    padding-left:0 !important;
    padding-right:0 !important;
  }
}

/* V317 explicitly leaves service title width/height/font and price geometry
   under the editor's control. No auto-width, no auto-height, no font fitting. */


/* ===== V318 — FREEZE APPROVED SERVICE CONTENT GEOMETRY =====
   The user's approved reference is the 390/393px layout.
   Previous wide-phone logic expanded the ENTIRE service grid, which enlarged
   the middle text track. That changed line wrapping and therefore changed the
   visual dimensions/rhythm of rows (e.g. service 5 became one line on 440px).

   From 350px upward:
   - the service row itself stays exactly 319px wide (the approved inner canvas);
   - number/main/time keep the same grid geometry and wrapping at every width;
   - only the RIGHT UI (price + booking button) may consume extra viewport width;
   - category description already uses the same extra-width right shift;
   - editor x/y/height/font settings remain untouched.

   This means a text wrap can no longer change merely because the phone is wider. */
@media (min-width:350px) and (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service{
    width:319px !important;
    max-width:319px !important;
    min-width:319px !important;
    box-sizing:border-box !important;
  }

  /* Keep the approved 390px middle-track geometry.  Do NOT stretch .sp-main. */
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-main{
    min-width:0 !important;
  }

  /* Extra phone width belongs only to the right-side controls.
     Use transform so editor-saved `translate: x y` (especially Y) is preserved. */
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-price,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-book{
    transform:translateX(max(0px, calc(100vw - 390px))) !important;
  }
}

/* On sub-350px devices there is physically not enough room for the full
   approved 319px service canvas. Keep V317's existing fallback there rather
   than silently modifying fonts/heights in normal 350px+ phones. */


/* ===== V319 — PRESERVE THE APPROVED 319px SERVICE CANVAS ON NARROW PHONES =====
   A55 problem was not the service elements themselves: V317/V318 preserved the
   319px service row by eating the INSIDE right/left padding. That made the
   content look stretched to the edges on 360px phones.

   Correct strategy:
   - never resize title/price/button/number/text geometry;
   - preserve the approved 319px inner service canvas;
   - on narrow phones consume OUTER section margins first;
   - keep the same internal 20px breathing room whenever the viewport is >=360px;
   - down to 320px, reduce only outer/internal empty padding, never the actual
     319px content canvas.

   393px+ stays exactly as V318. */
@media (min-width:320px) and (max-width:389px){
  html#kb-mobile-root-v252.kb-mobile-v252 #services > .container{
    /* 360px => 0px outer margin; 375px => 5px; 389px => ~9.7px.
       This converges smoothly back to the normal 10px margin at 390px. */
    margin-left:clamp(0px, calc((100vw - 360px) / 3), 10px) !important;
    margin-right:clamp(0px, calc((100vw - 360px) / 3), 10px) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body.sp-body{
    /* 360-389px => exact approved 359px body.
       320-359px => use every available pixel. */
    width:min(359px, calc(100vw - 1px)) !important;
    max-width:min(359px, calc(100vw - 1px)) !important;

    /* Keep the actual content canvas exactly 319px:
       360px -> 20px/side
       350px -> 15px/side
       340px -> 10px/side
       320px -> 0px/side */
    padding-left:max(0px, calc((min(359px, calc(100vw - 1px)) - 319px) / 2)) !important;
    padding-right:max(0px, calc((min(359px, calc(100vw - 1px)) - 319px) / 2)) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group.sp-group,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head.sp-group-head,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group > .sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service.sp-service{
    width:319px !important;
    min-width:319px !important;
    max-width:319px !important;
  }

  /* A55 must use the exact 390px inner geometry.
     No viewport-driven movement inside the 319px canvas. */
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-price,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-book,
  html#kb-mobile-root-v252.kb-mobile-v252 #services .sp-group-head > p{
    transform:none !important;
  }
}


/* ======================================================================
   V320 — MOBILE WORKS / PREMIUM REAL WEBSITE BLOCK
   Redesigns only the home-page #works block. Desktop stays untouched.
   Direction: the user's liked reference, translated into the real site UI:
   editorial heading, restrained glass CTA, one tactile portfolio card,
   premium caption panel and compact integrated carousel controls.
   ====================================================================== */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #works{
    position:relative !important;
    padding:46px 0 42px !important;
    overflow:hidden !important;
    background:
      radial-gradient(84% 44% at 86% 18%, rgba(220,162,184,.13) 0%, rgba(220,162,184,0) 72%),
      radial-gradient(70% 38% at 0% 86%, rgba(255,255,255,.52) 0%, rgba(255,255,255,0) 76%) !important;
    isolation:isolate !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works::before{
    content:"" !important;
    position:absolute !important;
    width:210px !important;
    height:210px !important;
    right:-118px !important;
    top:148px !important;
    border:1px solid rgba(176,107,134,.09) !important;
    border-radius:50% !important;
    pointer-events:none !important;
    z-index:-1 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .container{
    position:relative !important;
    margin-inline:var(--m-pad) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-shell{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    overflow:visible !important;
  }

  /* heading */
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-head{
    width:100% !important;
    margin:0 0 18px !important;
    padding:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:10px !important;
    align-items:center !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-title-wrap{
    min-width:0 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-title-wrap .section-display{
    margin:0 !important;
    color:#332126 !important;
    -webkit-text-fill-color:#332126 !important;
    font-family:"Prata", Georgia, serif !important;
    font-size:clamp(40px,10.8vw,47px) !important;
    font-weight:400 !important;
    line-height:.98 !important;
    letter-spacing:-.055em !important;
    text-shadow:0 11px 28px rgba(69,39,50,.07) !important;
    white-space:nowrap !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-actions{
    margin:0 !important;
    padding:0 !important;
    align-self:center !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-all,
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-actions > a[data-kb-edit-id]{
    position:relative !important;
    width:auto !important;
    min-width:108px !important;
    height:43px !important;
    min-height:43px !important;
    padding:0 15px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    border:1px solid rgba(117,72,89,.11) !important;
    border-radius:999px !important;
    background:linear-gradient(180deg,rgba(255,255,255,.70),rgba(255,250,251,.47)) !important;
    color:#9f4f6e !important;
    -webkit-text-fill-color:#9f4f6e !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.86),
      0 8px 24px rgba(91,48,65,.075) !important;
    backdrop-filter:blur(10px) saturate(112%) !important;
    -webkit-backdrop-filter:blur(10px) saturate(112%) !important;
    font-family:"Manrope",system-ui,sans-serif !important;
    font-size:12px !important;
    line-height:1 !important;
    font-weight:800 !important;
    letter-spacing:-.015em !important;
    text-decoration:none !important;
    white-space:nowrap !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-all::after{
    content:"↗" !important;
    display:inline-block !important;
    margin-left:1px !important;
    color:#a14f6e !important;
    font-size:14px !important;
    font-weight:700 !important;
    line-height:1 !important;
    transform:translateY(-1px) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-cta-icon{
    display:none !important;
  }

  /* carousel */
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-carousel{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-carousel-viewport{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    border-radius:28px !important;
    scroll-snap-type:x mandatory !important;
    scroll-padding:0 !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
    overscroll-behavior-x:contain !important;
    touch-action:pan-x pinch-zoom !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-carousel-viewport::-webkit-scrollbar{
    display:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-carousel-track{
    width:max-content !important;
    min-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    gap:12px !important;
    transform:none !important;
    transition:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide{
    flex:0 0 100% !important;
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    scroll-snap-align:start !important;
    scroll-snap-stop:always !important;
    transform:none !important;
    text-align:left !important;
    cursor:pointer !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-clip{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    display:grid !important;
    grid-template-rows:auto auto !important;
    gap:0 !important;
    overflow:hidden !important;
    border:1px solid rgba(106,66,82,.105) !important;
    border-radius:28px !important;
    background:linear-gradient(180deg,rgba(255,250,251,.94),rgba(247,235,238,.88)) !important;
    box-shadow:
      0 24px 48px rgba(71,39,50,.105),
      0 3px 10px rgba(71,39,50,.045),
      inset 0 1px 0 rgba(255,255,255,.80) !important;
    isolation:isolate !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-media{
    grid-row:1 !important;
    position:relative !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:4 / 5.15 !important;
    overflow:hidden !important;
    border:0 !important;
    border-radius:0 !important;
    background:#dfcfcb !important;
    box-shadow:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-media::after{
    content:"" !important;
    position:absolute !important;
    inset:auto 0 0 !important;
    height:72px !important;
    background:linear-gradient(180deg,rgba(42,24,31,0),rgba(42,24,31,.08)) !important;
    pointer-events:none !important;
    z-index:2 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-media img:not(.works-slide-blur){
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
    filter:none !important;
    transform:scale(1.001) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-blur,
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-shade{
    display:none !important;
  }

  /* caption is part of the card, not a detached text strip */
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-caption{
    grid-row:2 !important;
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    min-height:86px !important;
    margin:0 !important;
    padding:14px 62px 16px 16px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    gap:5px !important;
    overflow:hidden !important;
    border:0 !important;
    border-top:1px solid rgba(115,74,90,.07) !important;
    background:
      radial-gradient(76px 58px at 94% 50%,rgba(216,159,180,.14),rgba(216,159,180,0) 70%),
      linear-gradient(180deg,rgba(255,251,252,.93),rgba(248,237,240,.91)) !important;
    color:#39262c !important;
    text-align:left !important;
    transform:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-caption::after{
    content:"↗" !important;
    position:absolute !important;
    right:16px !important;
    top:50% !important;
    width:38px !important;
    height:38px !important;
    display:grid !important;
    place-items:center !important;
    border:1px solid rgba(138,84,106,.12) !important;
    border-radius:50% !important;
    background:rgba(255,255,255,.50) !important;
    color:#9e5370 !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.82) !important;
    font-family:"Manrope",system-ui,sans-serif !important;
    font-size:16px !important;
    font-weight:600 !important;
    line-height:1 !important;
    transform:translateY(-50%) !important;
    pointer-events:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-caption small{
    margin:0 !important;
    color:#aa7a8c !important;
    -webkit-text-fill-color:#aa7a8c !important;
    font-family:"Manrope",system-ui,sans-serif !important;
    font-size:9px !important;
    line-height:1.15 !important;
    font-weight:800 !important;
    letter-spacing:.16em !important;
    text-transform:uppercase !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-caption strong{
    max-width:100% !important;
    margin:0 !important;
    color:#3a252c !important;
    -webkit-text-fill-color:#3a252c !important;
    font-family:"Prata",Georgia,serif !important;
    font-size:18px !important;
    line-height:1.25 !important;
    font-weight:400 !important;
    letter-spacing:-.028em !important;
    text-wrap:balance !important;
  }

}

@media (max-width:359px){
  html#kb-mobile-root-v252.kb-mobile-v252 #works{
    padding-top:40px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-head{
    gap:7px !important;
    margin-bottom:15px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-title-wrap .section-display{
    font-size:38px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-all,
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-v105-actions > a[data-kb-edit-id]{
    min-width:99px !important;
    height:40px !important;
    min-height:40px !important;
    padding-inline:12px !important;
    font-size:11px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-caption{
    min-height:80px !important;
    padding:12px 57px 14px 14px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-caption strong{
    font-size:16.5px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-caption::after{
    right:13px !important;
    width:36px !important;
    height:36px !important;
  }
}


/* ===== V322 CRITICAL — FIX V320 MAX-CONTENT CAROUSEL GEOMETRY =====
   V320 set the track to width:max-content while every slide was width:100%.
   On mobile Chromium that percentage participates in max-content sizing and can
   blow one slide up to thousands of pixels wide. The viewport then shows only a
   tiny cropped strip of the real photo, which looks like a flat brown placeholder.
   Keep the track at the viewport width; flex children still overflow horizontally. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-carousel-track{
    width:100% !important;
    min-width:100% !important;
    max-width:none !important;
  }
}


/* ===== V323 — WORKS PHOTO PAINT LAYER / EXACT OLD CONTROLS =====
   Controls: no V320/V321/V322 redesign rules exist anymore. The original
   pre-V320 rules earlier in this stylesheet now win exactly as before.

   Photo: the actual <img> remains interactive/source-of-truth, but the media
   also paints the same full-resolution photo on ::before. This is a separate
   paint layer and survives Chromium/WebKit image-layer recycling while
   scrolling. It is NOT a blur placeholder. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-media{
    position:relative !important;
    isolation:isolate !important;
    background-color:transparent !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-media::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    inset:0 !important;
    z-index:1 !important;
    pointer-events:none !important;
    opacity:1 !important;
    background-image:var(--kb-work-photo) !important;
    background-size:cover !important;
    background-position:center !important;
    background-repeat:no-repeat !important;
    filter:none !important;
    transform:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-media::after{
    z-index:3 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-media > img:not(.works-slide-blur){
    position:relative !important;
    z-index:2 !important;
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    filter:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-blur{
    display:none !important;
  }
}

/* ===== V324 — SINGLE IMAGE PAINT SOURCE (BUGFIX ONLY) =====
   Geometry is intentionally unchanged. The real <img> is the only photo paint
   source; V323's ::before full-resolution duplicate is disabled. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-slide-media::before{
    content:none !important;
    display:none !important;
    background-image:none !important;
    opacity:0 !important;
  }
}


/* ===== SOURCE: assets/mobile-works-clean-v348.css ===== */
/* KOSHKOBROW V343 — TRUE CENTER SNAP FIX
   Mobile portfolio is a real DOM component. No Shadow DOM. */
.kbmw-clean{display:none}

@media (max-width:1279px){
  /* Legacy desktop/source carousel stays in DOM for Gallery API + desktop, but is not painted on phone. */
  html#kb-mobile-root-v252.kb-mobile-v252 #works > .container{display:none!important}
  html#kb-mobile-root-v252.kb-mobile-v252 #works{
    position:relative;
    overflow:hidden;
    padding:34px 0 48px;
    background:transparent;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-clean,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-clean *,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-clean *::before,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-clean *::after{box-sizing:border-box}

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-clean{
    --kbmw-ink:#34262c;
    --kbmw-plum:#4a313a;
    --kbmw-plum-2:#573844;
    --kbmw-rose:#a8677f;
    --kbmw-rose-2:#ca8fa4;
    --kbmw-paper:#f5ece9;
    --kbmw-paper-hi:#fffaf8;
    --kbmw-line:rgba(100,66,80,.10);
    display:block;
    position:relative;
    width:auto;
    margin:0 12px;
    color:var(--kbmw-ink);
    font-family:"Manrope",system-ui,sans-serif;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-shell{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    padding:0 0 18px;
    border:1px solid rgba(255,255,255,.90);
    border-radius:32px;
    background:
      radial-gradient(130% 74% at -8% -18%,rgba(255,255,255,.94) 0%,rgba(255,255,255,.14) 54%,transparent 70%),
      radial-gradient(82% 66% at 106% -6%,rgba(222,185,199,.40) 0%,rgba(222,185,199,.08) 56%,transparent 74%),
      linear-gradient(180deg,#f7efed 0%,#f3e9e6 48%,#eee2df 100%);
    box-shadow:
      0 34px 72px rgba(72,43,55,.12),
      0 12px 30px rgba(111,73,91,.08),
      0 2px 8px rgba(111,73,91,.05),
      inset 0 1px 0 rgba(255,255,255,.98),
      inset 0 -1px 0 rgba(186,159,169,.18);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-shell::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:1px;
    border-radius:31px;
    pointer-events:none;
    background:
      linear-gradient(112deg,transparent 12%,rgba(255,255,255,.28) 38%,rgba(255,255,255,.02) 56%,transparent 72%),
      repeating-linear-gradient(132deg,rgba(113,72,88,.014) 0 1px,transparent 1px 17px);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-shell::after{
    content:"";
    position:absolute;
    z-index:-1;
    left:11%;
    right:11%;
    bottom:-48px;
    height:122px;
    border-radius:50%;
    pointer-events:none;
    background:rgba(190,120,147,.14);
    filter:blur(48px);
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:25px 20px 17px;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-title{
    min-width:0;
    margin:0;
    color:var(--kbmw-ink);
    font-family:"Prata",Georgia,serif;
    font-size:clamp(36px,10.4vw,45px);
    font-weight:400;
    line-height:.98;
    letter-spacing:-.045em;
    white-space:nowrap;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-all{
    display:inline-flex;
    align-items:center;
    gap:9px;
    min-height:42px;
    padding:0 7px 0 15px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:999px;
    color:#fff;
    background:linear-gradient(145deg,var(--kbmw-plum),var(--kbmw-plum-2));
    box-shadow:0 12px 28px rgba(63,39,48,.17),inset 0 1px 0 rgba(255,255,255,.11);
    font:800 10.5px/1 "Manrope",system-ui,sans-serif;
    letter-spacing:.01em;
    text-decoration:none;
    white-space:nowrap;
    -webkit-tap-highlight-color:transparent;
    transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-all:active{transform:translateY(1px) scale(.985)}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-all-icon{
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    flex:0 0 27px;
    border:1px solid rgba(255,255,255,.80);
    border-radius:50%;
    color:var(--kbmw-plum);
    background:rgba(255,250,251,.97);
    box-shadow:inset 0 1px 0 #fff;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-all-icon svg{width:12px;height:12px;display:block}

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-carousel{
    position:relative;
    margin:0;
    padding:0 0 0;
    background:transparent;
    box-shadow:none;
    border-radius:0;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-viewport{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    padding:0;
    margin:0;
    scroll-padding-inline:0;
    scroll-snap-type:x mandatory;
    scroll-behavior:auto;
    overscroll-behavior-x:contain;
    touch-action:pan-x pinch-zoom;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    -webkit-user-select:none;
    user-select:none;
    -webkit-touch-callout:none;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-viewport::-webkit-scrollbar{display:none}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-track{
    display:flex;
    width:100%;
    min-width:0;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    margin:0;
    padding:0;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-card{
    position:relative;
    flex:0 0 100%;
    width:100%;
    min-width:0;
    max-width:none;
    margin:0;
    padding:0 14px;
    overflow:hidden;
    border:0;
    background:transparent;
    box-shadow:none;
    scroll-snap-align:center;
    scroll-snap-stop:always;
    scroll-margin-inline:0;
    outline:none;
    cursor:pointer;
    transform:none;
    -webkit-tap-highlight-color:transparent;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-card:active,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-card:focus,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-card:focus-visible{
    outline:none;
    transform:none;
    box-shadow:none;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-card[hidden]{display:none}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-frame{
    display:block;
    position:relative;
    width:100%;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.16);
    border-radius:26px;
    background:#392a30;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.14);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-frame::before{
    content:"";
    position:absolute;
    z-index:2;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    border-radius:26px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 1px 0 0 rgba(255,255,255,.025),inset -1px 0 0 rgba(255,255,255,.025),inset 0 -1px 0 rgba(255,255,255,.04);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-media{
    display:block;
    position:relative;
    width:100%;
    aspect-ratio: 1 / 1.55;
    min-height:0;
    max-height:620px;
    height:auto;
    overflow:hidden;
    background:#d8cacc;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-media::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:-24px;
    pointer-events:none;
    background-image:var(--kbmw-blur-image,none);
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    filter:blur(28px) saturate(.95);
    transform:scale(1.12);
    opacity:0;
    transition:opacity .18s ease;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-media.is-short::before{opacity:1}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-media::after{
    content:"";
    position:absolute;
    z-index:2;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(180deg,rgba(241,231,229,0) 0,rgba(241,231,229,0) 100%),
      linear-gradient(180deg,rgba(34,20,27,0) 0%,rgba(34,20,27,.10) 58%,rgba(34,20,27,.64) 82%,rgba(34,20,27,.89) 100%);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-media.is-short::after{
    background:
      linear-gradient(180deg,rgba(219,191,185,.88) 0,rgba(219,191,185,.54) 42px,rgba(219,191,185,.18) 92px,rgba(219,191,185,0) 144px),
      linear-gradient(180deg,rgba(34,20,27,0) 0%,rgba(34,20,27,.10) 58%,rgba(34,20,27,.64) 82%,rgba(34,20,27,.89) 100%);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-backdrop{display:none}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-image{
    position:relative;
    z-index:1;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    pointer-events:none;
    transform:none;
    filter:none;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-media.is-short .kbmw-image{
    object-fit:contain;
    padding:0;
    transform:scale(1.005);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-media.is-long .kbmw-image{
    object-fit:cover;
    object-position:center;
    padding:0;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-caption{
    position:absolute;
    z-index:3;
    left:0;
    right:0;
    bottom:0;
    min-height:96px;
    padding:20px 22px 20px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    align-items:flex-start;
    gap:6px;
    pointer-events:none;
    text-align:left;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-category{
    color:#e4a9bd;
    font:800 8.5px/1.1 "Manrope",system-ui,sans-serif;
    letter-spacing:.19em;
    text-transform:uppercase;
    text-shadow:0 1px 8px rgba(0,0,0,.20);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-name{
    max-width:90%;
    color:#fff;
    font:700 16px/1.24 "Manrope",system-ui,sans-serif;
    letter-spacing:-.025em;
    text-wrap:balance;
    text-shadow:0 2px 12px rgba(0,0,0,.26);
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-controls{
    display:grid;
    grid-template-columns:46px minmax(0,1fr) 46px;
    gap:12px;
    align-items:center;
    margin:12px 20px 0;
    padding:0;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-nav{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.90);
    border-radius:16px;
    color:#5a404d;
    background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(246,237,235,.76));
    box-shadow:0 10px 24px rgba(69,41,51,.06),inset 0 1px 0 rgba(255,255,255,.96),inset 0 -1px 0 rgba(203,180,186,.22);
    appearance:none;
    -webkit-appearance:none;
    -webkit-tap-highlight-color:transparent;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-nav:active{background:#fff}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-nav svg{width:17px;height:17px}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-status{
    min-width:0;
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:0;
    border:1px solid rgba(255,255,255,.90);
    border-radius:999px;
    background:linear-gradient(180deg,rgba(255,255,255,.80),rgba(246,237,235,.74));
    box-shadow:0 10px 24px rgba(69,41,51,.04),inset 0 1px 0 rgba(255,255,255,.96),inset 0 -1px 0 rgba(203,180,186,.22);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-count{
    display:inline-flex;
    align-items:baseline;
    gap:4px;
    flex:0 0 auto;
    color:#755d67;
    font:800 10px/1 "Manrope",system-ui,sans-serif;
    letter-spacing:.10em;
    white-space:nowrap;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-count-slash{opacity:.46}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-dots{
    min-width:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    overflow:hidden;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-dot{
    width:7px;
    height:7px;
    flex:0 0 7px;
    border-radius:999px;
    background:rgba(117,93,103,.18);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.45);
    transition:width .22s ease,flex-basis .22s ease,background .22s ease;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-dot.is-active{
    width:22px;
    flex-basis:22px;
    background:linear-gradient(90deg,var(--kbmw-rose-2),var(--kbmw-rose));
  }

  @media (max-width:359px){
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-clean{margin:0 10px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-head{grid-template-columns:1fr;gap:9px;padding:22px 17px 14px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-title{font-size:32px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-all{justify-self:end;min-height:39px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-card{padding:0 12px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-name{font-size:15px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-controls{grid-template-columns:42px minmax(0,1fr) 42px;gap:9px;margin:12px 16px 0;padding:0}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-nav{width:42px;height:42px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-status{min-height:42px;padding:0 10px;gap:7px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-dots{gap:5px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-dot{width:6px;height:6px;flex-basis:6px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-dot.is-active{width:18px;flex-basis:18px}
  }
  @media (prefers-reduced-motion:reduce){
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-dot,
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-all{transition:none}
  }
}


/* ===== SOURCE: assets/mobile-reviews-v358.css ===== */
/* KOSHKOBROW V357 — MOBILE REVIEWS: exact generated Yandex award emblem */
.kbmr-clean{display:none}

@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #reviews > .container{display:none!important}
  html#kb-mobile-root-v252.kb-mobile-v252 #reviews{
    position:relative;
    overflow:hidden;
    padding:26px 0 54px;
    background:transparent;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-clean,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-clean *,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-clean *::before,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-clean *::after{box-sizing:border-box}

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-clean{
    --rm-ink:#34282d;
    --rm-copy:#4b3d43;
    --rm-muted:#8f7e84;
    --rm-brand:#bd7891;
    --rm-pill:rgba(255,252,251,.78);
    display:block;
    width:100%;
    color:var(--rm-ink);
    font-family:"Manrope",system-ui,sans-serif;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-topline{
    width:calc(100% - 28px);
    margin:0 auto 18px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px 12px;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-titlebox{
    min-width:0;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-title{
    margin:0;
    color:#2f2329;
    font-family:"Prata",Georgia,serif;
    font-size:clamp(34px,11vw,47px);
    font-weight:400;
    line-height:.95;
    letter-spacing:-.045em;
    white-space:nowrap;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-overview{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    width:auto;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat{
    min-width:0;
    min-height:38px;
    padding:5px 10px 5px 8px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:6px;
    border-radius:17px;
    background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(248,239,238,.74));
    color:#45363c;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-icon{
    width:18px;
    height:18px;
    flex:0 0 18px;
    display:grid;
    place-items:center;
    color:#bd7891;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-icon svg{
    width:17px;
    height:17px;
    display:block;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:1px;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-copy strong{
    color:#33272c;
    font-size:12px;
    line-height:1;
    font-weight:800;
    letter-spacing:-.02em;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-copy small{
    color:#7f6c74;
    font-size:8px;
    line-height:1.04;
    font-weight:700;
    white-space:nowrap;
  }


  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-carousel{
    position:relative;
    width:100%;
    margin:0;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-viewport{
    position:relative;
    width:100%;
    overflow:hidden;
    padding:6px 0 18px;
    touch-action:pan-y pinch-zoom;
    cursor:grab;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-viewport.is-dragging{cursor:grabbing}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-track{
    width:max-content;
    display:flex;
    align-items:stretch;
    gap:12px;
    padding:0 14px;
    transform:translate3d(var(--kbmr-x,0px),0,0);
    will-change:transform;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-card{
    flex:0 0 min(76vw,286px);
    width:min(76vw,286px);
    min-height:228px;
    padding:18px 18px 18px;
    display:flex;
    flex-direction:column;
    text-decoration:none;
    color:var(--rm-ink);
    border:none;
    border-radius:28px;
    background:rgba(255,252,251,.78);
    box-shadow:none;
    -webkit-tap-highlight-color:transparent;
    user-select:none;
    -webkit-user-select:none;
    transition:transform .18s ease;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-viewport.is-dragging .kbmr-card{transition:none}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-card:active{transform:translateY(1px)}
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-card-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stars{
    color:var(--rm-brand);
    font-size:15px;
    line-height:1;
    letter-spacing:.10em;
    white-space:nowrap;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-open{
    width:34px;
    height:34px;
    flex:0 0 34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#6e5962;
    background:rgba(255,255,255,.6);
    box-shadow:inset 0 0 0 1px rgba(86,61,71,.08);
    font:500 15px/1 "Manrope",system-ui,sans-serif;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-card p{
    margin:22px 0 22px;
    color:var(--rm-copy);
    font-family:"Prata",Georgia,serif;
    font-size:clamp(16px,4.65vw,18.6px);
    font-weight:400;
    line-height:1.38;
    letter-spacing:-.016em;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-author{
    margin-top:auto;
    display:block;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-author b{
    display:block;
    color:#4b3b42;
    font-size:12px;
    line-height:1.2;
    font-weight:800;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-author span{
    display:block;
    margin-top:4px;
    color:#9b858d;
    font-size:10px;
    line-height:1.2;
    font-weight:600;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-mobile-footer{
    width:calc(100% - 28px);
    margin:10px auto 0;
    display:flex;
    justify-content:center;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-footer{
    min-height:58px;
    width:auto;
    max-width:100%;
    padding:8px 16px 8px 12px;
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    border-radius:22px;
    color:#33272c;
    background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(248,240,238,.76));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 10px 26px rgba(70,45,54,.04);
    text-decoration:none;
    -webkit-tap-highlight-color:transparent;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-emblem{
    width:76px;
    height:46px;
    flex:0 0 76px;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:12px;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-emblem img{
    width:92px;
    height:auto;
    max-width:none;
    display:block;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-copy{
    min-width:0;
    padding-left:10px;
    border-left:1px solid rgba(142,111,122,.14);
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-copy strong{
    color:#33272c;
    font-size:11px;
    line-height:1.08;
    font-weight:800;
    white-space:nowrap;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-copy small{
    color:#8d7981;
    font-size:8.9px;
    line-height:1.08;
    font-weight:700;
    white-space:nowrap;
  }


  @media(max-width:390px){
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-topline{width:calc(100% - 24px)}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-title{font-size:clamp(31px,10.2vw,41px)}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-overview{gap:5px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat{min-height:35px;padding:5px 8px 5px 7px;gap:5px;border-radius:15px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-icon{width:17px;height:17px;flex-basis:17px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-icon svg{width:16px;height:16px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-copy strong{font-size:11.3px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-copy small{font-size:7.6px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-track{gap:10px;padding:0 12px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-card{flex-basis:min(77vw,282px);width:min(77vw,282px);min-height:220px;padding:17px 17px 17px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-card p{font-size:16.3px;margin:20px 0 20px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-mobile-footer{width:calc(100% - 24px)}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-footer{padding:8px 14px 8px 11px;border-radius:20px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-emblem{width:70px;height:42px;flex-basis:70px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-emblem img{width:86px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-copy strong{font-size:10.5px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-copy small{font-size:8.4px}
  }

  @media(max-width:350px){
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-topline{grid-template-columns:minmax(0,1fr) auto;gap:7px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-overview{gap:4px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-title{font-size:33px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat{min-height:33px;padding:4px 7px;gap:4px;border-radius:14px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-icon{width:15px;height:15px;flex-basis:15px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-icon svg{width:14px;height:14px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-copy strong{font-size:10.6px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-stat-copy small{font-size:7.2px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-emblem{width:66px;height:40px;flex-basis:66px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-emblem img{width:82px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-copy strong{font-size:10px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-award-copy small{font-size:8.2px}
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-card{flex-basis:81vw;width:81vw;min-height:214px}
  }

  @media(prefers-reduced-motion:reduce){
    html#kb-mobile-root-v252.kb-mobile-v252 .kbmr-card{transition:none}
  }
}


/* ===== SOURCE: assets/mobile-page-background-v362.css ===== */
/* KOSHKOBROW V362 — FINAL MOBILE BACKGROUND SEAM REMOVAL
   Keeps one continuous page gradient and removes the last visual band
   below Works caused by legacy Works decoration / outer shadow. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252{
    background:#f4e9e7 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body{
    background-color:#f4e9e7 !important;
    background-image:
      radial-gradient(125% 28% at 14% 5%, rgba(255,255,255,.78) 0%, rgba(255,255,255,.34) 38%, rgba(255,255,255,0) 69%),
      radial-gradient(112% 31% at 92% 31%, rgba(211,157,176,.16) 0%, rgba(211,157,176,.07) 39%, rgba(211,157,176,0) 72%),
      radial-gradient(118% 30% at 7% 63%, rgba(255,255,255,.48) 0%, rgba(255,255,255,.15) 43%, rgba(255,255,255,0) 74%),
      radial-gradient(108% 27% at 92% 88%, rgba(198,145,165,.12) 0%, rgba(198,145,165,.04) 42%, rgba(198,145,165,0) 73%),
      linear-gradient(180deg,
        #f6eeec 0%,
        #f8f2f0 22%,
        #f5ebe9 45%,
        #f8f1ef 67%,
        #f2e5e4 100%) !important;
    background-size:100% 100% !important;
    background-repeat:no-repeat !important;
    background-position:center top !important;
    background-attachment:scroll !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 main#top,
  html#kb-mobile-root-v252.kb-mobile-v252 main#top > section,
  html#kb-mobile-root-v252.kb-mobile-v252 .hero,
  html#kb-mobile-root-v252.kb-mobile-v252 #services,
  html#kb-mobile-root-v252.kb-mobile-v252 #works,
  html#kb-mobile-root-v252.kb-mobile-v252 #reviews,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts.contact-as-footer{
    background-color:transparent !important;
    background-image:none !important;
  }

  /* Kill every legacy full-section decorative layer that can terminate at a section edge. */
  html#kb-mobile-root-v252.kb-mobile-v252 .hero::after,
  html#kb-mobile-root-v252.kb-mobile-v252 #works::before,
  html#kb-mobile-root-v252.kb-mobile-v252 #works::after,
  html#kb-mobile-root-v252.kb-mobile-v252 #reviews::before,
  html#kb-mobile-root-v252.kb-mobile-v252 #reviews::after,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts::before,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts::after{
    content:none !important;
    display:none !important;
    background:none !important;
    box-shadow:none !important;
    filter:none !important;
  }

  /* The last visible horizontal band was the large external shadow below Works. */
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-shell{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.98),
      inset 0 -1px 0 rgba(186,159,169,.18) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #works,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-clean{
    filter:none !important;
  }
}


/* ===== SOURCE: assets/mobile-works-white-frame-v363.css ===== */
/* KOSHKOBROW V363 — MOBILE WORKS PURE WHITE SHELL
   Only the outer mobile Works shell is changed. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-shell{
    background:#fff !important;
    border-color:#fff !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,1),
      inset 0 0 0 1px rgba(255,255,255,1) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-shell::before,
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-shell::after{
    content:none !important;
    display:none !important;
    background:none !important;
    filter:none !important;
  }
}


/* ===== SOURCE: assets/mobile-works-touch-v364.css ===== */
/* KOSHKOBROW V364 — MOBILE WORKS: HORIZONTAL GALLERY + VERTICAL PAGE SCROLL
   Allow the browser to choose the gesture axis inside the Works photo area:
   horizontal => carousel, vertical => page scroll. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 .kbmw-viewport,
  html#kb-mobile-root-v252.kb-mobile-v252 #works .works-carousel-viewport{
    touch-action:pan-x pan-y pinch-zoom !important;
  }
}


/* ===== SOURCE: assets/mobile-contacts-footer-v378.css ===== */
/* ======================================================================
   KOSHKOBROW V378 — CONTACTS CTA PARITY
   Route button uses exactly the same visual treatment as Online booking; all V375 footer geometry is preserved.
   ====================================================================== */

@media (max-width: 1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts.contact-as-footer,
  html#kb-mobile-root-v252.kb-mobile-v252 section#contacts[data-kb-edit-id="contacts"]{
    position: relative !important;
    isolation: isolate !important;
    box-sizing: border-box !important;

    width: calc(100dvw + 6px) !important;
    max-width: calc(100dvw + 6px) !important;
    min-width: calc(100dvw + 6px) !important;
    left: 50% !important;
    right: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;

    margin-top: 30px !important;
    padding-top: 30px !important;
    padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px)) !important;
    border: 0 !important;
    border-radius: 30px 30px 0 0 !important;

    /* V375: same palette, but footer bleeds a few extra pixels past the viewport to remove the left stripe/gutter. */
    background: #4a343c !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.10),
      0 -10px 26px rgba(74,52,60,.14) !important;
    overflow: hidden !important;
    overflow-x: clip !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts.contact-as-footer::before,
  html#kb-mobile-root-v252.kb-mobile-v252 section#contacts[data-kb-edit-id="contacts"]::before{
    content: none !important;
    display: none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-wide"],
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-wide{
    position: relative !important;
    z-index: 1 !important;
    width: auto !important;
    max-width: none !important;
    margin-left: 22px !important;
    margin-right: 22px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-shell,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-shell-v218{
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  /* Title: warm ivory, no muddy shadow. */
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-copy h2.section-display{
    color: #fff7f4 !important;
    opacity: 1 !important;
    text-shadow: none !important;
  }

  /* Map: same white framing language as the information card. */
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .map-wrap{
    background: #ffffff !important;
    border: 2px solid rgba(255,255,255,.96) !important;
    box-shadow: 0 8px 20px rgba(16,9,12,.18) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .map-wrap iframe,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts iframe{
    border: 0 !important;
  }

  /* Main card: actually white, fully opaque, softer premium edge. */
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-list{
    background: #ffffff !important;
    opacity: 1 !important;
    border: 1px solid #f1e7e9 !important;
    box-shadow: 0 8px 20px rgba(16,9,12,.16) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-list .contact-row{
    border-color: #f0e8ea !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-list .contact-row > span,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-list .contact-label{
    color: #a86579 !important;
    opacity: 1 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-list .contact-row > b,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-list .contact-row > strong,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-list a{
    color: #403137 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-row-hours > b.contact-hours,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-row-hours > b.contact-hours > span,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-hours-value"],
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-hours-text"]{
    color: #403137 !important;
    font-family: inherit !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    font-weight: 750 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    text-align: left !important;
    opacity: 1 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-actions,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-actions"]{
    display: grid !important;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
    grid-template-areas:
      "book route"
      "telegram instagram" !important;
    gap: 8px !important;
    margin-top: 12px !important;
  }

  /* V378: Online booking and Route are deliberately identical. */
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-book"],
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-route"]{
    grid-column: auto !important;
    background: #b85d79 !important;
    color: #ffffff !important;
    border: 1px solid #c97991 !important;
    box-shadow: 0 7px 16px rgba(184,93,121,.22) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-book"]{
    grid-area: book !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-route"]{
    grid-area: route !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-telegram"]{
    grid-area: telegram !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-instagram"]{
    grid-area: instagram !important;
  }

  /* Social buttons: pure white, explicitly non-transparent. */
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-telegram"],
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-instagram"]{
    background: #ffffff !important;
    color: #4a343c !important;
    opacity: 1 !important;
    border: 1px solid #f1e7e9 !important;
    box-shadow: 0 7px 16px rgba(16,9,12,.12) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-actions .btn,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-actions .btn:first-child{
    width: 100% !important;
    min-width: 0 !important;
    height: 50px !important;
    min-height: 50px !important;
    padding: 0 8px !important;
    border-radius: 14px !important;
    font-size: 10.5px !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-copyright,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-copyright"]{
    margin-top: 18px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255,247,244,.48) !important;
    box-shadow: none !important;
  }
}

@media (max-width: 350px){
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts [data-kb-edit-id="contact-wide"],
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-wide{
    margin-left: 14px !important;
    margin-right: 14px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-actions .btn,
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts .contact-actions .btn:first-child{
    font-size: 9.5px !important;
    padding-inline: 6px !important;
  }
}


/* ===== SOURCE: assets/mobile-booking-fullscreen-v377.css ===== */
/* ======================================================================
   KOSHKOBROW V376 — MOBILE BOOKING TRUE FULLSCREEN
   - Booking always fills the whole mobile viewport on every phone size.
   - Site header stays behind the booking layer.
   - Bottom action bar is fully opaque and covers the viewport edge;
     no see-through seam/text at the bottom.
   ====================================================================== */

@media (max-width: 1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal.modal,
  html#kb-mobile-root-v252.kb-mobile-v252 .modal#bookingModal{
    position: fixed !important;
    inset: 0 !important;
    z-index: 10000 !important;
    width: 100dvw !important;
    max-width: 100dvw !important;
    min-width: 100dvw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    overflow: hidden !important;
    background: #fbf7f5 !important;
    isolation: isolate !important;
  }

  /* Fallback for browsers where dynamic viewport units are imperfect. */
  @supports not (height: 100dvh){
    html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal.modal,
    html#kb-mobile-root-v252.kb-mobile-v252 .modal#bookingModal{
      height: 100vh !important;
      min-height: 100vh !important;
      max-height: 100vh !important;
    }
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal.modal.open{
    display: block !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .modal-backdrop{
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: #fbf7f5 !important;
    opacity: 1 !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    pointer-events: none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .modal-panel{
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 14px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fbf7f5 !important;
    box-shadow: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    transform: none !important;
  }

  /* Header of the booking itself starts at the very top and covers the site header. */
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .modal-head{
    top: 0 !important;
    margin: 0 -14px !important;
    padding:
      calc(12px + env(safe-area-inset-top, 0px))
      14px
      10px !important;
    min-height: calc(67px + env(safe-area-inset-top, 0px)) !important;
    border-radius: 0 !important;
    background: #fbf7f5 !important;
    box-shadow: 0 1px 0 rgba(74,47,57,.08) !important;
  }

  /* Leave guaranteed room for the fixed bottom controls. */
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-form{
    box-sizing: border-box !important;
    padding: 15px 0 calc(92px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* True opaque viewport-bottom bar: no transparent seam and no text showing through. */
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-nav{
    position: fixed !important;
    z-index: 10003 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100dvw !important;
    max-width: 100dvw !important;
    min-height: calc(68px + env(safe-area-inset-bottom, 0px)) !important;
    margin: 0 !important;
    padding:
      9px
      14px
      calc(9px + env(safe-area-inset-bottom, 0px)) !important;
    box-sizing: border-box !important;
    background: #fbf7f5 !important;
    opacity: 1 !important;
    border-top: 1px solid rgba(74,47,57,.10) !important;
    border-radius: 0 !important;
    box-shadow: 0 -10px 24px rgba(49,36,41,.08) !important;
    overflow: hidden !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  /* Paint a few extra pixels below the bar for mobile browser rounding/safe-area seams. */
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-nav::after{
    content: "" !important;
    position: absolute !important;
    z-index: -1 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: -8px !important;
    height: 12px !important;
    background: #fbf7f5 !important;
    pointer-events: none !important;
  }
}

/* ======================================================================
   KOSHKOBROW V377 — BOOKING BOTTOM BAR + CATEGORY HEADER FLOW
   1) Bottom navigation is anchored to the actual modal viewport edge.
   2) Category descriptors stay right-aligned and wrap safely on narrow phones.
   ====================================================================== */

@media (max-width: 1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .modal-panel{
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .modal-head{
    position: relative !important;
    z-index: 5 !important;
    flex: 0 0 auto !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-form{
    position: static !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    padding-top: 15px !important;
    padding-bottom: calc(94px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* Anchor the action bar to the modal-panel, not to the scrolled form content. */
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-nav{
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 10004 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 9px 14px calc(9px + env(safe-area-inset-bottom, 0px)) !important;
    min-height: calc(68px + env(safe-area-inset-bottom, 0px)) !important;
    background: #fbf7f5 !important;
    border-top: 1px solid rgba(74,47,57,.10) !important;
    box-shadow: 0 -10px 24px rgba(49,36,41,.08) !important;
    opacity: 1 !important;
    transform: none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-nav::before{
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: -24px !important;
    height: 32px !important;
    background: #fbf7f5 !important;
    pointer-events: none !important;
  }

  /* Category line: title left, descriptor right. */
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-category-head{
    align-items: start !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-category-head > div{
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    column-gap: 10px !important;
    row-gap: 2px !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-category-head strong{
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    line-height: 1.2 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-category-head small{
    display: block !important;
    flex: 1 1 145px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 0 0 auto !important;
    padding-top: 1px !important;
    text-align: right !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    line-height: 1.3 !important;
  }
}

/* Narrow phones: give the descriptor priority to wrap cleanly instead of colliding. */
@media (max-width: 390px){
  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-category-head > div{
    column-gap: 8px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 #bookingModal .booking-category-head small{
    flex-basis: 125px !important;
    font-size: 8.5px !important;
  }
}


/* ===== SOURCE: assets/mobile-scrollbar-hide-v386.css ===== */
/* ======================================================================
   KOSHKOBROW V384 — MOBILE SCROLLBAR VISIBILITY FIX
   Hide scrollbar chrome on phones while preserving touch/wheel scrolling.
   Applies to the page, booking modal and all internal mobile scrollers.
   ====================================================================== */
@media (max-width: 1279px) {
  html,
  body,
  html * {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar,
  html *::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
    background: transparent !important;
  }

  /* Do not reserve a native scrollbar gutter on narrow/mobile layouts. */
  html,
  body {
    scrollbar-gutter: auto !important;
  }
}


/* ===== SOURCE: assets/mobile-lightbox-v431.css ===== */
/* ======================================================================
   KOSHKOBROW V404 — COMPACT MOBILE LIGHTBOX FOOTER
   Mobile only. Desktop lightbox remains unchanged.
   ====================================================================== */
@media (max-width: 1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox,
  html.kb-mobile-v252 .works-lightbox,
  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox-backdrop,
  html.kb-mobile-v252 .works-lightbox-backdrop{
    background:#1d1519 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open .works-lightbox-panel,
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-panel{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    padding:calc(74px + env(safe-area-inset-top,0px)) 20px calc(126px + env(safe-area-inset-bottom,0px)) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:transparent !important;
    overflow:hidden !important;
    transform:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open .works-lightbox-panel > img,
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-panel > img{
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:calc(var(--kb-vh,100dvh) - 220px) !important;
    margin:0 auto !important;
    object-fit:contain !important;
    object-position:center !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-radius:20px !important;
    background:#261d21 !important;
    box-shadow:0 20px 56px rgba(0,0,0,.26) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open .works-lightbox-close,
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-close{
    top:calc(14px + env(safe-area-inset-top,0px)) !important;
    right:14px !important;
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    min-height:48px !important;
    border-radius:15px !important;
    border:1px solid rgba(255,255,255,.13) !important;
    background:rgba(54,39,46,.92) !important;
    box-shadow:0 10px 28px rgba(0,0,0,.14) !important;
  }

  /* Footer panel: arrows are visually inside it, on opposite sides. */
  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open .works-lightbox-meta,
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-meta{
    position:fixed !important;
    z-index:5 !important;
    left:12px !important;
    right:12px !important;
    bottom:calc(10px + env(safe-area-inset-bottom,0px)) !important;
    width:auto !important;
    min-width:0 !important;
    height:76px !important;
    min-height:76px !important;
    max-height:76px !important;
    margin:0 !important;
    padding:8px 58px 7px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    gap:2px !important;
    overflow:hidden !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-radius:18px !important;
    background:rgba(46,33,39,.97) !important;
    color:#fff !important;
    box-shadow:0 12px 30px rgba(0,0,0,.18) !important;
    -webkit-backdrop-filter:blur(14px) saturate(115%) !important;
    backdrop-filter:blur(14px) saturate(115%) !important;
    transform:none !important;
    translate:none !important;
    box-sizing:border-box !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open [data-work-count],
  html.kb-mobile-v252 .works-lightbox.open [data-work-count]{
    position:absolute !important;
    top:7px !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    width:auto !important;
    max-width:72px !important;
    margin:0 !important;
    color:rgba(255,255,255,.42) !important;
    font-size:8px !important;
    line-height:1 !important;
    font-weight:800 !important;
    letter-spacing:.10em !important;
    white-space:nowrap !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open .works-lightbox-category,
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-category{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:7px 0 0 !important;
    color:#edc4d4 !important;
    font-size:9px !important;
    line-height:1.12 !important;
    font-weight:850 !important;
    letter-spacing:.10em !important;
    text-transform:uppercase !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open [data-work-caption],
  html.kb-mobile-v252 .works-lightbox.open [data-work-caption]{
    display:-webkit-box !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    color:#fff !important;
    font-size:10.5px !important;
    line-height:1.18 !important;
    font-weight:760 !important;
    white-space:normal !important;
    overflow:hidden !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
    text-align:left !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open .works-lightbox-nav,
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-nav{
    position:fixed !important;
    z-index:7 !important;
    top:auto !important;
    bottom:calc(27px + env(safe-area-inset-bottom,0px)) !important;
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    margin:0 !important;
    padding:0 !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-radius:14px !important;
    background:rgba(56,40,47,.98) !important;
    color:#fff !important;
    box-shadow:0 8px 20px rgba(0,0,0,.17) !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    transform:none !important;
    translate:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open .works-lightbox-prev,
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-prev{
    left:20px !important;
    right:auto !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .works-lightbox.open .works-lightbox-next,
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-next{
    left:auto !important;
    right:20px !important;
  }
}

@media (max-width:350px){
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-panel{
    padding-left:14px !important;
    padding-right:14px !important;
  }
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-meta{
    left:8px !important;
    right:8px !important;
    padding-left:54px !important;
    padding-right:54px !important;
  }
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-prev{left:14px !important;}
  html.kb-mobile-v252 .works-lightbox.open .works-lightbox-next{right:14px !important;}
  html.kb-mobile-v252 .works-lightbox.open [data-work-caption]{font-size:10.5px !important;}
}

/* ======================================================================
   V426 — RUNTIME SAFETY ONLY
   This block does NOT redesign the V404 lightbox. It only outranks stale
   published editor geometry/visibility so the already-correct V404 viewer
   can actually paint its photo/text/buttons on current editor state.
   ====================================================================== */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open,
  html.kb-mobile-v252 body .works-lightbox.open{
    z-index:2147483000 !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-backdrop,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-backdrop{
    z-index:1 !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    background:#1d1519 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-panel,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-panel{
    position:absolute !important;
    inset:0 !important;
    z-index:2 !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    padding:calc(74px + env(safe-area-inset-top,0px)) 20px calc(126px + env(safe-area-inset-bottom,0px)) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:none !important;
    background:transparent !important;
    overflow:hidden !important;
    transform:none !important;
    translate:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-panel > img[data-work-image],
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-panel > img[data-work-image]{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    position:relative !important;
    z-index:3 !important;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:calc(var(--kb-vh,100dvh) - 220px) !important;
    margin:0 auto !important;
    object-fit:contain !important;
    object-position:center !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-radius:20px !important;
    background:#261d21 !important;
    box-shadow:0 20px 56px rgba(0,0,0,.26) !important;
    transform:none !important;
    translate:none !important;
    pointer-events:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-meta,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-meta{
    position:fixed !important;
    z-index:20 !important;
    left:12px !important;
    right:12px !important;
    bottom:calc(10px + env(safe-area-inset-bottom,0px)) !important;
    width:auto !important;
    min-width:0 !important;
    height:76px !important;
    min-height:76px !important;
    max-height:76px !important;
    margin:0 !important;
    padding:8px 58px 7px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    gap:2px !important;
    overflow:hidden !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:none !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-radius:18px !important;
    background:rgba(46,33,39,.97) !important;
    color:#fff !important;
    box-shadow:0 12px 30px rgba(0,0,0,.18) !important;
    -webkit-backdrop-filter:blur(14px) saturate(115%) !important;
    backdrop-filter:blur(14px) saturate(115%) !important;
    transform:none !important;
    translate:none !important;
    box-sizing:border-box !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open [data-work-count],
  html.kb-mobile-v252 body .works-lightbox.open [data-work-count],
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-category,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-category,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open [data-work-caption],
  html.kb-mobile-v252 body .works-lightbox.open [data-work-caption]{
    visibility:visible !important;
    opacity:1 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav{
    position:fixed !important;
    z-index:30 !important;
    top:auto !important;
    bottom:calc(27px + env(safe-area-inset-bottom,0px)) !important;
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    margin:0 !important;
    padding:0 !important;
    display:grid !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-radius:14px !important;
    background:rgba(56,40,47,.98) !important;
    color:#fff !important;
    box-shadow:0 8px 20px rgba(0,0,0,.17) !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    transform:none !important;
    translate:none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-prev,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-prev{left:20px !important;right:auto !important;}
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-next,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-next{left:auto !important;right:20px !important;}
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close{
    z-index:40 !important;
    display:grid !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }
}

@media (max-width:350px){
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-panel{padding-left:14px !important;padding-right:14px !important;}
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-meta{left:8px !important;right:8px !important;padding-left:54px !important;padding-right:54px !important;}
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-prev{left:14px !important;}
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-next{right:14px !important;}
}


/* ======================================================================
   KOSHKOBROW V428 — MOBILE GALLERY CONTROL CORRECTION
   1) Lightbox arrows/close: remove inherited glossy pseudo layers.
   2) Main gallery controls: use the desktop control composition on phone.
   Desktop rules themselves remain untouched.
   ====================================================================== */
@media (max-width:1279px){
  /* Plain mobile lightbox controls — no white glare, fake bevel or press shine. */
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav::before,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav::after,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close::before,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close::after,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav::before,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav::after,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close::before,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close::after{
    content:none !important;
    display:none !important;
    background:none !important;
    box-shadow:none !important;
    filter:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav{
    background:rgba(56,40,47,.98) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    box-shadow:none !important;
    filter:none !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    transform:none !important;
    transition:background .16s ease,border-color .16s ease !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close{
    background:rgba(54,39,46,.92) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    box-shadow:none !important;
    filter:none !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    transform:none !important;
    transition:background .16s ease,border-color .16s ease !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav:hover,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav:focus-visible,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav:active,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav:hover,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav:focus-visible,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-nav:active{
    background:rgba(56,40,47,.98) !important;
    border-color:rgba(255,255,255,.18) !important;
    color:#fff !important;
    box-shadow:none !important;
    transform:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close:hover,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close:focus-visible,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close:active,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close:hover,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close:focus-visible,
  html.kb-mobile-v252 body .works-lightbox.open .works-lightbox-close:active{
    background:rgba(54,39,46,.92) !important;
    border-color:rgba(255,255,255,.18) !important;
    color:#fff !important;
    box-shadow:none !important;
    transform:none !important;
  }

  /* Main "Мои работы" controls: desktop composition, not the stretched
     three-column mobile bar. */
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-v115-controls,
  html.kb-mobile-v252 body .works-v115-controls{
    width:auto !important;
    max-width:100% !important;
    margin:18px auto 0 !important;
    padding:0 !important;
    display:flex !important;
    grid-template-columns:none !important;
    align-items:center !important;
    justify-content:center !important;
    gap:14px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-v115-nav,
  html.kb-mobile-v252 body .works-v115-nav{
    position:relative !important;
    flex:0 0 auto !important;
    width:62px !important;
    height:62px !important;
    min-width:62px !important;
    min-height:62px !important;
    padding:0 !important;
    border:1px solid var(--kb-arrow-border,rgba(131,102,113,.18)) !important;
    border-radius:22px !important;
    background:linear-gradient(180deg,var(--kb-arrow-bg-top,rgba(255,255,255,.82)),var(--kb-arrow-bg-bottom,rgba(241,234,231,.94))) !important;
    color:var(--kb-arrow-ink,#5a4650) !important;
    box-shadow:var(--kb-arrow-shadow,0 18px 36px rgba(63,41,51,.14),0 4px 14px rgba(63,41,51,.08),inset 0 1px 0 rgba(255,255,255,.92)) !important;
    -webkit-backdrop-filter:blur(16px) saturate(1.04) !important;
    backdrop-filter:blur(16px) saturate(1.04) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-v115-nav .works-arrow-icon svg,
  html.kb-mobile-v252 body .works-v115-nav .works-arrow-icon svg{
    width:20px !important;
    height:20px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-status,
  html.kb-mobile-v252 body .works-carousel-status{
    position:relative !important;
    z-index:7 !important;
    width:max-content !important;
    max-width:calc(100% - 24px) !important;
    min-width:0 !important;
    min-height:38px !important;
    margin:0 !important;
    padding:6px 14px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:10px !important;
    border:1px solid rgba(255,255,255,.84) !important;
    border-radius:999px !important;
    background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(245,231,236,.95)) !important;
    box-shadow:0 12px 28px rgba(78,46,58,.10),inset 0 1px 0 rgba(255,255,255,.96) !important;
    -webkit-backdrop-filter:blur(16px) saturate(1.2) !important;
    backdrop-filter:blur(16px) saturate(1.2) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-count,
  html.kb-mobile-v252 body .works-carousel-count{
    display:inline-flex !important;
    align-items:baseline !important;
    gap:5px !important;
    color:#75495c !important;
    font-family:Georgia,"Times New Roman",serif !important;
    letter-spacing:.02em !important;
    line-height:1 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-count b,
  html.kb-mobile-v252 body .works-carousel-count b{
    font-size:15px !important;
    font-weight:700 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-count i,
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-count em,
  html.kb-mobile-v252 body .works-carousel-count i,
  html.kb-mobile-v252 body .works-carousel-count em{
    color:rgba(86,54,67,.52) !important;
    font-size:10px !important;
    font-style:normal !important;
    font-weight:700 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-dots,
  html.kb-mobile-v252 body .works-carousel-dots{
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-dots i,
  html.kb-mobile-v252 body .works-carousel-dots i{
    display:block !important;
    width:6px !important;
    height:6px !important;
    border-radius:999px !important;
    background:rgba(118,70,88,.18) !important;
    box-shadow:inset 0 1px 1px rgba(255,255,255,.42) !important;
    transition:width .28s ease,background .28s ease,box-shadow .28s ease !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-dots i.is-active,
  html.kb-mobile-v252 body .works-carousel-dots i.is-active{
    width:20px !important;
    background:linear-gradient(90deg,#9e5874,#d182a2) !important;
    box-shadow:0 0 10px rgba(193,94,134,.18) !important;
  }
}

@media (max-width:380px){
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-v115-controls,
  html.kb-mobile-v252 body .works-v115-controls{
    gap:10px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-v115-nav,
  html.kb-mobile-v252 body .works-v115-nav{
    width:54px !important;
    height:54px !important;
    min-width:54px !important;
    min-height:54px !important;
    border-radius:19px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-status,
  html.kb-mobile-v252 body .works-carousel-status{
    padding-left:11px !important;
    padding-right:11px !important;
    gap:8px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .works-carousel-dots,
  html.kb-mobile-v252 body .works-carousel-dots{
    gap:4px !important;
  }
}


/* ===========================================================
   V428 — VISIBLE MOBILE GALLERY CONTROLS = DESKTOP COMPOSITION
   V427 targeted .works-v115-* (hidden on phone). The visible phone gallery is
   .kbmw-*. These rules intentionally mirror the current PC control row.
   =========================================================== */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-controls,
  html.kb-mobile-v252 body .kbmw-controls{
    width:auto !important;
    max-width:100% !important;
    margin:18px auto 0 !important;
    padding:0 !important;
    display:flex !important;
    grid-template-columns:none !important;
    align-items:center !important;
    justify-content:center !important;
    gap:14px !important;
    position:relative !important;
    z-index:8 !important;
    pointer-events:auto !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav,
  html.kb-mobile-v252 body .kbmw-nav{
    appearance:none !important;
    -webkit-appearance:none !important;
    position:relative !important;
    z-index:9 !important;
    flex:0 0 auto !important;
    width:62px !important;
    height:62px !important;
    min-width:62px !important;
    min-height:62px !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    border:1px solid var(--kb-arrow-border,rgba(131,102,113,.18)) !important;
    border-radius:22px !important;
    background:linear-gradient(180deg,var(--kb-arrow-bg-top,rgba(255,255,255,.82)),var(--kb-arrow-bg-bottom,rgba(241,234,231,.94))) !important;
    color:var(--kb-arrow-ink,#5a4650) !important;
    box-shadow:var(--kb-arrow-shadow,0 18px 36px rgba(63,41,51,.14),0 4px 14px rgba(63,41,51,.08),inset 0 1px 0 rgba(255,255,255,.92)) !important;
    -webkit-backdrop-filter:blur(16px) saturate(1.04) !important;
    backdrop-filter:blur(16px) saturate(1.04) !important;
    overflow:hidden !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    -webkit-tap-highlight-color:transparent !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav::before,
  html.kb-mobile-v252 body .kbmw-nav::before{
    content:"" !important;
    position:absolute !important;
    inset:1px !important;
    border-radius:inherit !important;
    background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.12) 44%,rgba(255,255,255,0) 70%),radial-gradient(circle at 24% 20%,rgba(255,255,255,.65),transparent 36%) !important;
    pointer-events:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav::after,
  html.kb-mobile-v252 body .kbmw-nav::after{
    content:"" !important;
    position:absolute !important;
    inset:auto 12px 8px !important;
    height:10px !important;
    border-radius:999px !important;
    background:linear-gradient(180deg,rgba(123,90,102,.10),rgba(123,90,102,0)) !important;
    filter:blur(5px) !important;
    pointer-events:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav svg,
  html.kb-mobile-v252 body .kbmw-nav svg{
    position:relative !important;
    z-index:2 !important;
    width:20px !important;
    height:20px !important;
    stroke:currentColor !important;
    filter:drop-shadow(0 1px 0 rgba(255,255,255,.35)) !important;
    pointer-events:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-status,
  html.kb-mobile-v252 body .kbmw-status{
    position:relative !important;
    z-index:9 !important;
    flex:0 1 auto !important;
    width:max-content !important;
    max-width:calc(100vw - 180px) !important;
    min-width:0 !important;
    min-height:38px !important;
    margin:0 !important;
    padding:6px 14px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:10px !important;
    border:1px solid rgba(255,255,255,.84) !important;
    border-radius:999px !important;
    background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(245,231,236,.95)) !important;
    box-shadow:0 12px 28px rgba(78,46,58,.10),inset 0 1px 0 rgba(255,255,255,.96) !important;
    -webkit-backdrop-filter:blur(16px) saturate(1.2) !important;
    backdrop-filter:blur(16px) saturate(1.2) !important;
    pointer-events:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-count,
  html.kb-mobile-v252 body .kbmw-count{
    display:inline-flex !important;
    align-items:baseline !important;
    gap:5px !important;
    flex:0 0 auto !important;
    color:#75495c !important;
    font-family:Georgia,"Times New Roman",serif !important;
    font-size:15px !important;
    font-weight:700 !important;
    letter-spacing:.02em !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-count b,
  html.kb-mobile-v252 body .kbmw-count b{
    font:inherit !important;
    color:inherit !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-count-slash,
  html.kb-mobile-v252 body .kbmw-count-slash{
    color:rgba(86,54,67,.52) !important;
    font-size:10px !important;
    font-weight:700 !important;
    opacity:1 !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dots,
  html.kb-mobile-v252 body .kbmw-dots{
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    overflow:visible !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dot,
  html.kb-mobile-v252 body .kbmw-dot{
    display:block !important;
    width:6px !important;
    height:6px !important;
    flex:0 0 6px !important;
    border-radius:999px !important;
    background:rgba(118,70,88,.18) !important;
    box-shadow:inset 0 1px 1px rgba(255,255,255,.42) !important;
    transition:width .28s ease,flex-basis .28s ease,background .28s ease,box-shadow .28s ease !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dot.is-active,
  html.kb-mobile-v252 body .kbmw-dot.is-active{
    width:20px !important;
    flex-basis:20px !important;
    background:linear-gradient(90deg,#9e5874,#d182a2) !important;
    box-shadow:0 0 10px rgba(193,94,134,.18) !important;
  }
}

@media (max-width:380px){
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-controls,
  html.kb-mobile-v252 body .kbmw-controls{gap:10px !important;margin-top:14px !important;}
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav,
  html.kb-mobile-v252 body .kbmw-nav{
    width:54px !important;height:54px !important;min-width:54px !important;min-height:54px !important;border-radius:19px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-status,
  html.kb-mobile-v252 body .kbmw-status{max-width:calc(100vw - 148px) !important;padding-left:11px !important;padding-right:11px !important;gap:8px !important;}
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dots,
  html.kb-mobile-v252 body .kbmw-dots{gap:4px !important;}
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dot,
  html.kb-mobile-v252 body .kbmw-dot{width:5px !important;height:5px !important;flex-basis:5px !important;}
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dot.is-active,
  html.kb-mobile-v252 body .kbmw-dot.is-active{width:16px !important;flex-basis:16px !important;}
}

/* ===========================================================
   KOSHKOBROW V429 — COMPACT PHONE-SCALE GALLERY CONTROLS
   Keeps V428 loop/runtime intact. Only scales the visible KBMW
   control row down for real phone proportions.
   =========================================================== */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-controls,
  html.kb-mobile-v252 body .kbmw-controls{
    width:auto !important;
    max-width:100% !important;
    margin:12px auto 0 !important;
    gap:8px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav,
  html.kb-mobile-v252 body .kbmw-nav{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    border-radius:14px !important;
    box-shadow:0 8px 18px rgba(63,41,51,.08),0 2px 7px rgba(63,41,51,.05),inset 0 1px 0 rgba(255,255,255,.90) !important;
    -webkit-backdrop-filter:blur(10px) saturate(1.03) !important;
    backdrop-filter:blur(10px) saturate(1.03) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav::after,
  html.kb-mobile-v252 body .kbmw-nav::after{
    inset:auto 9px 6px !important;
    height:7px !important;
    filter:blur(4px) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav svg,
  html.kb-mobile-v252 body .kbmw-nav svg{
    width:16px !important;
    height:16px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-status,
  html.kb-mobile-v252 body .kbmw-status{
    flex:0 1 auto !important;
    width:max-content !important;
    max-width:calc(100vw - 122px) !important;
    min-height:34px !important;
    padding:4px 10px !important;
    gap:7px !important;
    box-shadow:0 7px 16px rgba(78,46,58,.07),inset 0 1px 0 rgba(255,255,255,.94) !important;
    -webkit-backdrop-filter:blur(10px) saturate(1.12) !important;
    backdrop-filter:blur(10px) saturate(1.12) !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-count,
  html.kb-mobile-v252 body .kbmw-count{
    gap:4px !important;
    font-size:12px !important;
    letter-spacing:.035em !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-count-slash,
  html.kb-mobile-v252 body .kbmw-count-slash{
    font-size:9px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dots,
  html.kb-mobile-v252 body .kbmw-dots{
    gap:4px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dot,
  html.kb-mobile-v252 body .kbmw-dot{
    width:4px !important;
    height:4px !important;
    flex-basis:4px !important;
    box-shadow:none !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dot.is-active,
  html.kb-mobile-v252 body .kbmw-dot.is-active{
    width:14px !important;
    flex-basis:14px !important;
    box-shadow:0 0 7px rgba(193,94,134,.13) !important;
  }
}

@media (max-width:350px){
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-controls,
  html.kb-mobile-v252 body .kbmw-controls{
    gap:7px !important;
    margin-top:10px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-nav,
  html.kb-mobile-v252 body .kbmw-nav{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    border-radius:13px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-status,
  html.kb-mobile-v252 body .kbmw-status{
    max-width:calc(100vw - 112px) !important;
    min-height:32px !important;
    padding:4px 8px !important;
    gap:6px !important;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-count,
  html.kb-mobile-v252 body .kbmw-count{font-size:11px !important;}

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dots,
  html.kb-mobile-v252 body .kbmw-dots{gap:3px !important;}

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dot,
  html.kb-mobile-v252 body .kbmw-dot{width:3.5px !important;height:3.5px !important;flex-basis:3.5px !important;}

  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-dot.is-active,
  html.kb-mobile-v252 body .kbmw-dot.is-active{width:12px !important;flex-basis:12px !important;}
}

/* ===========================================================
   KOSHKOBROW V431 — STATUS FRAME MATCHES NAV BUTTON
   Only the visible mobile KBMW status frame is changed.
   V429 sizing and V428 circular runtime remain untouched.
   =========================================================== */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 body .kbmw-status,
  html.kb-mobile-v252 body .kbmw-status{
    border:1px solid rgba(255,255,255,.90) !important;
    border-radius:14px !important;
    background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(246,237,235,.76)) !important;
    box-shadow:0 8px 18px rgba(63,41,51,.08),0 2px 7px rgba(63,41,51,.05),inset 0 1px 0 rgba(255,255,255,.90) !important;
  }
}


/* ===== SOURCE: assets/desktop-v432.css ===== */
/* ===========================================================
   KOSHKOBROW V432 — DESKTOP GALLERY COUNTER + HERO FACT CARDS
   Desktop only. Mobile layout/styles are intentionally untouched.
   =========================================================== */

@media (min-width:1280px) {
  /* Desktop carousel counter: one numeral system, one baseline, no visual jump. */
  .works-carousel-count {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    min-height: 16px !important;
    color: #75495c !important;
    font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    font-variant-numeric: tabular-nums lining-nums !important;
    letter-spacing: .04em !important;
    line-height: 16px !important;
    white-space: nowrap !important;
  }

  .works-carousel-count b,
  .works-carousel-count i,
  .works-carousel-count em {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    font: inherit !important;
    line-height: 16px !important;
    vertical-align: middle !important;
  }

  .works-carousel-count b,
  .works-carousel-count em {
    min-width: 8px !important;
    color: #75495c !important;
  }

  .works-carousel-count i {
    min-width: 5px !important;
    color: rgba(86,54,67,.48) !important;
    font-style: normal !important;
    font-weight: 700 !important;
  }

  /* Desktop hero facts: same framed-card language as the mobile version. */
  #top .hero-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  #top .hero-fact {
    box-sizing: border-box !important;
    min-width: 0 !important;
    min-height: 84px !important;
    padding: 12px !important;
    border: 1px solid rgba(71,48,58,.12) !important;
    border-radius: 14px !important;
    background: rgba(255,250,248,.56) !important;
    box-shadow: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }

  #top .hero-fact b {
    display: block !important;
    margin: 0 !important;
    color: #3f3036 !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
  }

  #top .hero-fact span {
    display: block !important;
    margin-top: 5px !important;
    color: #7d6c72 !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
  }
}


/* ===== SOURCE: assets/desktop-v433.css ===== */
/* ===========================================================
   KOSHKOBROW V433 — DESKTOP COUNTER MOBILE TYPE + HERO FACT UX
   Desktop only. Mobile is intentionally untouched.
   =========================================================== */

@media (min-width:1280px){
  /* 1) Desktop gallery counter: exact typographic language of the compact mobile counter. */
  .works-carousel-count{
    display:inline-flex!important;
    align-items:baseline!important;
    gap:4px!important;
    min-height:0!important;
    color:#75495c!important;
    font-family:Georgia,"Times New Roman",serif!important;
    font-size:12px!important;
    font-weight:700!important;
    font-variant-numeric:normal!important;
    letter-spacing:.035em!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .works-carousel-count b,
  .works-carousel-count em{
    display:inline!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:inherit!important;
    font:inherit!important;
    line-height:1!important;
    vertical-align:baseline!important;
  }
  .works-carousel-count i{
    display:inline!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:rgba(86,54,67,.52)!important;
    font-family:Georgia,"Times New Roman",serif!important;
    font-size:9px!important;
    font-style:normal!important;
    font-weight:700!important;
    letter-spacing:.02em!important;
    line-height:1!important;
    vertical-align:baseline!important;
  }

  /* 2) Hero facts: keep the user's published geometry, improve only information hierarchy. */
  #top .hero-fact{
    position:relative!important;
    overflow:hidden!important;
    isolation:isolate!important;
    border:1px solid rgba(82,55,65,.105)!important;
    border-radius:16px!important;
    background:
      radial-gradient(circle at 92% 12%,rgba(210,153,176,.10),transparent 34%),
      linear-gradient(145deg,rgba(255,252,250,.72),rgba(249,241,239,.58))!important;
    box-shadow:
      0 8px 22px rgba(69,41,51,.035),
      inset 0 1px 0 rgba(255,255,255,.82)!important;
  }

  #top .hero-fact::after{
    position:absolute;
    z-index:0;
    top:12px;
    right:13px;
    padding:5px 7px 4px;
    border:1px solid rgba(117,73,92,.085);
    border-radius:999px;
    background:rgba(255,255,255,.40);
    color:rgba(117,73,92,.56);
    font:700 7.5px/1 "Manrope",system-ui,sans-serif;
    letter-spacing:.12em;
    text-transform:uppercase;
    pointer-events:none;
  }
  #top .hero-fact:nth-child(1)::after{content:"Яндекс";}
  #top .hero-fact:nth-child(2)::after{content:"Студия";}
  #top .hero-fact:nth-child(3)::after{content:"Опыт";}

  #top .hero-fact b,
  #top .hero-fact span{
    position:relative!important;
    z-index:1!important;
  }

  #top .hero-fact b{
    color:#49363e!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:15px!important;
    font-weight:750!important;
    line-height:1.12!important;
    letter-spacing:-.02em!important;
  }
  #top .hero-fact span{
    color:#88777d!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:11px!important;
    font-weight:500!important;
    line-height:1.32!important;
    letter-spacing:0!important;
  }

  /* Rating + review count belong together instead of occupying two separate facts. */
  #top .hero-fact:nth-child(1) b::after{
    content:"★★★★★";
    display:inline-block;
    margin-left:8px;
    color:#b96f89;
    font:700 8px/1 "Manrope",system-ui,sans-serif;
    letter-spacing:1px;
    vertical-align:1px;
  }
  #top .hero-fact:nth-child(1) span,
  #top .hero-fact:nth-child(3) b,
  #top .hero-fact:nth-child(3) span{
    font-size:0!important;
  }
  #top .hero-fact:nth-child(1) span::before{
    content:"74 отзыва в Яндекс Картах";
    font:500 11px/1.32 "Manrope",system-ui,sans-serif;
    letter-spacing:0;
  }
  #top .hero-fact:nth-child(3) b::before{
    content:"с 2019";
    color:#49363e;
    font:750 15px/1.12 "Manrope",system-ui,sans-serif;
    letter-spacing:-.02em;
  }
  #top .hero-fact:nth-child(3) span::before{
    content:"в профессии";
    color:#88777d;
    font:500 11px/1.32 "Manrope",system-ui,sans-serif;
    letter-spacing:0;
  }
}


/* ===== SOURCE: assets/hero-facts-v435.css ===== */
/* ===========================================================
   KOSHKOBROW V435 — REAL EDITABLE HERO FACTS FIX
   Direct real DOM children; desktop + mobile; editor-safe.
   =========================================================== */

/* V433 used pseudo-content. Kill it decisively: V435 contains only real text. */
@media (min-width:1280px){
  #top .hero-fact::after,
  #top .hero-fact:nth-child(1) b::after,
  #top .hero-fact:nth-child(1) span::before,
  #top .hero-fact:nth-child(3) b::before,
  #top .hero-fact:nth-child(3) span::before{
    content:none!important;
    display:none!important;
  }

  #top .hero-fact[data-kb-edit-id="home-hero-fact-038"],
  #top .hero-fact[data-kb-edit-id="home-hero-fact-041"],
  #top .hero-fact[data-kb-edit-id="home-hero-fact-044"]{
    position:relative!important;
    overflow:visible!important;
    display:grid!important;
    grid-template-columns:auto auto minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:7px!important;
    row-gap:7px!important;
    align-content:start!important;
    align-items:baseline!important;
    justify-items:start!important;
  }

  #top .hero-fact .hero-fact-tag-v435{
    position:absolute!important;
    z-index:6!important;
    top:11px!important;
    right:12px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:5px 7px 4px!important;
    border:1px solid rgba(117,73,92,.085)!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.42)!important;
    color:rgba(117,73,92,.58)!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:7.5px!important;
    font-style:normal!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:.12em!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    pointer-events:auto!important;
  }

  #top .hero-fact .hero-fact-value-v435{
    grid-column:1!important;
    grid-row:1!important;
    position:relative!important;
    z-index:5!important;
    display:block!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:#49363e!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:15px!important;
    font-style:normal!important;
    font-weight:750!important;
    line-height:1.12!important;
    letter-spacing:-.02em!important;
    white-space:nowrap!important;
    pointer-events:auto!important;
  }

  #top .hero-fact .hero-fact-stars-v435{
    grid-column:2!important;
    grid-row:1!important;
    position:relative!important;
    z-index:5!important;
    display:block!important;
    align-self:center!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:#b96f89!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:8px!important;
    font-style:normal!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:1px!important;
    white-space:nowrap!important;
    pointer-events:auto!important;
  }

  #top .hero-fact .hero-fact-desc-v435{
    grid-column:1 / -1!important;
    grid-row:2!important;
    position:relative!important;
    z-index:5!important;
    display:block!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:#88777d!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:11px!important;
    font-style:normal!important;
    font-weight:500!important;
    line-height:1.32!important;
    letter-spacing:0!important;
    white-space:normal!important;
    pointer-events:auto!important;
  }

  /* Beat V433 nth-child font-size:0 rules with higher specificity. */
  #top .hero-fact:nth-child(1) .hero-fact-tag-v435{font-size:7.5px!important;}
  #top .hero-fact:nth-child(1) .hero-fact-stars-v435{font-size:8px!important;}
  #top .hero-fact:nth-child(1) .hero-fact-desc-v435{font-size:11px!important;}
  #top .hero-fact:nth-child(3) .hero-fact-tag-v435{font-size:7.5px!important;}
  #top .hero-fact:nth-child(3) .hero-fact-value-v435{font-size:15px!important;}
  #top .hero-fact:nth-child(3) .hero-fact-desc-v435{font-size:11px!important;}
}

/* Mobile: same real facts, compact three-card composition. */
@media (max-width:1279px){
  html#kb-mobile-root-v252 #top .hero-facts[data-kb-edit-id="hero-facts"] > .hero-fact{
    position:relative!important;
    overflow:visible!important;
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    grid-template-rows:auto auto auto!important;
    column-gap:4px!important;
    row-gap:5px!important;
    align-content:start!important;
    align-items:baseline!important;
    justify-items:start!important;
  }

  html#kb-mobile-root-v252 #top .hero-fact .hero-fact-tag-v435{
    grid-column:1 / -1!important;
    grid-row:1!important;
    position:relative!important;
    z-index:5!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:3px 5px!important;
    border:1px solid rgba(117,73,92,.09)!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.40)!important;
    color:rgba(117,73,92,.58)!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:6.2px!important;
    font-style:normal!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:.10em!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    pointer-events:auto!important;
  }

  html#kb-mobile-root-v252 #top .hero-fact .hero-fact-value-v435{
    grid-column:1!important;
    grid-row:2!important;
    position:relative!important;
    z-index:5!important;
    display:block!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:#49363e!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:12px!important;
    font-style:normal!important;
    font-weight:750!important;
    line-height:1.1!important;
    letter-spacing:-.02em!important;
    white-space:nowrap!important;
    pointer-events:auto!important;
  }

  html#kb-mobile-root-v252 #top .hero-fact .hero-fact-stars-v435{
    grid-column:2!important;
    grid-row:2!important;
    position:relative!important;
    z-index:5!important;
    display:block!important;
    align-self:center!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:#b96f89!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:5px!important;
    font-style:normal!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:.25px!important;
    white-space:nowrap!important;
    pointer-events:auto!important;
  }

  html#kb-mobile-root-v252 #top .hero-fact .hero-fact-desc-v435{
    grid-column:1 / -1!important;
    grid-row:3!important;
    position:relative!important;
    z-index:5!important;
    display:block!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    color:var(--kb-muted,#88777d)!important;
    font-family:"Manrope",system-ui,sans-serif!important;
    font-size:8px!important;
    font-style:normal!important;
    font-weight:500!important;
    line-height:1.2!important;
    letter-spacing:0!important;
    white-space:normal!important;
    pointer-events:auto!important;
  }
}

@media (max-width:350px){
  html#kb-mobile-root-v252 #top .hero-fact .hero-fact-tag-v435{font-size:5.8px!important;padding:3px 4px!important;}
  html#kb-mobile-root-v252 #top .hero-fact .hero-fact-value-v435{font-size:11px!important;}
  html#kb-mobile-root-v252 #top .hero-fact .hero-fact-stars-v435{font-size:4.5px!important;letter-spacing:.15px!important;}
  html#kb-mobile-root-v252 #top .hero-fact .hero-fact-desc-v435{font-size:7.3px!important;}
}


/* ===== SOURCE: assets/footer-fullbleed-v437.css ===== */
/* ============================================================
   KOSHKOBROW V437 — DESKTOP CONTACT FOOTER FULL-BLEED BACKGROUND
   Keeps all published/editor geometry intact. Visual background
   only: the footer surface now continues to viewport edges at any
   desktop browser zoom level.
   ============================================================ */
@media (min-width:1280px){
  #contacts.contact-as-footer{
    position:relative!important;
    overflow:visible!important;
    isolation:isolate;
  }

  /* The existing contact shell remains the geometry/content anchor,
     but its surface is painted by a viewport-wide layer underneath. */
  #contacts .contact-shell-v218{
    position:relative!important;
    isolation:isolate;
    background:transparent!important;
    border-color:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }

  #contacts .contact-shell-v218::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    z-index:-1!important;
    top:0!important;
    bottom:0!important;
    left:50%!important;
    width:100vw!important;
    min-width:100%!important;
    transform:translateX(-50%)!important;
    pointer-events:none!important;
    border-top:1px solid rgba(255,255,255,.72)!important;
    border-bottom:1px solid rgba(255,255,255,.72)!important;
    background:
      radial-gradient(720px 420px at 8% 0%,rgba(255,255,255,.82),transparent 70%),
      radial-gradient(620px 440px at 88% 12%,rgba(228,181,196,.22),transparent 68%),
      radial-gradient(520px 420px at 54% 115%,rgba(255,247,248,.72),transparent 66%),
      rgba(244,235,233,.86)!important;
    box-shadow:0 28px 76px rgba(70,46,54,.13),inset 0 1px 0 rgba(255,255,255,.88)!important;
    backdrop-filter:blur(24px) saturate(1.05)!important;
    -webkit-backdrop-filter:blur(24px) saturate(1.05)!important;
  }

  #contacts .contact-shell-v218::after{
    content:none!important;
    display:none!important;
  }
}

/* ===========================================================
   V500 — TWO-MODE DESKTOP CONTACT FIT
   Same desktop design, responsive container geometry for 761..1599px.
   Mobile <=760 and wide desktop >=1600 are untouched.
   =========================================================== */
@media (min-width:1280px) and (max-width:1599px) {
  html:not(.kb-v500-editing) body #contacts [data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"]{
    width:calc(100% - 32px)!important;max-width:1360px!important;margin-left:auto!important;margin-right:auto!important;translate:0px -24px!important;
  }
  html:not(.kb-v500-editing) body #contacts [data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"]{
    translate:0px 100px!important;width:100%!important;height:594px!important;box-sizing:border-box!important;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;gap:28px!important;
  }
  html:not(.kb-v500-editing) body #contacts [data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"][data-kb-edit-id="contact-copy"]{
    translate:0px 8px!important;width:100%!important;height:532px!important;box-sizing:border-box!important;min-width:0!important;
  }
  html:not(.kb-v500-editing) body #contacts [data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"][data-kb-edit-id="contact-map"]{
    translate:0px 8px!important;width:100%!important;height:536px!important;box-sizing:border-box!important;
    justify-self:stretch!important;align-self:start!important;min-width:0!important;max-width:none!important;
  }
}


/* ===========================================================
   V503 — NATIVE #WORKS FALLBACK
   JS aligns the actual visible works panel under the fixed header.
   These margins are only a no-JS/native-anchor fallback.
   =========================================================== */
html.kb-mobile-v252 #works{scroll-margin-top:72px!important;}
@media (min-width:1280px){#works{scroll-margin-top:88px!important;}}
