/* AKAIMOV - Shared Design System */

:root {
  --bg:    #0c0c0b;
  --bg2:   #111110;
  --cream: #f0ece4;
  --dim:   #c8b090;
  --muted: #8a7a62;
  --line:  #1e1d1b;
  --ease:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease2: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ─── Reset ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { overflow-x: clip; }
body {
  background: var(--bg);
  color: var(--muted);
  font-family: 'Jost', sans-serif;
  font-weight: 300;
  line-height: 1.7;
  overflow-x: clip;
  opacity: 0;
  transition: opacity 0.5s ease;
}
body.loaded { opacity: 1; }
body.out { opacity: 0 !important; transition: opacity 0.35s ease; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

/* ─── Type ─── */
h1, h2, h3, .serif {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  color: var(--cream);
}
h1 { font-size: clamp(4.5rem, 11vw, 11rem); line-height: 0.88; letter-spacing: 0.02em; }
h2 { font-size: clamp(2.4rem, 5.5vw, 4.2rem); line-height: 1.05; }
h3 { font-size: clamp(1.4rem, 2.8vw, 1.8rem); line-height: 1.25; }
p  { font-size: 1rem; line-height: 1.9; }
.label {
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--dim);
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 400;
}

/* ─── Header ─── */
#hdr {
  position: fixed;
  inset: 0 0 auto;
  z-index: 200;
  padding: 32px 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  pointer-events: none;
  transition: padding 0.5s var(--ease);
}
#hdr > * { pointer-events: all; }
#hdr.s { padding: 20px 52px; }

.logo {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--cream);
  transition: opacity 0.3s;
}
.logo:hover { opacity: 0.55; }

nav.desk {
  display: flex;
  gap: clamp(20px, 2.2vw, 34px);
  align-items: center;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
nav.desk a {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--dim);
  position: relative;
  transition: color 0.25s;
}
nav.desk a::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0;
  width: 0; height: 1px;
  background: var(--cream);
  transition: width 0.35s var(--ease);
}
nav.desk a:hover, nav.desk a.cur { color: var(--cream); }
nav.desk a:hover::after, nav.desk a.cur::after { width: 100%; }
nav.desk .cta-link {
  border: 1px solid rgba(138,129,118,0.4);
  padding: 9px 20px;
  color: var(--cream);
  transition: background 0.25s, border-color 0.25s;
}
nav.desk .cta-link::after { display: none; }
nav.desk .cta-link:hover { background: var(--cream); color: var(--bg); border-color: var(--cream); }

/* ─── Header additions ─── */
.logo-img { height: 36px; width: auto; display: block; filter: brightness(0) invert(67%) sepia(100%) brightness(86%); }
.hdr-right { display: flex; align-items: center; gap: 24px; }
.hdr-contacts { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.hdr-phone {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  color: var(--dim);
  transition: opacity 0.25s;
  white-space: nowrap;
}
.hdr-phone:hover { opacity: 0.65; }
.hdr-cta-label {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.56rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #c8b090;
}
.hdr-socials { display: flex; gap: 8px; }
.hdr-socials a {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(200,176,144,0.3);
  display: flex; align-items: center; justify-content: center;
  transition: border-color 0.25s;
}
.hdr-socials a:hover { border-color: #c8b090; }
.hdr-socials svg { width: 12px; height: 12px; fill: #c8b090; }

/* ─── Burger ─── */
.burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 3px;
}
.burger span { display: block; width: 22px; height: 1px; background: var(--dim); transition: all 0.35s; }
.burger.x span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.burger.x span:nth-child(2) { opacity: 0; }
.burger.x span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ─── Mobile nav ─── */
#mob {
  position: fixed;
  inset: 0;
  background: var(--bg2);
  z-index: 190;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 80px 52px;
  gap: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(30px);
  transition: opacity 0.42s, transform 0.42s var(--ease);
}
#mob.open { opacity: 1; pointer-events: all; transform: none; }
#mob a {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 7vw, 3.2rem);
  color: var(--cream);
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  transition: opacity 0.2s, padding-left 0.25s var(--ease);
}
#mob a:first-child { border-top: 1px solid var(--line); }
#mob a:hover { opacity: 0.45; padding-left: 12px; }
.mob-footer {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 28px;
  margin-top: 8px;
}
#mob .mob-footer a.mob-phone {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.25rem;
  letter-spacing: 0.06em;
  color: #f0ece4;
  padding: 0;
  border: none;
  transition: opacity 0.25s;
}
#mob .mob-footer a.mob-phone:hover { opacity: 0.65; padding-left: 0; }
.mob-cta {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.56rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #c8b090;
}
.mob-socials { display: flex; gap: 10px; margin-top: 10px; }
.mob-socials a {
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(200,176,144,0.3);
  display: flex; align-items: center; justify-content: center;
  transition: border-color 0.25s;
}
.mob-socials a:hover { border-color: #c8b090; }
.mob-socials svg { width: 14px; height: 14px; fill: #c8b090; }

/* ─── Text Reveal ─── */
.rw { overflow: hidden; display: block; }
.rl {
  display: block;
  transform: translateY(102%);
  transition: transform 1.15s var(--ease);
}
.rw.on .rl                     { transform: translateY(0); }
.rw.on .rl:nth-child(2)        { transition-delay: 0.1s; }
.rw.on .rl:nth-child(3)        { transition-delay: 0.18s; }
.rw.on .rl:nth-child(4)        { transition-delay: 0.25s; }

/* Auto-trigger on load (hero) */
.rw.auto .rl                   { animation: rlIn 1.15s var(--ease) forwards; }
.rw.auto .rl:nth-child(1)      { animation-delay: 0.3s; }
.rw.auto .rl:nth-child(2)      { animation-delay: 0.48s; }
.rw.auto .rl:nth-child(3)      { animation-delay: 0.62s; }
@keyframes rlIn { to { transform: translateY(0); } }

/* Fade reveal */
.fade {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.9s ease, transform 0.9s var(--ease);
}
.fade.on { opacity: 1; transform: none; }
.fade.d1 { transition-delay: 0.1s; }
.fade.d2 { transition-delay: 0.2s; }
.fade.d3 { transition-delay: 0.32s; }
.fade.d4 { transition-delay: 0.44s; }
.fade.d5 { transition-delay: 0.56s; }
.fade.auto {
  opacity: 0;
  animation: fadeIn 0.9s ease forwards;
}
.fade.auto.d1 { animation-delay: 0.9s; }
.fade.auto.d2 { animation-delay: 1.05s; }
.fade.auto.d3 { animation-delay: 1.2s; }
@keyframes fadeIn { to { opacity: 1; transform: none; } }

/* ─── Buttons ─── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--dim);
  padding: 13px 28px;
  font-family: 'Jost', sans-serif;
  font-size: 0.68rem;
  font-weight: 300;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cream);
  transition: background 0.25s, border-color 0.25s, color 0.25s;
  cursor: pointer;
  background: transparent;
}
.btn:hover { background: var(--cream); color: var(--bg); border-color: var(--cream); }
.btn-fill { background: var(--cream); color: var(--bg); border-color: var(--cream); }
.btn-fill:hover { background: transparent; color: var(--cream); }
.btn-outline-gold {
  display: inline-block;
  border: 1px solid #c8b090;
  padding: 11px 22px;
  font-family: 'Jost', sans-serif;
  font-size: 0.65rem;
  font-weight: 300;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #0c0c0b;
  background: rgba(200, 176, 144, 0.85);
  transition: background 0.25s, border-color 0.25s, color 0.25s;
  cursor: pointer;
}
.btn-outline-gold:hover { background: #c8b090; color: #0c0c0b; border-color: #c8b090; }
.arrow-link {
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--dim);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: color 0.25s, gap 0.3s var(--ease);
}
.arrow-link::after { content: '→'; }
.arrow-link:hover { color: var(--cream); gap: 18px; }

/* ─── Section label ─── */
.sec-lbl {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--dim);
  margin-bottom: 40px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.sec-lbl::before { content: ''; width: 22px; height: 1px; background: var(--muted); }

/* ─── Interior page hero (not stacking) ─── */
.page-hero {
  padding: 140px 52px 80px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.page-hero-inner { max-width: 900px; }

/* ─── Content sections ─── */
.section { padding: 100px 52px; }
.section + .section { padding-top: 0; }
.s-head {
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
  margin-bottom: 64px;
  display: flex;
  align-items: baseline;
  gap: 20px;
}
.s-num { font-family: 'Cormorant Garamond', serif; font-size: 0.82rem; color: var(--muted); opacity: 0.5; min-width: 22px; }

/* ─── Services list ─── */
.svc-list li {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  cursor: default;
  transition: padding-left 0.3s var(--ease);
}
.svc-list li:first-child { border-top: 1px solid var(--line); }
.svc-list li:hover { padding-left: 16px; }
.svc-n { font-family: 'Cormorant Garamond', serif; font-size: 1.65rem; color: var(--cream); }
.svc-p { font-size: 0.875rem; color: var(--dim); white-space: nowrap; }

/* ─── Process ─── */
.proc-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2px;
  background: var(--line);
}
.proc-cell {
  background: var(--bg);
  padding: 40px 28px 36px;
}
.proc-num { font-family: 'Cormorant Garamond', serif; font-size: 3rem; color: var(--line); line-height: 1; margin-bottom: 28px; }
.proc-title { font-size: 0.92rem; color: var(--cream); margin-bottom: 10px; line-height: 1.45; letter-spacing: 0.02em; }
.proc-desc { font-size: 0.84rem; color: var(--muted); line-height: 1.8; }

/* ─── Included ─── */
.inc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--line);
}
.inc-cell { background: var(--bg); padding: 36px 28px; }
.inc-num { font-family: 'Cormorant Garamond', serif; font-size: 0.82rem; color: var(--muted); margin-bottom: 12px; }
.inc-title { font-size: 0.92rem; color: var(--cream); line-height: 1.5; }

/* ─── Gallery ─── */
.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
}
.gal-item {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--line);
}
.gal-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(18%);
  transition: transform 0.7s var(--ease2), filter 0.4s;
}
.gal-item:hover img { transform: scale(1.05); filter: grayscale(0); }

/* ─── Reviews ─── */
.rev-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.rev-item { padding: 24px 0; border-top: 1px solid var(--line); }
.rev-q {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  color: var(--dim);
  line-height: 1.8;
  margin-bottom: 14px;
}
.rev-who { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }

/* ─── Education ─── */
.edu-list li {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 40px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.edu-list li:first-child { border-top: 1px solid var(--line); }
.edu-y { font-family: 'Cormorant Garamond', serif; font-size: 0.92rem; color: var(--muted); padding-top: 2px; }
.edu-t { font-size: 0.95rem; color: var(--dim); line-height: 1.65; }
.edu-s { font-size: 0.84rem; color: var(--muted); margin-top: 3px; }

/* ─── Certificates ─── */
.cert-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.cert-item { aspect-ratio: 0.71; overflow: hidden; background: var(--line); }
.cert-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(20%);
  transition: filter 0.4s, transform 0.5s var(--ease);
}
.cert-item:hover img { filter: grayscale(0); transform: scale(1.04); }

/* ─── FAQ ─── */
.faq-item { border-bottom: 1px solid var(--line); }
.faq-q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 24px 0;
  cursor: pointer;
  font-size: 1rem;
  color: var(--dim);
  user-select: none;
  transition: color 0.2s;
}
.faq-q:hover { color: var(--cream); }
.faq-ico { width: 16px; height: 16px; position: relative; flex-shrink: 0; }
.faq-ico::before, .faq-ico::after {
  content: '';
  position: absolute;
  background: currentColor;
  transition: transform 0.3s, opacity 0.3s;
}
.faq-ico::before { width: 14px; height: 1px; top: 50%; left: 1px; }
.faq-ico::after  { width: 1px; height: 14px; top: 1px; left: 50%; }
.faq-item.open .faq-ico::after { opacity: 0; transform: rotate(90deg); }
.faq-a {
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.9;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.45s var(--ease2), padding-bottom 0.3s;
}
.faq-item.open .faq-a { max-height: 500px; padding-bottom: 24px; }

/* ─── Blog ─── */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.blog-item { cursor: pointer; }
.blog-thumb { aspect-ratio: 16/10; overflow: hidden; background: var(--line); margin-bottom: 20px; }
.blog-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(15%);
  transition: transform 0.6s var(--ease2), filter 0.4s;
}
.blog-item:hover .blog-thumb img { transform: scale(1.05); filter: grayscale(0); }
.blog-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  color: var(--cream);
  line-height: 1.4;
  margin-bottom: 10px;
  transition: opacity 0.2s;
}
.blog-item:hover .blog-title { opacity: 0.55; }

/* ─── Form ─── */
.form-row { display: flex; flex-direction: column; gap: 14px; }
.ff { display: flex; flex-direction: column; gap: 6px; }
.ff label { font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.ff input, .ff textarea {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line);
  padding: 10px 0;
  font-family: 'Jost', sans-serif;
  font-size: 1rem;
  font-weight: 300;
  color: var(--cream);
  outline: none;
  transition: border-color 0.25s;
  width: 100%;
  resize: none;
}
.ff input::placeholder, .ff textarea::placeholder { color: var(--muted); }
.ff input:focus, .ff textarea:focus { border-bottom-color: var(--dim); }
.form-note { font-size: 0.72rem; color: var(--muted); line-height: 1.6; }

/* ─── Contacts info ─── */
.ci h4 { font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; font-weight: 300; }
.ci p, .ci a { font-size: 1rem; color: var(--dim); line-height: 1.65; }
.ci a { transition: color 0.2s; }
.ci a:hover { color: var(--cream); }
.socials { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 6px; }
.socials a { font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); transition: color 0.2s; }
.socials a:hover { color: var(--cream); }

/* ─── Footer ─── */
footer {
  border-top: 1px solid var(--line);
  padding: 24px 52px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  background: var(--bg2);
}
footer p, footer a { font-size: 0.7rem; letter-spacing: 0.06em; color: var(--muted); }
footer a { transition: color 0.2s; }
footer a:hover { color: var(--dim); }
.f-links { display: flex; gap: 28px; flex-wrap: wrap; }
.f-addr { width: 100%; padding-top: 10px; }
.f-legal {
  width: 100%;
  border-top: 1px solid rgba(200, 176, 144, 0.07);
  margin-top: 16px;
  padding-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.f-legal p { font-size: 0.6rem; letter-spacing: 0.04em; color: var(--muted); opacity: 0.5; line-height: 1.65; }

/* ─── Scroll hint ─── */
.scroll-hint {
  position: absolute;
  bottom: 36px;
  right: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.scroll-hint span { font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); writing-mode: vertical-rl; }
.scroll-line { width: 1px; height: 44px; background: linear-gradient(var(--muted), transparent); animation: sl 2.4s ease-in-out infinite; }
@keyframes sl { 0%,100%{opacity:1;transform:scaleY(1)} 55%{opacity:.2;transform:scaleY(.2);transform-origin:top} }

/* ─── Header actions (new) ─── */
.hdr-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}
.hdr-btn-phone {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  color: var(--cream);
  border: 1px solid rgba(200, 176, 144, 0.3);
  padding: 7px 16px;
  transition: border-color 0.25s, opacity 0.25s;
  white-space: nowrap;
}
.hdr-btn-phone:hover { border-color: var(--dim); opacity: 0.75; }
.hdr-btn-about,
.hdr-btn-booking {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--dim);
  border: 1px solid rgba(200, 176, 144, 0.22);
  padding: 8px 16px;
  transition: color 0.25s, border-color 0.25s;
  white-space: nowrap;
}
.hdr-btn-about:hover,
.hdr-btn-about.cur,
.hdr-btn-booking:hover,
.hdr-btn-booking.cur {
  color: var(--cream);
  border-color: rgba(200, 176, 144, 0.5);
}

/* ─── Carousel filter buttons ─── */
.works-filters {
  display: flex;
  gap: 0;
  margin-top: 12px;
  border-bottom: 1px solid rgba(200, 176, 144, 0.1);
}
.wf-btn {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 8px 18px 10px;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.58rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(200, 176, 144, 0.35);
  cursor: pointer;
  transition: color 0.2s, border-bottom-color 0.2s;
  margin-bottom: -1px;
}
.wf-btn.active,
.wf-btn:hover {
  color: #c8b090;
  border-bottom-color: #c8b090;
}

/* ─── Service card number accent ─── */
.svc-mini-cell { position: relative; overflow: hidden; }
.svc-mini-accent {
  position: absolute;
  top: -14px;
  right: -6px;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(5rem, 9vw, 8rem);
  line-height: 1;
  color: var(--cream);
  opacity: 0.04;
  pointer-events: none;
  user-select: none;
  transition: opacity 0.3s;
}
.svc-mini-cell:hover .svc-mini-accent { opacity: 0.07; }

/* ─── Final CTA block ─── */
.cta-final { max-width: 760px; }
.cta-final-label {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.65rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--dim);
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.cta-final-label::before { content: ''; width: 22px; height: 1px; background: var(--muted); }
.cta-final-heading {
  font-size: clamp(2.6rem, 6vw, 4.8rem);
  line-height: 1.08;
  margin-bottom: 28px;
}
.cta-final-sub {
  max-width: 440px;
  margin-bottom: 44px;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.85;
}
.cta-final-btns {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.cta-msg-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--dim);
  border: 1px solid rgba(200, 176, 144, 0.25);
  padding: 12px 20px;
  transition: color 0.25s, border-color 0.25s;
}
.cta-msg-btn svg { width: 14px; height: 14px; fill: currentColor; flex-shrink: 0; }
.cta-msg-btn:hover { color: var(--cream); border-color: rgba(200, 176, 144, 0.55); }

/* ─── Booking page ─── */
.booking-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.booking-alt {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 8px;
}
.booking-alt-label {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.booking-alt-btns { display: flex; flex-direction: column; gap: 10px; }

/* ─── Rhinoplasty page ─── */
.rp-intro {
  max-width: 640px;
  font-size: 1rem;
  line-height: 1.9;
  color: var(--muted);
  margin-bottom: 64px;
}
.rp-index-hero {
  min-height: auto;
  padding-bottom: 56px;
}
.rp-index-list {
  padding-top: 96px;
}
.rp-articles {
  counter-reset: rpArticle;
  border-top: 1px solid var(--line);
}
.rp-article {
  counter-increment: rpArticle;
  position: relative;
  background: var(--bg);
  padding: 30px 0;
  display: grid;
  grid-template-columns: 64px 170px minmax(280px, 1fr) minmax(260px, 0.9fr) 108px;
  gap: 24px;
  align-items: start;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  transition: background 0.25s ease;
}
.rp-article:hover {
  background: rgba(200, 176, 144, 0.035);
}
.rp-article::before {
  content: counter(rpArticle, decimal-leading-zero);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  line-height: 1;
  color: rgba(200, 176, 144, 0.64);
}
.rp-article-tag {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.58rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}
.rp-article-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.5rem;
  color: var(--cream);
  line-height: 1.3;
}
.rp-article-desc { font-size: 0.88rem; color: var(--muted); line-height: 1.8; }
.rp-article-link {
  margin-top: 2px;
  justify-self: end;
  white-space: nowrap;
}
.rp-article:hover .rp-article-link {
  color: var(--cream);
  gap: 18px;
}

/* Article pages */
.article-hero {
  padding: 150px 52px 72px;
  border-bottom: 1px solid var(--line);
}
.article-hero-inner {
  max-width: 980px;
}
.article-back {
  margin-bottom: 34px;
  color: var(--dim);
}
.article-kicker {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--dim);
  margin-bottom: 24px;
}
.article-title {
  font-size: clamp(2.8rem, 6.6vw, 6.2rem);
  line-height: 0.96;
  max-width: 980px;
  margin-bottom: 28px;
}
.article-lead {
  max-width: 760px;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.7vw, 1.22rem);
  line-height: 1.85;
}
.article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 28px;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(200, 176, 144, 0.72);
}
.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(220px, 340px);
  gap: 72px;
  align-items: start;
}
.article-body {
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.article-section {
  border-top: 1px solid var(--line);
  padding-top: 34px;
}
.article-section-label {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--dim);
  margin-bottom: 18px;
}
.article-section h2 {
  font-size: clamp(2rem, 3.6vw, 3rem);
  line-height: 1.08;
  margin-bottom: 22px;
}
.article-section h3 {
  font-size: clamp(1.45rem, 2.4vw, 1.9rem);
  margin-bottom: 14px;
}
.article-section p,
.article-section li {
  color: rgba(240, 236, 228, 0.72);
  font-size: 1.04rem;
  line-height: 1.95;
}
.article-section p + p { margin-top: 16px; }
.article-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 20px;
}
.article-list li {
  position: relative;
  padding-left: 22px;
}
.article-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.88em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--dim);
}
.article-note {
  margin-top: 24px;
  padding: 24px 26px;
  border-left: 2px solid rgba(200, 176, 144, 0.55);
  background: rgba(200, 176, 144, 0.045);
  color: rgba(240, 236, 228, 0.72);
  font-size: 1rem;
  line-height: 1.85;
}
.article-note strong { color: var(--cream); font-weight: 400; }
.article-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  background: var(--line);
  margin-top: 24px;
}
.article-card {
  background: var(--bg);
  padding: 24px;
  min-height: 150px;
}
.article-card-label {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.58rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--dim);
  margin-bottom: 12px;
}
.article-card p {
  font-size: 0.96rem;
  line-height: 1.75;
}
.article-steps,
.article-timeline {
  margin-top: 24px;
  border-top: 1px solid var(--line);
}
.article-step,
.article-time {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.article-step-num,
.article-time-label {
  font-family: 'Cormorant Garamond', serif;
  color: var(--dim);
  font-size: 1.35rem;
  line-height: 1;
}
.article-step strong,
.article-time strong {
  color: var(--cream);
  font-weight: 400;
}
.article-price {
  margin-top: 24px;
  border: 1px solid rgba(200, 176, 144, 0.16);
  background: rgba(200, 176, 144, 0.045);
}
.article-price-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  padding: 18px 22px;
  border-bottom: 1px solid rgba(200, 176, 144, 0.12);
  color: rgba(240, 236, 228, 0.72);
}
.article-price-row:last-child { border-bottom: 0; }
.article-price-main {
  color: var(--cream);
  font-size: 1.1rem;
}
.article-price-value {
  color: var(--dim);
  white-space: nowrap;
}
.article-aside {
  position: sticky;
  top: 110px;
  border: 1px solid rgba(200, 176, 144, 0.14);
  padding: 28px;
  background: rgba(17, 17, 16, 0.64);
}
.article-aside-title {
  font-family: 'Cormorant Garamond', serif;
  color: var(--cream);
  font-size: 1.65rem;
  line-height: 1.18;
  margin-bottom: 14px;
}
.article-aside p {
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.75;
  margin-bottom: 22px;
}
.article-aside .btn { width: 100%; justify-content: center; text-align: center; }
.article-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  background: var(--line);
}
.article-nav a {
  background: var(--bg2);
  padding: 26px;
  color: var(--dim);
  transition: color 0.25s, background 0.25s;
}
.article-nav a:hover {
  color: var(--cream);
  background: var(--bg);
}
.article-nav span {
  display: block;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.58rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.article-nav strong {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  color: var(--cream);
  font-size: 1.45rem;
  line-height: 1.2;
}

/* Story article pages */
.story-page {
  padding: 132px 52px 96px;
}
.story-shell {
  width: min(100%, 1220px);
  margin: 0 auto;
}
.story-card {
  background: #111110;
  border: 1px solid rgba(200, 176, 144, 0.12);
  overflow: hidden;
}
.story-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  border-bottom: 1px solid rgba(200, 176, 144, 0.12);
}
.story-hero-copy {
  padding: 42px 44px 40px;
}
.story-back {
  margin-bottom: 28px;
}
.story-breadcrumb {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(200, 176, 144, 0.58);
  margin-bottom: 18px;
}
.story-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.35rem, 4.3vw, 4.8rem);
  font-weight: 300;
  line-height: 0.98;
  color: var(--cream);
  max-width: 820px;
}
.story-lead {
  max-width: 740px;
  margin-top: 22px;
  color: rgba(240, 236, 228, 0.68);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.85;
}
.story-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 24px;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(200, 176, 144, 0.56);
}
.story-media {
  position: relative;
  min-height: 440px;
  background: var(--line);
}
.story-media img,
.story-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(12%);
}
.story-media-contain img {
  object-fit: contain;
  padding: 28px;
  filter: none;
}
.story-media::after,
.story-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(12, 12, 11, 0.08), rgba(12, 12, 11, 0.28));
  pointer-events: none;
}
.story-media-caption,
.story-photo-caption {
  position: absolute;
  left: 18px;
  bottom: 16px;
  z-index: 1;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.58rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(240, 236, 228, 0.72);
}
.story-content {
  padding: 38px 44px 46px;
}
.story-section {
  display: grid;
  grid-template-columns: minmax(170px, 0.3fr) minmax(0, 1fr);
  gap: 44px;
  padding: 34px 0;
  border-bottom: 1px solid rgba(200, 176, 144, 0.1);
}
.story-section:last-child {
  border-bottom: 0;
}
.story-label {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(200, 176, 144, 0.58);
}
.story-section-body {
  min-width: 0;
}
.story-section-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.7rem, 2.8vw, 3rem);
  font-weight: 300;
  line-height: 1.08;
  color: var(--cream);
  margin-bottom: 18px;
}
.story-section-body p {
  color: rgba(240, 236, 228, 0.7);
  font-size: 1.02rem;
  line-height: 1.9;
}
.story-section-body p + p {
  margin-top: 14px;
}
.story-problem-cards,
.story-benefit-grid,
.story-compare-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 22px;
}
.story-mini-card {
  border: 1px solid rgba(200, 176, 144, 0.12);
  background: rgba(255, 255, 255, 0.025);
  padding: 20px;
}
.story-mini-label,
.story-card-num {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.58rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(200, 176, 144, 0.6);
  margin-bottom: 9px;
}
.story-mini-title {
  color: var(--cream);
  font-size: 1.02rem;
  line-height: 1.4;
  margin-bottom: 8px;
}
.story-mini-card p,
.story-mini-text {
  color: rgba(240, 236, 228, 0.62);
  font-size: 0.93rem;
  line-height: 1.7;
}
.story-note,
.story-price,
.story-checklist,
.story-verdict {
  margin-top: 22px;
  padding: 22px 24px;
  border: 1px solid rgba(200, 176, 144, 0.13);
  background: rgba(200, 176, 144, 0.045);
}
.story-note {
  border-left: 2px solid rgba(200, 176, 144, 0.42);
}
.story-note strong {
  color: var(--cream);
  font-weight: 400;
}
.story-steps,
.story-timeline,
.story-point-list,
.story-flag-list {
  margin-top: 22px;
  border-top: 1px solid rgba(200, 176, 144, 0.1);
}
.story-step,
.story-time,
.story-point,
.story-flag,
.story-check-row,
.story-verdict-row {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 22px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(200, 176, 144, 0.09);
}
.story-step:last-child,
.story-time:last-child,
.story-point:last-child,
.story-flag:last-child,
.story-check-row:last-child,
.story-verdict-row:last-child {
  border-bottom: 0;
}
.story-step-num,
.story-time-label {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem;
  line-height: 1;
  color: rgba(200, 176, 144, 0.72);
}
.story-step strong,
.story-time strong,
.story-point strong {
  color: var(--cream);
  font-weight: 400;
}
.story-point {
  grid-template-columns: 118px 1fr;
}
.story-flag {
  grid-template-columns: 24px 1fr;
  gap: 14px;
  padding: 12px 0;
}
.story-check-row,
.story-verdict-row {
  grid-template-columns: 24px 1fr;
  gap: 14px;
  padding: 12px 0;
}
.story-flag-icon,
.story-check-box,
.story-dot {
  width: 13px;
  height: 13px;
  margin-top: 7px;
  border: 1px solid rgba(200, 176, 144, 0.38);
}
.story-flag-icon.bad {
  border-color: rgba(240, 149, 149, 0.5);
  background: rgba(162, 45, 45, 0.12);
}
.story-flag-icon.good,
.story-dot {
  border-radius: 50%;
  border-color: rgba(93, 202, 165, 0.36);
  background: rgba(15, 110, 86, 0.15);
}
.story-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 18px;
}
.story-list li {
  position: relative;
  padding-left: 22px;
  color: rgba(240, 236, 228, 0.68);
  font-size: 1rem;
  line-height: 1.7;
}
.story-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.74em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(200, 176, 144, 0.68);
}
.story-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 22px;
}
.story-photo {
  position: relative;
  min-height: 360px;
  background: var(--line);
  overflow: hidden;
}
.story-photo.wide {
  grid-column: 1 / -1;
  min-height: 340px;
}
.story-price-title,
.story-check-title,
.story-verdict-title {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(200, 176, 144, 0.68);
  margin-bottom: 12px;
}
.story-price-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(200, 176, 144, 0.1);
  color: rgba(240, 236, 228, 0.7);
}
.story-price-row:last-child {
  border-bottom: 0;
}
.story-price-row.main {
  color: var(--cream);
  font-size: 1.1rem;
}
.story-price-value {
  color: var(--dim);
  white-space: nowrap;
}
.story-method-card {
  border: 1px solid rgba(200, 176, 144, 0.12);
  background: rgba(255, 255, 255, 0.025);
}
.story-method-head {
  padding: 15px 18px;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.64rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(200, 176, 144, 0.1);
}
.story-method-head.closed {
  color: #5dcaa5;
}
.story-method-head.open {
  color: #afa9ec;
}
.story-method-body {
  padding: 16px 18px;
}
.story-method-body .story-list {
  margin-top: 0;
}
.story-method-body .story-list li {
  font-size: 0.92rem;
}
.story-cta {
  margin-top: 18px;
  border: 1px solid rgba(200, 176, 144, 0.16);
  background: rgba(200, 176, 144, 0.045);
  padding: 30px;
  text-align: center;
}
.story-cta-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.7rem, 2.8vw, 2.8rem);
  font-weight: 300;
  color: var(--cream);
  line-height: 1.1;
}
.story-cta-sub {
  max-width: 620px;
  margin: 12px auto 22px;
  color: rgba(240, 236, 228, 0.62);
  line-height: 1.75;
}
.story-article-nav {
  margin-top: 42px;
}

/* Template articles copied from stories */
.template-page {
  padding: 132px 52px 96px;
}
.template-shell {
  width: min(100%, 1180px);
  margin: 0 auto;
}
.template-back {
  display: inline-flex;
  margin-bottom: 28px;
}
.template-article {
  --font-sans: 'Jost', sans-serif;
  --font-serif: 'Cormorant Garamond', serif;
}
.template-page .template-article .art {
  width: 100%;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-family: 'Jost', sans-serif;
  color: var(--cream);
}
.template-page .template-article .topbar {
  display: none;
}
.template-page .template-article .logo {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  line-height: 1.35;
}
.template-page .template-article .phone-btn {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.12em;
}
.template-page .template-article .hero {
  padding: 46px 52px 42px;
}
.template-page .template-article .breadcrumb,
.template-page .template-article .bc,
.template-page .template-article .s-label,
.template-page .template-article .lbl,
.template-page .template-article .at-col,
.template-page .template-article .at-section {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
}
.template-page .template-article .art-title,
.template-page .template-article .h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.45rem, 4.6vw, 4.9rem);
  font-weight: 300;
  line-height: 1;
  color: var(--cream);
  max-width: 940px;
}
.template-page .template-article .art-lead,
.template-page .template-article .lead {
  max-width: 780px;
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.85;
  color: rgba(240, 236, 228, 0.68);
}
.template-page .template-article .meta-item,
.template-page .template-article .mi,
.template-page .template-article .meta {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.template-page .template-article .section,
.template-page .template-article .sec {
  padding: 34px 52px 0;
}
.template-page .template-article .nav-timeline {
  padding: 18px 52px;
}
.template-page .template-article .nav-step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.65rem;
  text-decoration: none;
}
.template-page .template-article .s-title,
.template-page .template-article .stitle,
.template-page .template-article .cta-title,
.template-page .template-article .cta-t,
.template-page .template-article .verdict-title,
.template-page .template-article .db-title,
.template-page .template-article .vf-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.55rem, 2.45vw, 2.35rem);
  font-weight: 300;
  line-height: 1.18;
}
.template-page .template-article .s-body,
.template-page .template-article .body,
.template-page .template-article .honest-box,
.template-page .template-article .honest,
.template-page .template-article .warn-text {
  font-size: 1.02rem;
  line-height: 1.9;
}
.template-page .template-article .s-body p,
.template-page .template-article .body p {
  font-size: 1.02rem;
  line-height: 1.9;
}
.template-page .template-article .s-text,
.template-page .template-article .step-text,
.template-page .template-article .step-body,
.template-page .template-article .p-card-text,
.template-page .template-article .disc-text,
.template-page .template-article .indent-row,
.template-page .template-article .day-text,
.template-page .template-article .rehab-text,
.template-page .template-article .sw-text,
.template-page .template-article .f-text,
.template-page .template-article .proc-text,
.template-page .template-article .an-text,
.template-page .template-article .b-text,
.template-page .template-article .inc-text,
.template-page .template-article .fear-a,
.template-page .template-article .feel-text,
.template-page .template-article .reason-text,
.template-page .template-article .timing-text,
.template-page .template-article .point-text,
.template-page .template-article .rf-text,
.template-page .template-article .gf-text,
.template-page .template-article .cl-text,
.template-page .template-article .method-text,
.template-page .template-article .pc-text,
.template-page .template-article .v-text,
.template-page .template-article .cc-text,
.template-page .template-article .pros-text,
.template-page .template-article .limit-text,
.template-page .template-article .rb-text,
.template-page .template-article .free-text,
.template-page .template-article .r-text,
.template-page .template-article .tl-text,
.template-page .template-article .how-text,
.template-page .template-article .skin-text,
.template-page .template-article .ab-text,
.template-page .template-article .risk-text,
.template-page .template-article .eb-text,
.template-page .template-article .alt-text {
  font-size: 0.98rem;
  line-height: 1.75;
}
.template-page .template-article .info-text {
  font-size: 0.98rem;
  line-height: 1.75;
}
.template-page .template-article .at-period.special {
  font-size: 0.98rem;
  line-height: 1.5;
  color: #c8b99a;
}
.template-page .template-article .indent-row,
.template-page .template-article .s-row,
.template-page .template-article .rf-row,
.template-page .template-article .gf-row,
.template-page .template-article .cl-row,
.template-page .template-article .method-item,
.template-page .template-article .cc-row,
.template-page .template-article .pros-row,
.template-page .template-article .limit-row,
.template-page .template-article .inc-row,
.template-page .template-article .rb-row,
.template-page .template-article .free-row,
.template-page .template-article .proc-row,
.template-page .template-article .timing-row,
.template-page .template-article .pc-row,
.template-page .template-article .verdict-row,
.template-page .template-article .warn-row,
.template-page .template-article .how-row,
.template-page .template-article .wr,
.template-page .template-article .ab-row,
.template-page .template-article .eb-row,
.template-page .template-article .alt-row {
  align-items: center;
}
.template-page .template-article .i-dot,
.template-page .template-article .s-dot,
.template-page .template-article .rf-icon,
.template-page .template-article .gf-dot,
.template-page .template-article .cl-box,
.template-page .template-article .m-dot-green,
.template-page .template-article .m-dot-purple,
.template-page .template-article .cc-dot,
.template-page .template-article .pros-dot,
.template-page .template-article .limit-dot,
.template-page .template-article .inc-dot,
.template-page .template-article .rb-dot-r,
.template-page .template-article .rb-dot-a,
.template-page .template-article .free-dot,
.template-page .template-article .proc-dot,
.template-page .template-article .timing-dot,
.template-page .template-article .pc-dot-g,
.template-page .template-article .pc-dot-r,
.template-page .template-article .pc-dot,
.template-page .template-article .v-dot,
.template-page .template-article .warn-dot,
.template-page .template-article .how-num,
.template-page .template-article .wd,
.template-page .template-article .ab-dot,
.template-page .template-article .eb-num,
.template-page .template-article .alt-dot {
  margin-top: 0;
  align-self: center;
}
.template-page .template-article .stage,
.template-page .template-article .analysis-table,
.template-page .template-article .info-box,
.template-page .template-article .honest-box,
.template-page .template-article .big-answer,
.template-page .template-article .stat-block,
.template-page .template-article .timing-block,
.template-page .template-article .compare-block,
.template-page .template-article .pros-cons,
.template-page .template-article .period-tabs,
.template-page .template-article .restriction-block,
.template-page .template-article .free-block,
.template-page .template-article .ig-block,
.template-page .template-article .ig-bottom,
.template-page .template-article .anatomy-box,
.template-page .template-article .risk-list,
.template-page .template-article .after-filler,
.template-page .template-article .alt-block {
  margin-top: 22px;
  margin-bottom: 22px;
}
.template-page .template-article .stage-header,
.template-page .template-article .stage-body,
.template-page .template-article .proc-block,
.template-page .template-article .warn-box,
.template-page .template-article .limit-block,
.template-page .template-article .pros-block,
.template-page .template-article .anatomy-box,
.template-page .template-article .alt-block {
  padding: 18px 20px;
}
.template-page .template-article .analysis-table,
.template-page .template-article .at-row,
.template-page .template-article .at-header {
  font-size: 0.94rem;
}
.template-page .template-article .at-row,
.template-page .template-article .at-header {
  grid-template-columns: minmax(0, 1fr) 140px;
  padding: 13px 18px;
}
.template-page .template-article .at-name,
.template-page .template-article .at-period {
  font-size: 0.98rem;
}
.template-page .template-article .at-note,
.template-page .template-article .proc-note {
  font-size: 0.86rem;
}
.template-page .template-article .stat-num,
.template-page .template-article .stat-n {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
}
.template-page .template-article .p-card-label,
.template-page .template-article .point-num,
.template-page .template-article .pc-header,
.template-page .template-article .method-header,
.template-page .template-article .cl-title,
.template-page .template-article .price-title {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.template-page .template-article .p-card,
.template-page .template-article .point,
.template-page .template-article .b-card,
.template-page .template-article .method-body,
.template-page .template-article .verdict-box,
.template-page .template-article .disclaimer {
  padding: 18px 20px;
}
.template-page .template-article .problem-cards,
.template-page .template-article .benefit-grid,
.template-page .template-article .compare-grid {
  gap: 14px;
}
.template-page .template-article .price-name,
.template-page .template-article .price-val,
.template-page .template-article .price-main-name,
.template-page .template-article .price-main-val {
  font-size: 1rem;
}
.template-page .template-article .photo-placeholder,
.template-page .template-article .ph {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  height: auto;
  min-height: 360px;
  padding: 0;
  overflow: hidden;
  text-transform: none;
  letter-spacing: 0;
}
.template-page .template-article .photo-placeholder img,
.template-page .template-article .ph img {
  display: block;
  width: 100%;
  max-height: 620px;
  object-fit: contain;
  background: #0c0c0b;
}
.template-page .template-article .photo-placeholder span,
.template-page .template-article .ph span {
  display: block;
  width: 100%;
  padding: 12px 16px;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
  color: rgba(240, 236, 228, 0.56);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.template-page .template-article .photo-placeholder:not(:has(img)),
.template-page .template-article .ph:not(:has(img)) {
  display: none;
}
.template-page .template-article .section,
.template-page .template-article .sec {
  scroll-margin-top: 104px;
}
.template-page .template-article .day-circle,
.template-page .template-article .an-circle {
  width: 56px;
  height: 56px;
  font-size: 0.66rem;
  line-height: 1.1;
  padding: 5px;
  overflow-wrap: anywhere;
  hyphens: auto;
}
.template-page .template-article .day-marker,
.template-page .template-article .an-marker {
  min-width: 68px;
}
.template-page .template-article .af-step {
  min-width: 92px;
}
.template-page .template-article .af-circle {
  width: 72px;
  height: 72px;
  font-size: 0.62rem;
  line-height: 1.1;
  padding: 6px;
  overflow-wrap: anywhere;
  hyphens: auto;
}
.template-page .template-article .cta-block,
.template-page .template-article .cta {
  margin: 34px 52px 0;
  padding: 28px 24px;
}
.template-page .template-article .btn-tg,
.template-page .template-article .btn-wa,
.template-page .template-article .btn-call,
.template-page .template-article .btg,
.template-page .template-article .btw,
.template-page .template-article .btc {
  font-family: 'Jost', sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.template-page .template-article .btn-tg,
.template-page .template-article .btn-wa,
.template-page .template-article .btg,
.template-page .template-article .btw {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
}
.template-page .template-article .btn-icon {
  display: none;
}
.template-page .template-article .btn-tg::before,
.template-page .template-article .btg::before,
.template-page .template-article .btn-wa::before,
.template-page .template-article .btw::before {
  content: "";
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  background: currentColor;
  opacity: 0.95;
}
.template-page .template-article .btn-tg::before,
.template-page .template-article .btg::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.8 4.4 18.5 20c-.2 1-.8 1.2-1.6.8l-5-3.7-2.4 2.3c-.3.3-.5.5-1 .5l.4-5.1 9.3-8.4c.4-.4-.1-.6-.6-.2L6 13.4 1 11.9c-1-.3-1-1 .2-1.5L20.5 3c.9-.3 1.7.2 1.3 1.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.8 4.4 18.5 20c-.2 1-.8 1.2-1.6.8l-5-3.7-2.4 2.3c-.3.3-.5.5-1 .5l.4-5.1 9.3-8.4c.4-.4-.1-.6-.6-.2L6 13.4 1 11.9c-1-.3-1-1 .2-1.5L20.5 3c.9-.3 1.7.2 1.3 1.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.template-page .template-article .btn-wa::before,
.template-page .template-article .btw::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.5 3.5A11.8 11.8 0 0 0 1.9 17.7L.4 23.2l5.6-1.5A11.8 11.8 0 0 0 20.5 3.5ZM12 21a9.1 9.1 0 0 1-4.6-1.2l-.3-.2-3.3.9.9-3.2-.2-.3A9.2 9.2 0 1 1 12 21Zm5-6.8c-.3-.1-1.7-.8-1.9-.9-.3-.1-.5-.1-.7.1-.2.3-.8.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.4-2.2-1.4-.8-.7-1.4-1.7-1.5-1.9-.2-.3 0-.5.1-.6l.5-.6c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2c-.2-.5-.5-.4-.7-.4h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.1 4.9 4.3.7.3 1.2.5 1.6.6.7.2 1.3.2 1.8.1.5-.1 1.7-.7 1.9-1.3.2-.7.2-1.2.2-1.3-.1-.2-.3-.2-.6-.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.5 3.5A11.8 11.8 0 0 0 1.9 17.7L.4 23.2l5.6-1.5A11.8 11.8 0 0 0 20.5 3.5ZM12 21a9.1 9.1 0 0 1-4.6-1.2l-.3-.2-3.3.9.9-3.2-.2-.3A9.2 9.2 0 1 1 12 21Zm5-6.8c-.3-.1-1.7-.8-1.9-.9-.3-.1-.5-.1-.7.1-.2.3-.8.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.4-2.2-1.4-.8-.7-1.4-1.7-1.5-1.9-.2-.3 0-.5.1-.6l.5-.6c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2c-.2-.5-.5-.4-.7-.4h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.1 4.9 4.3.7.3 1.2.5 1.6.6.7.2 1.3.2 1.8.1.5-.1 1.7-.7 1.9-1.3.2-.7.2-1.2.2-1.3-.1-.2-.3-.2-.6-.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.template-page .template-article .article-consult-cta {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 100%;
}
.template-page .template-article .article-consult-text {
  font-size: 0.9rem;
  line-height: 1.6;
  color: rgba(240, 236, 228, 0.62);
}
.template-page .template-article .article-booking-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  width: 100% !important;
  min-width: 0 !important;
  border: 1px solid #c8b090 !important;
  border-radius: 6px !important;
  padding: 11px 0 !important;
  font-family: 'Jost', sans-serif !important;
  font-size: 0.68rem !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.12em !important;
  text-align: center !important;
  text-transform: uppercase !important;
  color: #0c0c0b !important;
  background: rgba(200, 176, 144, 0.85) !important;
  cursor: pointer !important;
  transition: background 0.25s, border-color 0.25s, color 0.25s !important;
}
.template-page .template-article .article-booking-btn:hover {
  background: #c8b090 !important;
  color: #0c0c0b !important;
  border-color: #c8b090 !important;
}
.template-article-nav {
  margin-top: 42px;
}

/* ─── Contacts simplified ─── */
.contacts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.contacts-messengers {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 32px;
}
.contacts-messenger-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--dim);
  border: 1px solid rgba(200, 176, 144, 0.22);
  padding: 14px 24px;
  transition: color 0.25s, border-color 0.25s;
  max-width: 320px;
}
.contacts-messenger-btn:hover { color: var(--cream); border-color: var(--dim); }
.contacts-messenger-btn svg { width: 16px; height: 16px; fill: currentColor; flex-shrink: 0; }
.contacts-grid .btn-outline-gold {
  width: 100%;
  max-width: 320px;
  text-align: center;
}

/* ─── Responsive ─── */
@media (max-width: 1180px) {
  #hdr { justify-content: flex-start; }
  nav.desk { display: none; }
  .hdr-right { margin-left: auto; }
  .burger { display: flex; }
  .rp-article {
    grid-template-columns: 52px minmax(0, 1fr) auto;
    gap: 16px 22px;
  }
  .rp-article-tag {
    grid-column: 2 / 3;
    grid-row: 1;
  }
  .rp-article-title {
    grid-column: 2 / 3;
    grid-row: 2;
  }
  .rp-article-desc {
    grid-column: 2 / 4;
    grid-row: 3;
  }
  .rp-article-link {
    grid-column: 3 / 4;
    grid-row: 1 / 3;
    align-self: start;
    justify-self: end;
    max-width: 100%;
  }
}
@media (max-width: 960px) {
  #hdr { padding: 22px 28px; }
  .hdr-right { display: flex; gap: 0; }
  .hdr-contacts { align-items: center; }
  .hdr-cta-label,
  .hdr-socials { display: none; }
  .hdr-phone {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    color: var(--dim);
  }
  #hdr.s { padding: 16px 28px; }
  #mob { padding: 80px 28px; }
  .booking-grid { grid-template-columns: 1fr; gap: 48px; }
  .contacts-grid { grid-template-columns: 1fr; gap: 48px; }
  .rp-article {
    grid-template-columns: 52px minmax(0, 1fr) auto;
    gap: 16px 22px;
  }
  .rp-article-tag {
    grid-column: 2 / 3;
    grid-row: auto;
  }
  .rp-article-title {
    grid-column: 2 / 4;
    grid-row: auto;
  }
  .rp-article-desc {
    grid-column: 2 / 4;
    grid-row: auto;
  }
  .rp-article-link {
    grid-column: 2 / 4;
    grid-row: auto;
    justify-self: start;
  }
  .rp-index-hero { min-height: auto; }
  .article-hero { padding: 125px 28px 64px; }
  .article-layout { grid-template-columns: 1fr; gap: 56px; }
  .article-aside { position: static; }
  .story-page { padding: 112px 28px 80px; }
  .template-page { padding: 112px 28px 80px; }
  .template-page .template-article .topbar,
  .template-page .template-article .hero,
  .template-page .template-article .section,
  .template-page .template-article .sec,
  .template-page .template-article .nav-timeline {
    padding-left: 28px;
    padding-right: 28px;
  }
  .template-page .template-article .cta-block,
  .template-page .template-article .cta {
    margin-left: 28px;
    margin-right: 28px;
  }
  .story-hero,
  .story-section { grid-template-columns: 1fr; }
  .story-hero-copy,
  .story-content { padding-left: 28px; padding-right: 28px; }
  .story-media { min-height: 420px; }
  .story-section { gap: 18px; }
  .page-hero { padding: 120px 28px 64px; }
  .section { padding: 80px 28px; }
  .proc-grid { grid-template-columns: repeat(2, 1fr); }
  .inc-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery { grid-template-columns: repeat(2, 1fr); }
  .rev-grid { grid-template-columns: 1fr 1fr; }
  .cert-grid { grid-template-columns: repeat(3, 1fr); }
  .blog-grid { grid-template-columns: 1fr 1fr; }
  footer { flex-direction: column; gap: 12px; text-align: center; padding: 20px 28px; }
  .f-links { justify-content: center; flex-wrap: wrap; gap: 16px; }
  .scroll-hint { right: 28px; }
}
@media (max-width: 600px) {
  .proc-grid { grid-template-columns: 1fr; }
  .inc-grid { grid-template-columns: 1fr; }
  .gallery { grid-template-columns: 1fr; }
  .rev-grid { grid-template-columns: 1fr; }
  .cert-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-grid { grid-template-columns: 1fr; }
  .edu-list li { grid-template-columns: 64px 1fr; gap: 20px; }
  .rp-article {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 26px 0;
  }
  .rp-article::before,
  .rp-article-tag,
  .rp-article-title,
  .rp-article-desc,
  .rp-article-link {
    grid-column: auto;
  }
  .article-grid,
  .article-nav { grid-template-columns: 1fr; }
  .story-page { padding: 104px 18px 64px; }
  .template-page { padding: 104px 18px 64px; }
  .template-page .template-article .topbar,
  .template-page .template-article .hero,
  .template-page .template-article .section,
  .template-page .template-article .sec,
  .template-page .template-article .nav-timeline {
    padding-left: 20px;
    padding-right: 20px;
  }
  .template-page .template-article .topbar,
  .template-page .template-article .meta-row,
  .template-page .template-article .meta {
    flex-wrap: wrap;
  }
  .template-page .template-article .at-row,
  .template-page .template-article .at-header {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .template-page .template-article .at-period {
    text-align: left;
  }
  .template-page .template-article .compare-block,
  .template-page .template-article .factors-grid,
  .template-page .template-article .stat-row,
  .template-page .template-article .pros-cons,
  .template-page .template-article .period-tabs {
    grid-template-columns: 1fr;
  }
  .template-page .template-article .cta-block,
  .template-page .template-article .cta {
    margin-left: 20px;
    margin-right: 20px;
  }
  .template-page .template-article .photo-placeholder,
  .template-page .template-article .ph {
    min-height: 260px;
  }
  .story-hero-copy,
  .story-content { padding: 28px 20px; }
  .story-media { min-height: 330px; }
  .story-problem-cards,
  .story-benefit-grid,
  .story-compare-grid,
  .story-photo-grid { grid-template-columns: 1fr; }
  .story-photo,
  .story-photo.wide { min-height: 300px; }
  .story-step,
  .story-time,
  .story-point,
  .story-check-row,
  .story-verdict-row { grid-template-columns: 1fr; gap: 8px; }
  .story-price-row { grid-template-columns: 1fr; gap: 4px; }
  .story-cta { padding: 26px 20px; }
  .article-step,
  .article-time { grid-template-columns: 1fr; gap: 10px; }
  .article-card { min-height: auto; }
  .cta-final-btns { flex-direction: column; align-items: flex-start; }
  .hdr-btn-about,
  .hdr-btn-booking { display: none; }
  .wf-btn { padding: 8px 12px 10px; font-size: 0.52rem; }
}
@media (max-width: 480px) {
  #hdr { padding-inline: 18px; gap: 12px; }
  #hdr.s { padding-inline: 18px; }
  .logo-img { height: 27px; }
  .hdr-phone { font-size: 0.62rem; }
  .hdr-btn-phone { font-size: 0.82rem; padding: 6px 10px; }
}
