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

/* ===== SOURCE: assets/style-v241-works.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: 18px;
  right: 18px;
  bottom: 18px;
  min-height: 44px;
  display: block;
  pointer-events: none;
}

.portfolio-card-meta > span {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: calc(100% - 68px);
}

.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;
  line-height: 1.14;
}

.portfolio-card-open {
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: #3a2830;
  background: rgba(255,250,251,.94);
  box-shadow: 0 10px 20px rgba(38,23,29,.18), inset 0 1px 0 rgba(255,255,255,.7);
}

.portfolio-card-open svg {
  width: 18px;
  height: 18px;
  display: block;
}

.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;
}

/* ===========================================================
   v19.1 - portfolio card open-button safe area + CTA cleanup
   =========================================================== */
/* Default card: keep the open control aligned with the caption block. */
.portfolio-card {
  --portfolio-open-safe-x: 0px;
  --portfolio-open-safe-y: 0px;
}

/* Cards with the large LOWER-RIGHT cut need extra breathing room.
   Move the control inward instead of letting it hug the curved edge. */
.portfolio-card:nth-child(3n+1) {
  --portfolio-open-safe-x: 13px;
  --portfolio-open-safe-y: 13px;
}

.portfolio-card-open {
  right: var(--portfolio-open-safe-x) !important;
  bottom: var(--portfolio-open-safe-y) !important;
}

/* The CTA is not an image viewer. Never show the photo-expand control there. */
.portfolio-cta .portfolio-card-open {
  display: none !important;
}

@media (max-width: 1279px) {
  /* Mobile cards lose the asymmetric large cuts, so no extra offset is needed. */
  .portfolio-card {
    --portfolio-open-safe-x: 0px;
    --portfolio-open-safe-y: 0px;
  }
}


/* V192 — portfolio hero cleanup */
.portfolio-hero {
  grid-template-columns: minmax(0,1.12fr) minmax(320px,.72fr);
  gap: 52px;
  margin-bottom: 24px;
  padding: 40px 44px;
  border-radius: 42px;
  background:
    radial-gradient(circle at 88% 14%, rgba(222,148,177,.12), transparent 28%),
    radial-gradient(circle at 8% 100%, rgba(255,255,255,.72), transparent 28%),
    linear-gradient(135deg, rgba(255,251,251,.82), rgba(245,234,237,.72));
  box-shadow: 0 28px 74px rgba(83,51,62,.09), inset 0 1px 0 rgba(255,255,255,.94);
}

.portfolio-hero::after {
  content: none !important;
}

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

.portfolio-eyebrow {
  gap: 12px;
  margin-bottom: 18px;
  padding: 10px 16px;
  border: 1px solid rgba(182,122,147,.16);
  border-radius: 999px;
  color: #8a6674;
  background: rgba(255,253,253,.62);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
  font-size: 11px;
  letter-spacing: .15em;
}

.portfolio-eyebrow::before {
  width: 20px;
  background: linear-gradient(90deg, #b96f8b, rgba(185,111,139,.18));
  box-shadow: 0 0 8px rgba(185,111,139,.20);
}

.portfolio-hero h1 {
  max-width: 8.4ch;
  font-size: clamp(58px,7vw,112px);
  line-height: .9;
  letter-spacing: -.055em;
}

.portfolio-hero-side {
  gap: 24px;
  align-items: flex-start;
}

.portfolio-hero-side p {
  max-width: 440px;
  color: #6f5f67;
  font-size: 16px;
  line-height: 1.72;
}

.portfolio-back {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 6px 18px 6px 6px;
  border: 1px solid rgba(87,56,66,.12);
  border-radius: 999px;
  color: #3f2c33;
  background: rgba(255,253,253,.72);
  box-shadow: 0 12px 26px rgba(88,54,66,.08), inset 0 1px 0 rgba(255,255,255,.86);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  transition: transform .28s var(--ease), box-shadow .28s ease, border-color .28s ease;
}

.portfolio-back:hover,
.portfolio-back:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(182,122,147,.28);
  box-shadow: 0 16px 30px rgba(88,54,66,.12), inset 0 1px 0 rgba(255,255,255,.9);
}

.portfolio-back b {
  width: 40px;
  height: 40px;
  border-color: rgba(87,56,66,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(247,239,241,.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 8px 18px rgba(88,54,66,.08);
}

@media (max-width:1279px) {
  .portfolio-hero {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 34px 28px;
  }
  .portfolio-hero h1 {
    max-width: none;
    font-size: clamp(44px,11vw,72px);
  }
  .portfolio-hero-side p {
    font-size: 15px;
  }
}

@media (max-width: 640px) {
  .portfolio-hero {
    padding: 26px 18px;
    border-radius: 28px;
  }
  .portfolio-eyebrow {
    margin-bottom: 14px;
    padding: 8px 12px;
    font-size: 10px;
    letter-spacing: .13em;
  }
  .portfolio-hero h1 {
    font-size: clamp(38px,12vw,58px);
    line-height: .94;
  }
  .portfolio-hero-side p {
    font-size: 14px;
    line-height: 1.6;
  }
  .portfolio-back {
    min-height: 48px;
    padding: 6px 16px 6px 6px;
    font-size: 13px;
  }
  .portfolio-back b {
    width: 36px;
    height: 36px;
  }
}


/* V193 — portfolio typography polish */
.portfolio-hero-copy {
  gap: 0;
}

.portfolio-hero h1 {
  display: inline-block;
  max-width: none;
  padding: 14px 26px 18px;
  border: 1px solid rgba(92,58,70,.10);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(255,253,253,.88), rgba(248,240,243,.76));
  box-shadow: 0 14px 36px rgba(82,49,61,.07), inset 0 1px 0 rgba(255,255,255,.92);
  color: #2e2227;
  font-size: clamp(46px, 5.6vw, 88px);
  line-height: .92;
  letter-spacing: -.04em;
}

.portfolio-cta-copy strong {
  letter-spacing: -.012em;
  line-height: 1.12;
}

@media (max-width:1279px) {
  .portfolio-hero h1 {
    font-size: clamp(40px, 9vw, 64px);
    padding: 12px 18px 15px;
    border-radius: 24px;
  }
}

@media (max-width: 640px) {
  .portfolio-hero h1 {
    font-size: clamp(34px, 11.2vw, 50px);
    padding: 10px 14px 12px;
    border-radius: 20px;
  }
  .portfolio-cta-copy strong {
    letter-spacing: -.008em;
    line-height: 1.14;
  }
}

/* V202 — published WORKS export from KOSHKOBROW WORKS EDITOR V197 */
.portfolio-page{padding-top:143px!important;padding-bottom:80px!important}
.portfolio-hero{padding:40px 44px!important;gap:52px!important;border-radius:42px!important}
.portfolio-gallery{padding:20px!important;border-radius:42px!important}
.portfolio-masonry{columns:3!important;column-gap:14px!important}
.portfolio-card{margin-bottom:14px!important;border-radius:28px!important}
.portfolio-card:nth-child(3n+1){border-radius:28px 28px 68px 28px!important}
.portfolio-card:nth-child(3n+2){border-radius:28px 68px 28px 28px!important}
.portfolio-cta{padding:34px 40px!important;border-radius:36px!important;gap:32px!important}
[data-we-id="eyebrow"]{border-style:solid!important}
[data-we-id="title"]{height:130px!important;line-height:1.16!important}
[data-we-id="card-01-image"]{object-fit:fill!important}

/* V203 — published WORKS export from KOSHKOBROW SITE EDITOR V200 */
[data-we-id="eyebrow"]{
  display:none!important;
  border-style:solid!important;
  flex-direction:row!important;
  width:260px!important;
  height:36px!important;
  translate:0 0!important;
}
[data-we-id="title"]{
  translate:40px -32px!important;
  line-height:1.16!important;
  font-size:67.5px!important;
  width:422px!important;
  height:104px!important;
}
[data-we-id="page"]{
  padding-top:143px!important;
  padding-bottom:80px!important;
}
[data-we-id="hero"]{
  padding-top:40px!important;
  padding-bottom:40px!important;
  padding-left:44px!important;
  padding-right:44px!important;
  gap:52px!important;
  border-radius:42px!important;
}
[data-we-id="card-01-image"]{object-fit:fill!important}
[data-we-id="gallery"]{
  padding-top:20px!important;
  padding-bottom:20px!important;
  padding-left:20px!important;
  padding-right:20px!important;
  border-radius:42px!important;
}
[data-we-id="gallery-grid"]{
  column-count:3!important;
  column-gap:14px!important;
}
[data-we-id="cta"]{
  padding-top:34px!important;
  padding-bottom:34px!important;
  padding-left:40px!important;
  padding-right:40px!important;
  gap:32px!important;
  border-radius:36px!important;
}
[data-we-id="ctaKicker"]{translate:0 -4px!important}
[data-we-id="ctaTitle"]{letter-spacing:1px!important}

/* V206 — integrated works-hero ornament. No secondary card/container. */
.portfolio-hero-copy {
  position: relative;
  min-width: 0;
}

.portfolio-hero-art {
  position: relative;
  width: 470px;
  height: 126px;
  max-width: calc(100% - 4px);
  margin: 2px 0 -2px 20px;
  overflow: visible;
  pointer-events: none;
  user-select: none;
  isolation: isolate;
}

.portfolio-hero-art::before {
  content: "";
  position: absolute;
  left: -52px;
  top: -22px;
  width: 310px;
  height: 160px;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 48% 52%, rgba(249,198,225,.32) 0%, rgba(249,214,232,.17) 31%, rgba(255,255,255,.10) 53%, rgba(255,255,255,0) 73%);
  filter: blur(13px);
  opacity: .92;
  z-index: -1;
}

.portfolio-hero-art::after {
  content: "";
  position: absolute;
  right: -6px;
  top: 5px;
  width: 190px;
  height: 100px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255,255,255,.72) 0%, rgba(250,219,235,.17) 44%, rgba(250,219,235,0) 72%);
  filter: blur(17px);
  opacity: .72;
  z-index: -1;
}

.portfolio-hero-art svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.portfolio-hero-art .hero-art-stroke {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.portfolio-hero-art .hero-art-main {
  stroke: url(#heroArtRose);
  stroke-width: 1.35;
  opacity: .78;
  filter: drop-shadow(0 0 5px rgba(223,150,184,.13));
}

.portfolio-hero-art .hero-art-soft {
  stroke: url(#heroArtPearl);
  stroke-width: .9;
  opacity: .64;
}

.portfolio-hero-art .hero-art-hairline {
  stroke: rgba(179,119,144,.24);
  stroke-width: .72;
  opacity: .74;
}

.portfolio-hero-art .hero-art-pearl {
  filter: drop-shadow(0 5px 10px rgba(164,99,128,.15)) drop-shadow(0 0 10px rgba(247,188,220,.24));
}

.portfolio-hero-art .hero-art-spark {
  fill: rgba(255,255,255,.93);
  stroke: rgba(213,154,181,.34);
  stroke-width: .65;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 7px rgba(238,177,207,.28));
}

.portfolio-hero-art .hero-art-ghost {
  fill: none;
  stroke: rgba(255,255,255,.54);
  stroke-width: 8;
  stroke-linecap: round;
  opacity: .22;
  filter: blur(5px);
}

@media (max-width:1279px) {
  .portfolio-hero-art {
    width: min(470px, 88vw);
    height: 112px;
    margin-left: 8px;
    margin-top: 0;
  }
}

@media (max-width: 640px) {
  .portfolio-hero-art {
    width: min(390px, 92vw);
    height: 86px;
    margin: -2px 0 -4px 2px;
  }
  .portfolio-hero-art::before {
    left: -36px;
    top: -16px;
    width: 230px;
    height: 116px;
    filter: blur(11px);
    opacity: .8;
  }
  .portfolio-hero-art::after {
    width: 140px;
    height: 78px;
    filter: blur(13px);
  }
  .portfolio-hero-art .hero-art-main { stroke-width: 1.15; }
  .portfolio-hero-art .hero-art-soft { stroke-width: .8; }
}

.portfolio-cta-book {
  border: 0;
  cursor: pointer;
  font-family: inherit;
}

@media (max-width:1279px) {
  .portfolio-hero-hint,
  .portfolio-hero-decor {
    width: min(422px, 100%);
    max-width: 100%;
    margin-left: 0;
    margin-top: 8px;
  }
}

@media (max-width: 640px) {
  .portfolio-hero-hint,
  .portfolio-hero-decor {
    height: 86px;
    border-radius: 22px;
  }
  .portfolio-hero-decor-line-a {
    left: 60px;
    top: 28px;
    width: 132px;
  }
  .portfolio-hero-decor-line-b {
    left: 84px;
    top: 56px;
    width: 158px;
  }
  .portfolio-hero-decor-ring {
    right: 22px;
    bottom: 14px;
    width: 92px;
    height: 48px;
  }
  .portfolio-hero-decor-dot {
    left: 34px;
    bottom: 18px;
  }
}

/* ===========================================================
   V207 — /works/ title matched to the approved "Отзывы" heading.
   Only the heading is decorated. The V206 lower ornament is removed.
   =========================================================== */

/* V206 ornament must not occupy any space even if stale HTML is cached. */
.portfolio-hero-art {
  display: none !important;
}

/* Same visual language as the approved .section-display / "Отзывы" title. */
.portfolio-hero [data-we-id="title"] {
  position: relative !important;
  display: inline-block !important;
  box-sizing: border-box !important;
  width: fit-content !important;
  max-width: min(100%, 980px) !important;
  height: auto !important;

  /* Keep the user's published WORKS position/size values. */
  translate: 40px -32px !important;
  margin: 0 !important;
  padding: 15px 28px 18px 32px !important;

  font-family: "Brygada 1918", Georgia, serif !important;
  font-size: 67.5px !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;
  white-space: nowrap !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%) !important;
  backdrop-filter: blur(11px) saturate(108%) !important;
}

.portfolio-hero [data-we-id="title"]::before,
.portfolio-hero [data-we-id="title"]::after {
  content: none !important;
  display: none !important;
}

/* With the lower ornament gone, do not create artificial space under the title. */
.portfolio-hero-copy {
  justify-content: flex-start !important;
}

@media (max-width:1279px) {
  .portfolio-hero [data-we-id="title"] {
    translate: 0 0 !important;
    max-width: 100% !important;
    font-size: clamp(46px, 8.7vw, 67.5px) !important;
    padding: 14px 24px 17px 28px !important;
    border-radius: 24px !important;
  }
}

@media (max-width: 640px) {
  .portfolio-hero [data-we-id="title"] {
    width: fit-content !important;
    max-width: 100% !important;
    padding: 11px 18px 14px 21px !important;
    border-left-width: 3px !important;
    border-radius: 20px !important;
    font-size: clamp(36px, 10.5vw, 50px) !important;
    line-height: 1 !important;
    white-space: normal !important;
  }
}

/* ===========================================================
   V208 — /works/ hero composition refresh.
   Goal: keep the approved heading language, remove the oversized
   empty-card feeling, and make the whole header compact/readable.
   No new copy is introduced.
   =========================================================== */

/* Desktop: one compact, balanced header strip instead of a tall empty panel. */
.portfolio-hero {
  grid-template-columns: minmax(500px, .98fr) minmax(430px, .82fr) !important;
  align-items: center !important;
  gap: clamp(44px, 5vw, 92px) !important;
  min-height: 0 !important;
  padding: 30px 44px !important;
  border-radius: 38px !important;
  background:
    radial-gradient(520px 210px at 15% 45%, rgba(255,255,255,.88), transparent 72%),
    radial-gradient(500px 230px at 92% 18%, rgba(227,161,187,.13), transparent 72%),
    linear-gradient(135deg, rgba(255,252,252,.77), rgba(248,237,240,.61)) !important;
  box-shadow:
    0 24px 60px rgba(83,51,62,.085),
    inset 0 1px 0 rgba(255,255,255,.94) !important;
}

.portfolio-hero::after {
  content: none !important;
  display: none !important;
}

.portfolio-hero-copy {
  justify-content: center !important;
  min-width: 0 !important;
}

/* The heading remains the visual anchor, but is no longer floating high
   inside a large empty area. */
.portfolio-hero [data-we-id="title"] {
  translate: 0 0 !important;
  width: fit-content !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 15px 30px 18px 34px !important;
  border-left-width: 4px !important;
  border-radius: 25px !important;
  font-size: clamp(58px, 4.25vw, 72px) !important;
  line-height: 1 !important;
  letter-spacing: -.038em !important;
  white-space: nowrap !important;
  box-shadow:
    0 16px 36px rgba(83,52,62,.07),
    inset 0 1px 0 rgba(255,255,255,.88),
    inset 0 -1px 0 rgba(171,105,128,.045) !important;
}

/* A quiet divider ties the right-side information to the title without
   introducing another card or any extra text. */
.portfolio-hero-side {
  position: relative !important;
  justify-content: center !important;
  gap: 16px !important;
  min-width: 0 !important;
  padding-left: clamp(28px, 3vw, 52px) !important;
}

.portfolio-hero-side::before {
  content: none !important;
  display: none !important;
}

.portfolio-hero-side p {
  max-width: 520px !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}

.portfolio-back {
  min-height: 50px !important;
  padding: 5px 18px 5px 5px !important;
}

.portfolio-back b {
  width: 38px !important;
  height: 38px !important;
}

@media (max-width:1279px) {
  .portfolio-hero {
    grid-template-columns: minmax(390px, .95fr) minmax(340px, .8fr) !important;
    gap: 36px !important;
    padding: 28px 32px !important;
  }
  .portfolio-hero [data-we-id="title"] {
    font-size: clamp(50px, 6vw, 64px) !important;
    padding: 14px 26px 17px 30px !important;
  }
  .portfolio-hero-side {
    padding-left: 30px !important;
  }
}

@media (max-width:1279px) {
  .portfolio-hero {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 28px !important;
  }
  .portfolio-hero [data-we-id="title"] {
    font-size: clamp(46px, 8.8vw, 64px) !important;
  }
  .portfolio-hero-side {
    padding: 20px 0 0 !important;
    gap: 14px !important;
  }
}

@media (max-width: 640px) {
  .portfolio-hero {
    gap: 20px !important;
    padding: 22px 18px !important;
    border-radius: 28px !important;
  }
  .portfolio-hero [data-we-id="title"] {
    width: fit-content !important;
    max-width: 100% !important;
    padding: 11px 18px 14px 21px !important;
    border-radius: 20px !important;
    font-size: clamp(36px, 10.4vw, 48px) !important;
    line-height: 1 !important;
    white-space: normal !important;
  }
  .portfolio-hero-side {
    padding-top: 18px !important;
  }
  .portfolio-hero-side p {
    font-size: 14px !important;
    line-height: 1.58 !important;
  }
}

/* ===========================================================
   V210 — /works/ divider removed at source + hard fail-safe.
   No layout/typography changes.
   =========================================================== */
.portfolio-hero-side::before,
.portfolio-hero-side:before {
  content: none !important;
  display: none !important;
  position: static !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  background: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

/* ===========================================================
   V211 — published WORKS export from KOSHKOBROW SITE EDITOR V200
   Export received 2026-09-10T03:16:05.508Z.
   Values below are applied literally over V210.
   =========================================================== */
[data-we-id="eyebrow"]{
  translate:0px 0px!important;
  border-style:solid!important;
  flex-direction:row!important;
  width:260px!important;
  height:36px!important;
  display:none!important;
}
.portfolio-hero [data-we-id="title"]{
  translate:40px -32px!important;
  line-height:1.16!important;
  font-size:67.5px!important;
  width:422px!important;
  height:104px!important;
}
[data-we-id="intro"]{
  translate:-20px 4px!important;
  width:505px!important;
  height:49px!important;
}
[data-we-id="page"]{
  padding-top:143px!important;
  padding-bottom:80px!important;
}
[data-we-id="hero"]{
  padding-top:40px!important;
  padding-bottom:40px!important;
  padding-left:44px!important;
  padding-right:44px!important;
  gap:52px!important;
  border-radius:42px!important;
}
[data-we-id="card-01-image"]{object-fit:fill!important}
[data-we-id="gallery"]{
  padding-top:20px!important;
  padding-bottom:20px!important;
  padding-left:20px!important;
  padding-right:20px!important;
  border-radius:42px!important;
}
[data-we-id="gallery-grid"]{
  column-count:3!important;
  column-gap:14px!important;
}
[data-we-id="cta"]{
  padding-top:34px!important;
  padding-bottom:34px!important;
  padding-left:40px!important;
  padding-right:40px!important;
  gap:32px!important;
  border-radius:36px!important;
}
[data-we-id="ctaKicker"]{translate:0px -4px!important}
[data-we-id="ctaTitle"]{letter-spacing:1px!important}
.portfolio-hero [data-we-id="back"]{translate:-24px 8px!important}

/* ===========================================================
   V212 — restore approved V210 title geometry after V211 export.
   Keep the rest of the user's V200 WORKS export, including back x/y.
   =========================================================== */
.portfolio-hero [data-we-id="title"] {
  translate: 0 0 !important;
  width: fit-content !important;
  max-width: 100% !important;
  height: auto !important;
  font-size: clamp(58px, 4.25vw, 72px) !important;
  line-height: 1 !important;
}

@media (max-width:1279px) {
  .portfolio-hero [data-we-id="title"] {
    font-size: clamp(50px, 6vw, 64px) !important;
  }
}

@media (max-width:1279px) {
  .portfolio-hero [data-we-id="title"] {
    font-size: clamp(46px, 8.8vw, 64px) !important;
  }
}

@media (max-width: 640px) {
  .portfolio-hero [data-we-id="title"] {
    width: fit-content !important;
    max-width: 100% !important;
    height: auto !important;
    font-size: clamp(36px, 10.4vw, 48px) !important;
    line-height: 1 !important;
    white-space: normal !important;
  }
}

/* ===========================================================
   V214 — compact functional footer for /works/
   =========================================================== */
.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){.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}
}
\n\n/* ===========================================================
   V234 — WORKS FOOTER = MAIN CONTACTS FOOTER.
   Exact contact/footer visual and current V232 user geometry.
   =========================================================== */
#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:0!important;
  overflow:visible!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);
  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;display:flex;flex-direction:column}
#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;overflow:visible!important}
#contacts .contact-row{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:18px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
#contacts .contact-row span{
  color:rgba(75,52,61,.50);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
#contacts .contact-row b{color:#3d2b32;font-size:14px;line-height:1.45}
#contacts .contact-row a[href^="tel:"]{color:inherit;text-decoration:none}
#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-actions .btn-light{background:rgba(255,255,255,.64)}
#contacts .contact-copyright{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  z-index:4!important;
  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[data-kb-edit-id="contact-map"]{
  align-self:start!important;
  justify-self:start!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  border-radius:31px;
  overflow:hidden;
  background:#d6cbc7;
  box-shadow:none;
}
#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;
  border:0;
  filter:none;
}
@media(max-width:1279px){
  #contacts .contact-shell-v218{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:22px;padding:18px}
  #contacts .contact-copy{padding:26px 24px 22px}
  #contacts .map-wrap,#contacts .map-wrap iframe{min-height:420px}
}
@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:0!important}
  #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}
}
@media(min-width:1280px){
  #contacts .contact-shell-v218{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
}

/* Exact current HOME export geometry — same footer on /works/. */
#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;gap:0!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:0 -12px!important}
#contacts [data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"][data-kb-edit-id="contact-wide"]{translate:0 -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:0 0!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:0 16px!important}
#contacts [data-kb-edit-id="contact-telegram"][data-kb-edit-id="contact-telegram"][data-kb-edit-id="contact-telegram"]{translate:0 16px!important}
#contacts [data-kb-edit-id="contact-instagram"][data-kb-edit-id="contact-instagram"][data-kb-edit-id="contact-instagram"]{translate:0 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:0 0!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:0 0!important}
#contacts [data-kb-edit-id="contact-hours-label"][data-kb-edit-id="contact-hours-label"][data-kb-edit-id="contact-hours-label"]{translate:0 0!important}
#contacts [data-kb-edit-id="contact-phone-label"][data-kb-edit-id="contact-phone-label"][data-kb-edit-id="contact-phone-label"]{translate:0 0!important}
#contacts [data-kb-edit-id="contact-format-label"][data-kb-edit-id="contact-format-label"][data-kb-edit-id="contact-format-label"]{translate:0 0!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:0 0!important}
#contacts [data-kb-edit-id="contact-address-label"][data-kb-edit-id="contact-address-label"][data-kb-edit-id="contact-address-label"]{translate:0 0!important}
#contacts [data-kb-edit-id="contact-phone-link"][data-kb-edit-id="contact-phone-link"][data-kb-edit-id="contact-phone-link"]{translate:0 0!important}
#contacts [data-kb-edit-id="contact-list"][data-kb-edit-id="contact-list"][data-kb-edit-id="contact-list"]{translate:0 0!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:0 0!important}

/* On tablet/mobile, do not force desktop editor geometry. */
@media(max-width:1279px){
  #contacts [data-kb-edit-id="contact-shell"],
  #contacts [data-kb-edit-id="contact-copy"],
  #contacts [data-kb-edit-id="contact-map"],
  #contacts [data-kb-edit-id="contact-title"],
  #contacts [data-kb-edit-id="contact-wide"],
  #contacts [data-kb-edit-id="contact-copyright"],
  #contacts [data-kb-edit-id="contact-format-row"],
  #contacts [data-kb-edit-id="contact-route"],
  #contacts [data-kb-edit-id="contact-book"],
  #contacts [data-kb-edit-id="contact-telegram"],
  #contacts [data-kb-edit-id="contact-instagram"],
  #contacts [data-kb-edit-id="contact-phone-row"],
  #contacts [data-kb-edit-id="contact-list"]{
    translate:none!important;width:auto!important;height:auto!important;
  }
  #contacts[data-kb-edit-id="contacts"]{margin:0!important}
  #contacts .map-wrap[data-kb-edit-id="contact-map"]{width:100%!important;min-height:420px!important}
}


/* ===========================================================
   V235 — /works/ contacts footer visibility fix.
   The HOME footer copied into /works/ had class .reveal, but the
   /works/ page intentionally does not load app-v200.js, so that
   class stayed opacity:0 forever. Keep the same footer geometry,
   just make it part of the normal /works/ flow and visible.
   =========================================================== */
#contacts.contact-as-footer .contact-shell-v218{
  opacity:1!important;
  transform:none!important;
}


/* ===========================================================
   V236 — latest WORKS editor delta + redundant CTA removal.
   User-exported footer delta (2026-09-11T19:32:09.879Z):
   contact-shell x=-288, y=128, margin-top=175;
   contact-copyright x=-4, y=28.
   The standalone dark portfolio CTA was removed from HTML because
   booking remains available in the header and in the contacts/footer.
   No other approved WORKS geometry is changed here.
   =========================================================== */
#contacts [data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"][data-kb-edit-id="contact-shell"]{
  translate:-288px 128px!important;
  margin-top:175px!important;
}
#contacts [data-kb-edit-id="contact-copyright"][data-kb-edit-id="contact-copyright"][data-kb-edit-id="contact-copyright"]{
  translate:-4px 28px!important;
}

/* With the duplicated CTA gone, keep the transition from gallery to footer clean. */
.portfolio-gallery + #contacts,
.portfolio-page + #contacts{
  position:relative;
}


/* ===========================================================
   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-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;
  }
}


/* ===== 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-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/works-page-v401-mobile-pink-labels.css ===== */
/* ======================================================================
   KOSHKOBROW V401 — /works CONTINUOUS MOBILE FRAME
   IMPORTANT: mobile only. Desktop (>=761px) stays untouched.
   The intro frame is moved to the parent container so it wraps the full gallery.
   ====================================================================== */

/* Desktop is untouched. The real H1 text remains visible on PC. */
@media (max-width: 1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 body{
    background: #f5ecea !important;
  }

  /* Header = homepage header. */
  html#kb-mobile-root-v252.kb-mobile-v252 .topbar{
    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{
    transform: none !important;
    translate: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .topbar .nav{
    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{
    width: auto !important;
    max-width: 132px !important;
    margin-right: auto !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .topbar .nav > .btn,
  html#kb-mobile-root-v252.kb-mobile-v252 .topbar .nav > a.btn{
    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;
  }

  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-page{
    width: 100% !important;
    margin: 0 !important;
    padding: calc(96px + env(safe-area-inset-top, 0px)) 0 0 !important;
    overflow: visible !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-page > .container{
    position: relative !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 6px !important;
    padding: 16px 14px 18px !important;
    border: 1px solid rgba(255,255,255,.64) !important;
    border-radius: 28px !important;
    background: linear-gradient(135deg, rgba(255,252,251,.88), rgba(248,238,241,.72)) !important;
    box-shadow: 0 12px 30px rgba(64,41,50,.07), inset 0 1px 0 rgba(255,255,255,.58) !important;
    overflow: hidden !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-page > .container::before{
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: radial-gradient(circle at 100% 0%, rgba(214,148,173,.12), transparent 34%) !important;
    pointer-events: none !important;
  }


  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-page > .container > .portfolio-hero,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-page > .container > .portfolio-gallery{
    position: relative !important;
    z-index: 1 !important;
  }

  /* Compact premium intro for mobile works page. */
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero[data-we-id="hero"]{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 0 16px !important;
    padding: 0 2px 16px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    position: relative !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero::before{
    content: none !important;
    display: none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero::after{
    content: none !important;
    display: none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero-copy,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero-side{
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    z-index: 1 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-eyebrow{
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: #a5526c !important;
    font-family: Manrope, sans-serif !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero h1,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero [data-we-id="title"]{
    width: auto !important;
    max-width: 92% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #312429 !important;
    font-size: clamp(34px, 10.6vw, 50px) !important;
    line-height: .94 !important;
    letter-spacing: -.055em !important;
    text-align: left !important;
    translate: none !important;
    transform: none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero-side{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero-side p,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero [data-we-id="intro"]{
    max-width: 340px !important;
    margin: 12px 0 0 !important;
    color: #705a62 !important;
    font-size: 13px !important;
    line-height: 1.52 !important;
    font-weight: 500 !important;
    text-align: left !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-back,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero [data-we-id="back"]{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: auto !important;
    min-height: 42px !important;
    margin: 14px 0 0 !important;
    padding: 5px 16px 5px 5px !important;
    border: 1px solid rgba(112,78,90,.10) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.92) !important;
    color: #4c363e !important;
    box-shadow: 0 10px 22px rgba(65,42,51,.06) !important;
    translate: none !important;
    transform: none !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 760 !important;
    letter-spacing: -.01em !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-back b,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero [data-we-id="back"] b{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    border-radius: 999px !important;
    background: linear-gradient(180deg, #fffaf8, #f4e8eb) !important;
    border: 1px solid rgba(112,78,90,.08) !important;
    color: #4c363e !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-back span,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero [data-we-id="back"] span{
    display: inline-block !important;
    white-space: nowrap !important;
  }

  /* Gallery: one hero work, then a tight 2-column editorial grid. */
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-gallery,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-gallery[data-we-id="gallery"]{
    width: 100% !important;
    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 .portfolio-masonry,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-masonry[data-we-id="gallery-grid"]{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    columns: auto !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card{
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    aspect-ratio: 3 / 4 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.78) !important;
    border-radius: 20px !important;
    background: #e8dade !important;
    box-shadow: 0 9px 22px rgba(64,41,50,.08) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card:first-child{
    grid-column: 1 / -1 !important;
    aspect-ratio: 4 / 4.55 !important;
    border-radius: 25px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card:nth-child(3n+1),
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card:nth-child(3n+2){
    border-radius: 20px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card:first-child{
    border-radius: 25px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card > img{
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
    transform: none !important;
    filter: none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card::after{
    content: "" !important;
    position: absolute !important;
    z-index: 1 !important;
    inset: 38% 0 0 !important;
    display: block !important;
    background: linear-gradient(180deg, transparent 0%, rgba(30,18,23,.08) 22%, rgba(30,18,23,.75) 100%) !important;
    pointer-events: none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card-meta{
    position: absolute !important;
    z-index: 2 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 13px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card:first-child .portfolio-card-meta{
    padding: 18px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card-meta > span{
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card-meta small{
    display: block !important;
    margin: 0 0 3px !important;
    color: #edc4d4 !important;
    font-size: 8px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: .10em !important;
    text-transform: uppercase !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card-meta strong{
    display: -webkit-box !important;
    overflow: hidden !important;
    color: #ffffff !important;
    font-size: 10.5px !important;
    line-height: 1.25 !important;
    font-weight: 750 !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card:first-child .portfolio-card-meta strong{
    font-size: 14px !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card-open{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 30px !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    margin: 0 !important;
    border: 1px solid rgba(255,255,255,.32) !important;
    border-radius: 11px !important;
    background: rgba(255,255,255,.17) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    backdrop-filter: blur(12px) saturate(130%) !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card-open svg{
    width: 14px !important;
    height: 14px !important;
  }

  /* Footer spacing: use exactly the homepage footer skin already loaded. */
  html#kb-mobile-root-v252.kb-mobile-v252 #contacts.contact-as-footer{
    margin-top: 12px !important;
  }
}

@media (max-width: 350px){
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-page > .container{ margin-inline: 5px !important; padding: 14px 10px 16px !important; border-radius: 24px !important; }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero[data-we-id="hero"]{ padding: 0 2px 14px !important; border-radius: 0 !important; }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero h1,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero [data-we-id="title"]{ font-size: clamp(31px, 10.8vw, 42px) !important; }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-back,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-hero [data-we-id="back"]{ min-height: 40px !important; font-size: 11.5px !important; }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-masonry,
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-masonry[data-we-id="gallery-grid"]{ gap: 8px !important; }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card-meta{ padding: 10px !important; }
  html#kb-mobile-root-v252.kb-mobile-v252 .portfolio-card-meta strong{ font-size: 9.5px !important; }
}


/* ===== SOURCE: assets/works-title-v395.css ===== */
/* KOSHKOBROW V395 — WORKS TITLE ISOLATION FIX
   The editable title is a fresh inline-block node. It cannot inherit stale V389 geometry. */
@media (max-width:1279px){
  html#kb-mobile-root-v252.kb-mobile-v252 .works-v395-title-shell{
    width:auto !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
  }
  html#kb-mobile-root-v252.kb-mobile-v252 .works-v395-title-text{
    display:inline-block !important;
    max-width:100%;
    min-width:0;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0;
    padding:0;
    white-space:normal;
    overflow:visible;
    vertical-align:top;
  }
}


/* ===== 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/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;
  }
}
