/* ============ KissCosmetology — premium dark/gold theme ============ */
:root{
  --bg:#0b0a08;
  --bg-soft:#121009;
  --gold:#cda05a;
  --gold-light:#f1d9a8;
  --gold-deep:#8a6a30;
  --ink:#f4efe6;
  --ink-dim:#cbc2b3;
  --line:rgba(205,160,90,.22);
  --serif:"Cormorant Garamond",serif;
  --display:"Cormorant Garamond",serif;
  --sans:"DM Sans",sans-serif;
  --price-font:"Manrope",sans-serif;
  --radius:14px;
  --maxw:1180px;
  color-scheme:dark;
}

*{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  min-height:100vh;
  min-height:100dvh;
  position:relative;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
.container{
  max-width:var(--maxw);margin:0 auto;padding:0 24px;
  padding-left:max(24px,env(safe-area-inset-left));
  padding-right:max(24px,env(safe-area-inset-right));
}

/* ---------- premium ambient background (covers the whole site) ---------- */

/* ---------- full-site luxury photo background ---------- */
body{
  background:#050403 url("bg-lips-gold.jpg") center top / cover fixed no-repeat;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 900px 520px at 50% -8%, rgba(205,160,90,.15), transparent 62%),
    linear-gradient(90deg, rgba(5,4,3,.94) 0%, rgba(8,6,4,.86) 42%, rgba(5,4,3,.92) 100%),
    linear-gradient(180deg, rgba(5,4,3,.82) 0%, rgba(10,8,5,.74) 42%, rgba(5,4,3,.93) 100%);
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 22%, transparent 0 28%, rgba(0,0,0,.55) 74%, rgba(0,0,0,.78) 100%);
}

.glow-field{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.glow-field span{position:absolute;border-radius:50%;filter:blur(70px);opacity:.18;background:radial-gradient(circle,var(--gold) 0%,transparent 70%);}
.glow-field span:nth-child(1){width:420px;height:420px;top:-120px;left:-100px;}
.glow-field span:nth-child(2){width:360px;height:360px;top:30%;right:-140px;}
.glow-field span:nth-child(3){width:300px;height:300px;bottom:-100px;left:20%;}
.glow-field span:nth-child(4){width:260px;height:260px;bottom:10%;right:15%;}

.flecks{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(205,160,90,.5) 1px,transparent 1px);
  background-size:64px 64px;opacity:.12;}

.diamond-shimmer{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background:
    linear-gradient(135deg,transparent 45%,rgba(241,217,168,.06) 50%,transparent 55%),
    repeating-linear-gradient(45deg,rgba(205,160,90,.05) 0 2px,transparent 2px 38px),
    repeating-linear-gradient(-45deg,rgba(205,160,90,.05) 0 2px,transparent 2px 38px);
  animation:shimmerMove 14s linear infinite;
}
@keyframes shimmerMove{
  0%{background-position:0 0,0 0,0 0;}
  100%{background-position:0 0,160px 160px,-160px 160px;}
}

/* subtle film-grain texture for a premium, tactile finish */
.grain{
  position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.035;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:160px 160px;
}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(11,10,8,.7);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:background .3s;}
.nav-inner{display:flex;align-items:center;gap:24px;padding:14px 24px;}
.brand{font-family:var(--display);font-weight:700;font-size:1.2rem;letter-spacing:.01em;color:var(--gold-light);white-space:nowrap;transition:color .2s;}
.brand:hover,.brand:focus-visible{color:var(--gold);}
nav{flex:1;}
nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;justify-content:center;}
nav a{font-size:.94rem;letter-spacing:.02em;color:var(--ink-dim);transition:color .2s;touch-action:manipulation;}
nav a:hover,nav a:focus-visible{color:var(--gold-light);}
nav a[aria-current="page"]{color:var(--gold-light);}
.nav-cta{white-space:nowrap;}
.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;background:none;border:1px solid var(--line);border-radius:10px;cursor:pointer;touch-action:manipulation;}
.menu-toggle span{display:block;width:18px;height:1.5px;background:var(--gold-light);margin:0 auto;transition:.25s;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 26px;border-radius:999px;font-size:.95rem;font-weight:600;letter-spacing:.01em;
  cursor:pointer;border:1px solid transparent;transition:transform .2s,box-shadow .2s,background .2s,color .2s;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;min-height:48px;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:linear-gradient(135deg,var(--gold-light),var(--gold) 60%,var(--gold-deep));color:#1a1407;box-shadow:0 8px 24px -8px rgba(205,160,90,.55);}
.btn-primary:hover,.btn-primary:focus-visible{box-shadow:0 10px 30px -6px rgba(205,160,90,.75);}
.btn-outline{background:transparent;border-color:var(--line);color:var(--ink);}
.btn-outline:hover,.btn-outline:focus-visible{border-color:var(--gold);color:var(--gold-light);}
.contact-icon{width:18px;height:18px;}

/* ---------- typography ---------- */
.eyebrow{font-family:var(--sans);text-transform:uppercase;letter-spacing:.18em;font-size:.76rem;color:var(--gold);margin-bottom:14px;}
h1,h2,h3{font-family:var(--display);font-weight:600;color:var(--ink);margin:0 0 16px;letter-spacing:.01em;}
h1{font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.12;}
h2{font-size:clamp(1.7rem,3.2vw,2.5rem);}
h3{font-family:var(--serif);font-size:1.45rem;}
p{color:var(--ink-dim);margin:0 0 14px;}
.lead{font-size:1.08rem;max-width:640px;}

/* ---------- hero / "about me" intro (merged, no photo) ---------- */
.hero{padding:74px 0 36px;position:relative;z-index:1;}
.hero-content{max-width:760px;margin:0 auto;text-align:center;}
.hero-content .lead{margin-inline:auto;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin:28px 0 36px;}
.hero-stats{display:flex;gap:34px;flex-wrap:wrap;justify-content:center;margin-bottom:30px;}
.stat b{display:block;font-family:var(--display);font-size:1.8rem;color:var(--gold-light);}
.stat span{font-size:.82rem;color:var(--ink-dim);}

.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);max-width:var(--maxw);margin:50px auto;}

.badge-list{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.badge-list span{font-size:.78rem;padding:7px 14px;border:1px solid var(--line);border-radius:999px;color:var(--gold-light);background:rgba(205,160,90,.06);}

/* ---------- services ---------- */
section{position:relative;z-index:1;padding:30px 0;}
.section-head{max-width:640px;margin-bottom:42px;}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.service-card{
  display:block;width:100%;text-align:left;font:inherit;color:inherit;appearance:none;-webkit-appearance:none;
  padding:30px 26px;border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(160deg,rgba(255,255,255,.025),rgba(255,255,255,0));
  cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  transition:transform .25s,border-color .25s,box-shadow .25s;
}
.service-card:hover,.service-card:focus-visible{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 20px 40px -20px rgba(205,160,90,.35);}
.service-card .num{font-family:var(--display);font-size:.85rem;color:var(--gold-deep);letter-spacing:.1em;margin-bottom:14px;}
.service-card h3{margin-bottom:8px;}
.service-card p{margin-bottom:0;}
.service-card .more{display:inline-block;margin-top:12px;font-size:.85rem;color:var(--gold);}

/* ---------- contact ---------- */
.contact-card{
  border:1px solid var(--line);border-radius:24px;padding:50px clamp(24px,5vw,60px);
  text-align:center;background:radial-gradient(circle at 50% 0%,rgba(205,160,90,.08),transparent 60%);
}
.contact-card p{max-width:480px;margin-inline:auto;}
.btn-group{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:26px;}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:46px 0 90px;position:relative;z-index:1;}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap;font-size:.88rem;color:var(--ink-dim);}
.footer-brand{font-family:var(--display);font-size:1.1rem;color:var(--gold-light);white-space:nowrap;}
.footer-links{display:flex;gap:20px;flex-wrap:wrap;}
.footer-links a{color:var(--ink-dim);transition:color .2s;}
.footer-links a:hover,.footer-links a:focus-visible{color:var(--gold-light);}

/* ---------- back to top ---------- */
.back-to-top{
  position:fixed;
  right:max(24px,env(safe-area-inset-right));
  bottom:max(96px,calc(env(safe-area-inset-bottom) + 96px));
  width:46px;height:46px;border-radius:50%;
  background:rgba(18,16,9,.85);border:1px solid var(--line);color:var(--gold-light);
  font-size:1.1rem;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;
  z-index:60;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);touch-action:manipulation;
}
.back-to-top.visible{opacity:1;pointer-events:auto;}
.back-to-top:hover{transform:translateY(-3px);}

/* ---------- floating booking button ---------- */
.booking-fab{
  position:fixed;
  right:max(24px,env(safe-area-inset-right));
  bottom:max(24px,env(safe-area-inset-bottom));
  z-index:60;
  display:flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,var(--gold-light),var(--gold) 60%,var(--gold-deep));
  color:#1a1407;border:none;border-radius:999px;padding:14px 22px;
  font-family:var(--sans);font-weight:700;font-size:.92rem;cursor:pointer;
  box-shadow:0 10px 30px -8px rgba(205,160,90,.6);
  animation:fabPulse 3.2s ease-in-out infinite;
  min-height:48px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.booking-fab svg{width:20px;height:20px;flex-shrink:0;}
@keyframes fabPulse{0%,100%{box-shadow:0 10px 30px -8px rgba(205,160,90,.6);}50%{box-shadow:0 10px 38px -4px rgba(205,160,90,.9);}}
.booking-fab:active{transform:scale(.96);}

/* ---------- booking modal ---------- */
.booking-overlay{
  position:fixed;inset:0;z-index:100;background:rgba(5,4,2,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  padding-bottom:max(20px,env(safe-area-inset-bottom));
}
.booking-overlay[hidden]{display:none;}
.booking-modal{
  position:relative;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  background:linear-gradient(165deg,#161208,#0c0a06);
  border:1px solid var(--line);border-radius:20px;padding:36px clamp(20px,5vw,42px) 32px;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.8);
  animation:modalIn .25s ease;
}
@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.98);}to{opacity:1;transform:none;}}
.booking-close{
  position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--ink-dim);
  cursor:pointer;font-size:1rem;touch-action:manipulation;
}
.booking-close:hover{color:var(--gold-light);}
.booking-form h3{margin-bottom:24px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:.85rem;color:var(--ink-dim);}
.field input,.field select{
  background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px;
  padding:12px 14px;color:var(--ink);font-family:var(--sans);font-size:16px;min-height:46px;
  appearance:none;-webkit-appearance:none;
}
.field select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%23cda05a'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;
}
.field input:focus,.field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(205,160,90,.15);}
.field input::placeholder{color:#6e6555;}
.booking-submit{width:100%;margin-top:10px;}
.booking-success{
  margin-top:18px;padding:16px;border-radius:12px;border:1px solid var(--line);
  background:rgba(205,160,90,.08);color:var(--gold-light);font-size:.92rem;text-align:center;
}

/* ---------- price page ---------- */
.price-hero{padding:64px 0 10px;text-align:center;}
.price-hero .lead{max-width:620px;margin-inline:auto;}
.price-tabs{
  display:flex;gap:10px;flex-wrap:wrap;justify-content:center;
  padding:26px 24px 6px;position:relative;z-index:1;
}
.price-tab{
  font-size:.82rem;padding:9px 16px;min-height:40px;display:inline-flex;align-items:center;
  border:1px solid var(--line);border-radius:999px;
  color:var(--ink-dim);white-space:nowrap;transition:color .2s,border-color .2s,background .2s;
  touch-action:manipulation;
}
.price-tab:hover,.price-tab:focus-visible{color:var(--gold-light);border-color:var(--gold);background:rgba(205,160,90,.06);}

.price-list-section{padding-top:10px;}
.price-category{padding:38px 0;border-top:1px solid var(--line);}
.price-category:first-child{border-top:none;}
.price-category h2{font-size:clamp(1.3rem,2.4vw,1.7rem);margin-bottom:22px;color:var(--gold-light);}
.price-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}

.price-item{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  text-align:left;width:100%;padding:18px 20px;border:1px solid var(--line);border-radius:12px;
  background:linear-gradient(160deg,rgba(255,255,255,.025),rgba(255,255,255,0));
  color:var(--ink);cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s;
  font-family:var(--sans);min-height:64px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.price-item:hover,.price-item:focus-visible{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 16px 32px -18px rgba(205,160,90,.4);}
.price-item-name{font-weight:600;font-size:.96rem;display:flex;flex-direction:column;gap:4px;}
.price-item-sub{font-weight:400;font-size:.78rem;color:var(--ink-dim);}
.price-item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;}
.price-item-meta b{color:var(--gold-light);font-family:var(--display);font-size:1rem;white-space:nowrap;}
.price-item-meta span{font-size:.76rem;color:var(--ink-dim);}

/* ---------- procedure detail modal ---------- */
.proc-modal{max-width:520px;}
.proc-sub{color:var(--gold);font-size:.92rem;margin-top:-10px;margin-bottom:18px;}
.proc-meta{display:flex;gap:24px;margin-bottom:20px;flex-wrap:wrap;}
.proc-meta-item{display:flex;flex-direction:column;gap:4px;}
.proc-meta-item span{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);}
.proc-meta-item b{font-family:var(--display);font-size:1.3rem;color:var(--gold-light);}
.proc-desc{color:var(--ink-dim);line-height:1.7;margin-bottom:24px;}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .booking-fab{animation:none;}
  .diamond-shimmer{animation:none;}
}

/* ---------- focus visibility ---------- */
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

/* ===================== responsive: tablets & small laptops ===================== */
@media (max-width:980px){
  .services-grid{grid-template-columns:repeat(2,1fr);}
}

/* ===================== responsive: phones (iOS / Android) ===================== */
@media (max-width:760px){
  nav{position:fixed;top:73px;left:0;right:0;background:rgba(11,10,8,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);max-height:0;overflow:hidden;transition:max-height .3s ease;}
  nav.open{max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  nav ul{flex-direction:column;gap:0;padding:10px 24px;padding-bottom:max(10px,env(safe-area-inset-bottom));}
  nav ul li{border-bottom:1px solid var(--line);}
  nav a{display:block;padding:16px 0;}
  .nav-cta{display:none;}
  .menu-toggle{display:flex;}
  .services-grid{grid-template-columns:1fr;}
  .price-grid{grid-template-columns:1fr;}
  .price-item{flex-wrap:wrap;}
  .price-item-meta{align-items:flex-start;}
  .field-row{grid-template-columns:1fr;}
  .footer-inner{flex-direction:column;}
  .booking-fab span{display:none;}
  .booking-fab{padding:14px;border-radius:50%;width:54px;height:54px;justify-content:center;}
  .back-to-top{bottom:max(88px,calc(env(safe-area-inset-bottom) + 88px));}
  .hero{padding:54px 0 24px;}
}

@media (max-width:420px){
  h1{font-size:2rem;}
  .container{padding:0 18px;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));}
}

/* ===================== responsive: large desktop / PC ===================== */
@media (min-width:1400px){
  :root{--maxw:1280px;}
  h1{font-size:clamp(2.6rem,4vw,4rem);}
}

/* ===================== landscape phones (notch safe-area) ===================== */
@media (max-width:900px) and (orientation:landscape){
  .nav-inner{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));}
}


/* Hero photo */
.hero-photo{
  display:flex;
  justify-content:center;
  margin:38px 0 42px;
}
.hero-photo img{
  width:min(430px,92%);
  height:auto;
  display:block;
  border-radius:24px;
  box-shadow:0 30px 80px rgba(0,0,0,.45),0 0 45px rgba(205,160,90,.22);
  transition:transform .45s ease,box-shadow .45s ease;
}
.hero-photo img:hover{
  transform:translateY(-6px) scale(1.02);
  box-shadow:0 40px 100px rgba(0,0,0,.55),0 0 65px rgba(205,160,90,.35);
}


/* ---------- readability over photo background ---------- */
header{
  background:rgba(5,4,3,.78);
}
.hero-content,
.section-head,
.contact-card,
.service-card,
.price-category,
.booking-modal,
.proc-modal{
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.hero-content{
  padding:34px clamp(18px,4vw,42px);
  border:1px solid rgba(205,160,90,.13);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(5,4,3,.38),rgba(5,4,3,.18));
  box-shadow:0 28px 90px rgba(0,0,0,.28);
}
.hero-photo{
  display:flex;
  justify-content:center;
  margin:36px 0 40px;
}
.hero-photo img{
  width:min(430px,92%);
  height:auto;
  display:block;
  border-radius:26px;
  box-shadow:
    0 32px 90px rgba(0,0,0,.50),
    0 0 55px rgba(205,160,90,.24);
  transition:transform .45s ease, box-shadow .45s ease, filter .45s ease;
}
.hero-photo img:hover{
  transform:translateY(-6px) scale(1.02);
  filter:saturate(1.05) contrast(1.03);
  box-shadow:
    0 42px 110px rgba(0,0,0,.58),
    0 0 78px rgba(205,160,90,.36);
}
.letter-kiss-seal{
  display:flex;
  justify-content:center;
  margin:26px auto 10px;
  pointer-events:none;
}
.letter-kiss-seal img{
  width:min(190px,48vw);
  height:auto;
  opacity:.9;
  filter:
    drop-shadow(0 12px 22px rgba(0,0,0,.45))
    drop-shadow(0 0 18px rgba(205,160,90,.22));
  transform:rotate(-7deg);
}
@media (max-width:720px){
  body{
    background-attachment:scroll;
    background-position:center top;
  }
  .hero-content{
    padding:28px 16px;
    border-radius:22px;
  }
  .hero-photo{
    margin:28px 0 32px;
  }
  .hero-photo img{
    width:min(360px,94%);
    border-radius:22px;
  }
  .letter-kiss-seal img{
    width:150px;
  }
}


/* ---------- procedure detail page + adaptive price list ---------- */
.price-item{
  text-decoration:none;
  color:inherit;
}
.procedure-page{
  padding:64px 0 40px;
  min-height:70vh;
}
.back-link{
  display:inline-flex;
  margin-bottom:22px;
  color:var(--gold-light);
  font-weight:600;
  opacity:.9;
}
.procedure-detail-card{
  max-width:860px;
  margin:0 auto;
  padding:clamp(26px,5vw,56px);
  border:1px solid var(--line);
  border-radius:28px;
  background:
    radial-gradient(circle at 20% 0%,rgba(205,160,90,.12),transparent 42%),
    linear-gradient(160deg,rgba(8,6,4,.78),rgba(8,6,4,.48));
  box-shadow:0 36px 110px rgba(0,0,0,.42);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.procedure-sub{
  font-size:1.1rem;
  color:var(--gold-light);
  margin-top:-6px;
  margin-bottom:22px;
}
.procedure-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:28px 0 34px;
}
.procedure-facts div{
  padding:18px 20px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.035);
}
.procedure-facts span{
  display:block;
  color:var(--ink-dim);
  font-size:.86rem;
  margin-bottom:4px;
}
.procedure-facts b{
  display:block;
  color:var(--gold-light);
  font-family:var(--display);
  font-size:1.45rem;
}
.procedure-note{
  margin-top:24px;
  padding:16px 18px;
  border-left:2px solid var(--gold);
  color:var(--ink-dim);
  background:rgba(205,160,90,.07);
  border-radius:12px;
}
@media (max-width:900px){
  .services-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .price-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:640px){
  .services-grid{
    grid-template-columns:1fr;
  }
  .price-item{
    grid-template-columns:1fr;
    gap:10px;
  }
  .price-item-meta{
    align-items:flex-start;
    text-align:left;
  }
  .procedure-facts{
    grid-template-columns:1fr;
  }
  .procedure-page{
    padding:38px 0 22px;
  }
  .procedure-detail-card{
    border-radius:22px;
  }
}



/* ---------- premium typography refinement ---------- */
body{
  font-family:var(--sans);
  font-weight:400;
  letter-spacing:-.008em;
}
.brand,
.footer-brand{
  font-family:var(--display);
  font-weight:700;
  letter-spacing:.018em;
}
h1,h2,h3{
  font-family:var(--display);
  font-weight:600;
  letter-spacing:.018em;
}
h1{
  font-size:clamp(2.55rem,5.7vw,4.35rem);
  line-height:.98;
}
h2{
  font-size:clamp(1.95rem,3.65vw,2.95rem);
  line-height:1.06;
}
h3{
  font-size:1.58rem;
  line-height:1.12;
}
p,
.lead,
.field,
nav a,
.btn,
.price-tab,
.price-item-sub,
.procedure-note{
  font-family:var(--sans);
}
.lead{
  font-size:clamp(1.02rem,1.65vw,1.16rem);
  line-height:1.78;
}
.lead strong{
  color:var(--gold-light);
  font-weight:600;
}
.eyebrow{
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:.24em;
}
.btn{
  font-weight:700;
  letter-spacing:.035em;
}
.price-item-meta b,
.procedure-facts b,
.stat b{
  font-family:var(--price-font);
  font-variant-numeric:tabular-nums lining-nums;
  letter-spacing:.025em;
}
.price-item-name{
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:.006em;
}
.price-category h2{
  letter-spacing:.12em;
  text-transform:uppercase;
}
.hero-content{
  max-width:860px;
}
.hero-photo img{
  border-radius:30px;
}
@media (max-width:720px){
  h1{
    font-size:clamp(2.15rem,12vw,3.05rem);
    line-height:1.02;
  }
  h2{
    font-size:clamp(1.65rem,8vw,2.2rem);
  }
  .lead{
    line-height:1.68;
  }
  .price-category h2{
    letter-spacing:.08em;
  }
}



/* =========================================================
   KissCosmetology — luxury visual redesign
   ========================================================= */
:root{
  --champagne:#f3ddb2;
  --rose:#d7a783;
  --velvet:#070504;
  --glass:rgba(12,9,6,.54);
  --glass-strong:rgba(8,6,4,.74);
}

body{
  background:#050403 url("bg-lips-gold.jpg") center top / cover fixed no-repeat;
}
body::before{
  background:
    radial-gradient(ellipse 820px 520px at 73% 12%, rgba(243,221,178,.16), transparent 60%),
    radial-gradient(ellipse 700px 520px at 7% 0%, rgba(215,167,131,.10), transparent 58%),
    linear-gradient(90deg, rgba(5,4,3,.96) 0%, rgba(8,6,4,.84) 44%, rgba(5,4,3,.92) 100%),
    linear-gradient(180deg, rgba(5,4,3,.72) 0%, rgba(6,5,4,.82) 52%, rgba(5,4,3,.96) 100%);
}
header{
  background:rgba(5,4,3,.68);
  border-bottom:1px solid rgba(243,221,178,.14);
  box-shadow:0 10px 40px rgba(0,0,0,.22);
}
.nav-inner{
  min-height:76px;
}
.brand{
  font-size:1.38rem;
  color:var(--champagne);
  text-shadow:0 0 24px rgba(205,160,90,.22);
}
nav a{
  font-size:.9rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.btn{
  position:relative;
  overflow:hidden;
  text-transform:none;
}
.btn-primary{
  background:linear-gradient(135deg,#fff1ce 0%,#d9aa65 42%,#8d6530 100%);
  color:#140e06;
  box-shadow:0 18px 40px -16px rgba(243,221,178,.72);
}
.btn-primary::after{
  content:"";
  position:absolute;
  inset:-80% -30%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  transform:translateX(-70%) rotate(18deg);
  transition:transform .75s ease;
}
.btn-primary:hover::after{
  transform:translateX(70%) rotate(18deg);
}
.btn-outline{
  background:rgba(255,255,255,.035);
  border-color:rgba(243,221,178,.24);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.luxury-hero{
  padding:88px 0 56px;
  min-height:calc(100svh - 78px);
  display:flex;
  align-items:center;
}
.luxury-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.78fr);
  gap:clamp(30px,5vw,72px);
  align-items:center;
}
.luxury-hero-copy{
  position:relative;
  padding:clamp(30px,5vw,58px);
  border:1px solid rgba(243,221,178,.16);
  border-radius:34px;
  background:
    radial-gradient(circle at 0% 0%,rgba(243,221,178,.12),transparent 34%),
    linear-gradient(145deg,rgba(8,6,4,.78),rgba(8,6,4,.34));
  box-shadow:0 38px 120px rgba(0,0,0,.36);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.luxury-hero-copy::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(243,221,178,.08);
  border-radius:26px;
  pointer-events:none;
}
.luxury-hero h1{
  margin-bottom:22px;
  font-size:clamp(3rem,6.4vw,5.55rem);
  line-height:.88;
  letter-spacing:.015em;
}
.luxury-hero h1 span{
  color:var(--champagne);
  font-style:italic;
}
.luxury-hero .lead{
  max-width:670px;
  color:rgba(244,239,230,.84);
}
.luxury-proof{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:30px 0 22px;
}
.luxury-proof div{
  padding:16px 14px;
  border:1px solid rgba(243,221,178,.14);
  border-radius:18px;
  background:rgba(255,255,255,.035);
}
.luxury-proof b{
  display:block;
  font-family:var(--price-font);
  font-size:1.55rem;
  color:var(--champagne);
}
.luxury-proof span{
  display:block;
  font-size:.78rem;
  color:var(--ink-dim);
  line-height:1.35;
}
.luxury-badges{
  justify-content:flex-start;
}
.luxury-hero-visual{
  position:relative;
  min-height:520px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.portrait-frame{
  position:relative;
  width:min(430px,92vw);
  border-radius:38px;
  padding:12px;
  background:
    linear-gradient(145deg,rgba(255,241,206,.42),rgba(205,160,90,.10) 46%,rgba(255,255,255,.06));
  box-shadow:
    0 44px 120px rgba(0,0,0,.56),
    0 0 90px rgba(205,160,90,.20);
}
.portrait-frame::before{
  content:"";
  position:absolute;
  inset:-22px;
  border-radius:48px;
  background:radial-gradient(circle at 50% 0%,rgba(243,221,178,.25),transparent 62%);
  filter:blur(26px);
  z-index:-1;
}
.portrait-frame img{
  width:100%;
  border-radius:30px;
  display:block;
  filter:contrast(1.04) saturate(1.05);
}
.signature-card{
  position:absolute;
  right:0;
  bottom:42px;
  padding:16px 22px;
  border:1px solid rgba(243,221,178,.23);
  border-radius:20px;
  background:rgba(8,6,4,.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.signature-card span{
  display:block;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:var(--gold);
}
.signature-card b{
  display:block;
  font-family:var(--display);
  color:var(--champagne);
  font-size:1.35rem;
}
.section-head{
  padding:28px 34px;
  border:1px solid rgba(243,221,178,.12);
  border-radius:26px;
  background:rgba(8,6,4,.42);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.service-card,
.price-item,
.contact-card,
.procedure-detail-card{
  background:
    radial-gradient(circle at 0 0,rgba(243,221,178,.10),transparent 38%),
    linear-gradient(155deg,rgba(10,8,5,.76),rgba(10,8,5,.42));
  border-color:rgba(243,221,178,.16);
  box-shadow:0 24px 70px rgba(0,0,0,.22);
}
.service-card:hover,
.price-item:hover{
  transform:translateY(-8px);
  border-color:rgba(243,221,178,.48);
  box-shadow:0 34px 90px rgba(0,0,0,.34),0 0 46px rgba(205,160,90,.14);
}
.service-card .num{
  color:var(--champagne);
}
.service-card h3{
  color:#fff4df;
}
.contact-card{
  position:relative;
  overflow:hidden;
}
.contact-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 0%,rgba(243,221,178,.16),transparent 55%);
  pointer-events:none;
}
.booking-fab{
  box-shadow:0 18px 46px -14px rgba(243,221,178,.8);
}
.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .85s ease,transform .85s ease;
}
.reveal.in{
  opacity:1;
  transform:none;
}
@media (max-width:980px){
  .luxury-hero{
    padding:58px 0 44px;
    min-height:auto;
  }
  .luxury-hero-grid{
    grid-template-columns:1fr;
  }
  .luxury-hero-copy{
    text-align:center;
  }
  .luxury-hero .lead{
    margin-inline:auto;
  }
  .luxury-badges{
    justify-content:center;
  }
  .luxury-hero-visual{
    min-height:auto;
  }
  .signature-card{
    right:clamp(8px,8vw,80px);
  }
}
@media (max-width:640px){
  body{
    background-attachment:scroll;
  }
  .nav-inner{
    min-height:64px;
  }
  .luxury-hero{
    padding:32px 0 30px;
  }
  .luxury-hero-copy{
    padding:26px 16px;
    border-radius:24px;
  }
  .luxury-hero-copy::before{
    inset:8px;
    border-radius:18px;
  }
  .luxury-hero h1{
    font-size:clamp(2.55rem,14vw,3.4rem);
    line-height:.94;
  }
  .luxury-proof{
    grid-template-columns:1fr;
  }
  .portrait-frame{
    width:min(360px,92vw);
    border-radius:28px;
    padding:8px;
  }
  .portrait-frame img{
    border-radius:22px;
  }
  .signature-card{
    position:relative;
    right:auto;
    bottom:auto;
    margin-top:-22px;
  }
  .section-head{
    padding:22px 18px;
  }
}


/* =========================================================
   HARD RESPONSIVE FIX — iOS / Android / Desktop
   Must stay at the very end of the stylesheet.
   ========================================================= */

/* Prevent horizontal overflow on every device */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

*,
*::before,
*::after{
  min-width:0;
}

img,
video,
canvas,
svg{
  max-width:100%;
  height:auto;
}

/* Fluid containers */
.container{
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  padding-left:clamp(16px,4vw,24px);
  padding-right:clamp(16px,4vw,24px);
}

/* Stable viewport on mobile browsers */
.hero,
.luxury-hero{
  min-height:auto;
}

/* Header adaptation */
.nav-inner{
  width:100%;
  padding-left:clamp(14px,4vw,24px);
  padding-right:clamp(14px,4vw,24px);
}

.brand{
  max-width:58vw;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Desktop/tablet baseline */
.luxury-hero-grid{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.78fr);
}

.services-grid{
  width:100%;
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.price-grid{
  width:100%;
  grid-template-columns:1fr;
}

.price-item{
  width:100%;
  min-width:0;
}

/* Tablets */
@media (max-width:1024px){
  .luxury-hero-grid{
    grid-template-columns:1fr;
    gap:34px;
  }

  .luxury-hero-copy{
    text-align:center;
  }

  .luxury-hero-copy .lead{
    margin-left:auto;
    margin-right:auto;
  }

  .luxury-badges,
  .hero-actions{
    justify-content:center;
  }

  .services-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  nav ul{
    gap:18px;
  }
}

/* Mobile navigation and mobile layout */
@media (max-width:760px){
  header{
    position:sticky;
    top:0;
  }

  .nav-inner{
    min-height:62px;
    gap:10px;
  }

  .brand{
    font-size:1.08rem;
    max-width:calc(100vw - 144px);
  }

  .nav-cta{
    display:none;
  }

  .menu-toggle{
    display:flex;
    flex-shrink:0;
    margin-left:auto;
  }

  nav{
    position:fixed;
    top:62px;
    left:12px;
    right:12px;
    z-index:90;
    display:none;
    flex:none;
    max-height:calc(100dvh - 82px);
    overflow-y:auto;
    border:1px solid rgba(243,221,178,.18);
    border-radius:18px;
    background:rgba(7,5,4,.96);
    box-shadow:0 24px 80px rgba(0,0,0,.55);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }

  nav.open{
    display:block;
  }

  nav ul{
    display:flex;
    flex-direction:column;
    gap:0;
    padding:10px;
    justify-content:flex-start;
  }

  nav li{
    width:100%;
  }

  nav a{
    display:flex;
    width:100%;
    padding:14px 14px;
    border-radius:12px;
    font-size:.86rem;
    letter-spacing:.1em;
  }

  nav a:hover,
  nav a:focus-visible{
    background:rgba(243,221,178,.08);
  }

  .luxury-hero{
    padding:28px 0 30px;
  }

  .luxury-hero-grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .luxury-hero-copy{
    padding:24px 16px;
    border-radius:24px;
  }

  .luxury-hero h1{
    font-size:clamp(2.2rem,13vw,3.25rem);
    line-height:.98;
    overflow-wrap:break-word;
  }

  .lead{
    font-size:1rem;
    line-height:1.62;
  }

  .hero-actions{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }

  .hero-actions .btn,
  .btn-group .btn{
    width:100%;
  }

  .luxury-proof{
    grid-template-columns:1fr;
  }

  .portrait-frame{
    width:min(350px,94vw);
  }

  .signature-card{
    position:relative;
    right:auto;
    bottom:auto;
    width:fit-content;
    max-width:92vw;
    margin:-18px auto 0;
  }

  .services-grid{
    grid-template-columns:1fr;
    gap:16px;
  }

  .service-card{
    padding:22px 18px;
  }

  .section-head{
    padding:22px 16px;
    margin-bottom:24px;
  }

  .btn-group{
    flex-direction:column;
    align-items:stretch;
  }

  .contact-card{
    padding:32px 16px;
    border-radius:22px;
  }

  .price-tabs{
    display:flex;
    overflow-x:auto;
    gap:10px;
    padding-top:4px;
    padding-bottom:12px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }

  .price-tab{
    flex:0 0 auto;
    white-space:nowrap;
    scroll-snap-align:start;
  }

  .price-item{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    padding:18px 16px;
  }

  .price-item-meta{
    align-items:flex-start;
    text-align:left;
  }

  .field-row{
    grid-template-columns:1fr;
    gap:0;
  }

  .booking-overlay{
    align-items:flex-end;
    padding:10px;
  }

  .booking-modal{
    max-height:92dvh;
    border-radius:20px 20px 14px 14px;
    padding:34px 16px 22px;
  }

  .booking-fab{
    right:14px;
    left:14px;
    bottom:max(12px,env(safe-area-inset-bottom));
    justify-content:center;
    width:auto;
  }

  .back-to-top{
    right:16px;
    bottom:max(82px,calc(env(safe-area-inset-bottom) + 82px));
  }

  footer{
    padding-bottom:112px;
  }

  .footer-inner{
    flex-direction:column;
  }

  .footer-links{
    flex-direction:column;
    gap:10px;
  }

  .procedure-detail-card{
    padding:24px 16px;
    border-radius:22px;
  }

  .procedure-facts{
    grid-template-columns:1fr;
  }
}

/* Very small phones */
@media (max-width:380px){
  .brand{
    font-size:.98rem;
    max-width:calc(100vw - 120px);
  }

  .luxury-hero h1{
    font-size:2.05rem;
  }

  .btn{
    padding-left:16px;
    padding-right:16px;
  }

  .service-card,
  .price-item{
    padding-left:14px;
    padding-right:14px;
  }
}

/* Desktop refinement */
@media (min-width:1025px){
  .menu-toggle{
    display:none !important;
  }

  nav{
    display:block !important;
    position:static;
  }
}

/* iOS Safari: fixed background causes layout bugs */
@supports (-webkit-touch-callout:none){
  body{
    background-attachment:scroll !important;
  }
}

.luxury-hero-grid{align-items:start}.luxury-hero-visual{margin-bottom:18px;justify-content:center}.luxury-hero-copy{text-align:left}
@media(max-width:980px){.luxury-hero-grid{display:flex;flex-direction:column}.luxury-hero-visual{order:1}.luxury-hero-copy{order:2;text-align:center}}


/* =========================================================
   CLEAN REBUILD — stable premium adaptive layout
   ========================================================= */

/* Базовая защита адаптивности */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
*,
*::before,
*::after{
  box-sizing:border-box;
  min-width:0;
}
img,
video,
canvas,
svg{
  max-width:100%;
  height:auto;
}
.container{
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  padding-left:clamp(16px,4vw,24px);
  padding-right:clamp(16px,4vw,24px);
}

/* Фон: без "луж", без ромбиков. Только премиальная темная база + золотая пыль */
body{
  background:
    radial-gradient(ellipse 900px 520px at 50% -12%, rgba(205,160,90,.18), transparent 62%),
    radial-gradient(ellipse 700px 420px at 100% 18%, rgba(243,221,178,.08), transparent 58%),
    linear-gradient(180deg,#070504 0%,#120d08 48%,#070504 100%) !important;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 22% 18%, rgba(243,221,178,.10), transparent 26%),
    radial-gradient(circle at 72% 34%, rgba(205,160,90,.09), transparent 28%),
    radial-gradient(circle at 42% 88%, rgba(243,221,178,.07), transparent 30%);
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.18;
  background-image:
    radial-gradient(rgba(243,221,178,.52) .7px, transparent 1px),
    radial-gradient(rgba(205,160,90,.28) .8px, transparent 1px);
  background-size:52px 52px, 93px 93px;
  background-position:0 0, 22px 28px;
  animation:goldDustMove 18s ease-in-out infinite alternate;
}
@keyframes goldDustMove{
  from{background-position:0 0,22px 28px;}
  to{background-position:34px -18px,70px -10px;}
}
.diamond-shimmer{
  display:none !important;
}
.flecks{
  opacity:.06 !important;
  background-image:radial-gradient(rgba(243,221,178,.35) .8px,transparent 1px) !important;
  background-size:64px 64px !important;
}
.grain{
  opacity:.028 !important;
}

/* Header */
header{
  background:rgba(7,5,4,.78) !important;
  border-bottom:1px solid rgba(243,221,178,.16);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.nav-inner{
  min-height:70px;
  width:100%;
}
.brand{
  max-width:58vw;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Новый первый экран */
.clean-hero{
  padding:54px 0 42px;
  position:relative;
  z-index:1;
}
.clean-hero-wrap{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  align-items:start;
}
.clean-portrait{
  display:flex;
  justify-content:center;
}
.clean-portrait-frame{
  position:relative;
  width:min(460px,94vw);
  padding:10px;
  border:1px solid rgba(243,221,178,.24);
  border-radius:34px;
  background:
    linear-gradient(145deg,rgba(243,221,178,.22),rgba(205,160,90,.06)),
    rgba(10,7,5,.62);
  box-shadow:
    0 34px 95px rgba(0,0,0,.48),
    0 0 54px rgba(205,160,90,.18);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.clean-portrait-frame img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  border-radius:26px;
  object-fit:cover;
}
.clean-logo-mark{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  max-width:calc(100% - 34px);
  padding:10px 18px;
  border:1px solid rgba(243,221,178,.26);
  border-radius:999px;
  background:rgba(7,5,4,.74);
  color:#f3ddb2;
  font-family:var(--display);
  font-size:clamp(1.05rem,4vw,1.42rem);
  font-weight:700;
  letter-spacing:.035em;
  white-space:nowrap;
  box-shadow:0 14px 34px rgba(0,0,0,.38);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.clean-intro{
  max-width:900px;
  margin:0 auto;
  text-align:center;
  padding:clamp(24px,5vw,52px);
  border:1px solid rgba(243,221,178,.15);
  border-radius:30px;
  background:
    radial-gradient(circle at 50% 0%,rgba(243,221,178,.10),transparent 42%),
    linear-gradient(155deg,rgba(9,6,4,.76),rgba(9,6,4,.42));
  box-shadow:0 28px 88px rgba(0,0,0,.34);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.clean-intro h1{
  margin-bottom:20px;
  font-size:clamp(2.45rem,7vw,5rem);
  line-height:.96;
}
.clean-intro h1 span{
  color:#f3ddb2;
  font-style:italic;
}
.clean-intro .lead{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
  color:rgba(244,239,230,.86);
}
.clean-intro .lead strong{
  color:#f3ddb2;
  font-weight:700;
}
.clean-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:28px 0 22px;
}
.clean-stats div{
  padding:16px 14px;
  border:1px solid rgba(243,221,178,.16);
  border-radius:18px;
  background:rgba(255,255,255,.035);
}
.clean-stats b{
  display:block;
  color:#f3ddb2;
  font-family:var(--price-font);
  font-size:1.5rem;
}
.clean-stats span{
  display:block;
  color:var(--ink-dim);
  font-size:.82rem;
}
.clean-badges{
  justify-content:center;
}

/* Карточки и прайс */
.service-card,
.price-item,
.contact-card,
.procedure-detail-card,
.section-head{
  background:
    radial-gradient(circle at 0 0,rgba(243,221,178,.08),transparent 36%),
    linear-gradient(155deg,rgba(10,7,5,.76),rgba(10,7,5,.40)) !important;
  border-color:rgba(243,221,178,.16) !important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.service-card,
.price-item,
.btn,
nav a{
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease, color .18s ease !important;
}
.reveal{
  transition:opacity .28s ease, transform .28s ease !important;
}
.price-item{
  text-decoration:none;
  color:inherit;
}

/* Desktop: фото сверху по центру, затем описание; без пропадания */
@media (min-width:981px){
  .clean-hero{
    padding-top:64px;
  }
}

/* Tablet */
@media (max-width:980px){
  .clean-hero{
    padding:38px 0 34px;
  }
  .services-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Mobile */
@media (max-width:760px){
  .nav-inner{
    min-height:62px;
    gap:10px;
  }
  .brand{
    font-size:1.05rem;
    max-width:calc(100vw - 132px);
  }
  .nav-cta{
    display:none !important;
  }
  .menu-toggle{
    display:flex !important;
    flex-shrink:0;
    margin-left:auto;
  }
  nav{
    position:fixed !important;
    top:62px;
    left:12px;
    right:12px;
    z-index:90;
    display:none;
    flex:none;
    max-height:calc(100dvh - 82px);
    overflow-y:auto;
    border:1px solid rgba(243,221,178,.18);
    border-radius:18px;
    background:rgba(7,5,4,.96);
    box-shadow:0 24px 80px rgba(0,0,0,.55);
  }
  nav.open{
    display:block !important;
  }
  nav ul{
    flex-direction:column;
    gap:0;
    padding:10px;
  }
  nav a{
    display:flex;
    width:100%;
    padding:14px;
    border-radius:12px;
  }
  .clean-hero{
    padding:28px 0 28px;
  }
  .clean-portrait-frame{
    width:min(360px,94vw);
    border-radius:26px;
    padding:8px;
  }
  .clean-portrait-frame img{
    border-radius:20px;
  }
  .clean-logo-mark{
    bottom:16px;
    padding:8px 14px;
  }
  .clean-intro{
    padding:24px 16px;
    border-radius:24px;
  }
  .clean-intro h1{
    font-size:clamp(2.1rem,12vw,3.2rem);
  }
  .clean-intro .lead{
    font-size:1rem;
    line-height:1.62;
  }
  .hero-actions,
  .btn-group{
    flex-direction:column;
    align-items:stretch;
  }
  .hero-actions .btn,
  .btn-group .btn{
    width:100%;
  }
  .clean-stats{
    grid-template-columns:1fr;
  }
  .services-grid{
    grid-template-columns:1fr !important;
  }
  .service-card{
    padding:22px 18px;
  }
  .price-tabs{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;
  }
  .price-tab{
    flex:0 0 auto;
    white-space:nowrap;
  }
  .price-item{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    padding:18px 16px;
  }
  .price-item-meta{
    align-items:flex-start;
    text-align:left;
  }
  .field-row,
  .procedure-facts{
    grid-template-columns:1fr !important;
  }
  .booking-fab{
    left:14px;
    right:14px;
    justify-content:center;
  }
  footer{
    padding-bottom:112px;
  }
}

/* Small phones */
@media (max-width:380px){
  .brand{
    font-size:.96rem;
  }
  .clean-intro h1{
    font-size:2.05rem;
  }
}

/* iOS: no fixed backgrounds */
@supports (-webkit-touch-callout:none){
  body{
    background-attachment:scroll !important;
  }
  body::after{
    animation:none !important;
  }
}



/* =========================================================
   SUPER FINAL POLISH — readable luxury, speed, adaptive UX
   ========================================================= */
:root{
  --panel:rgba(10,7,5,.64);
  --panel-strong:rgba(10,7,5,.82);
  --champagne:#f5dfb4;
  --soft-gold:#cda05a;
}

body{
  text-rendering:optimizeLegibility;
}
.clean-intro,
.clean-portrait-frame,
.section-head,
.trust-card,
.service-card,
.price-item,
.contact-card,
.procedure-detail-card{
  box-shadow:
    0 22px 74px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.035);
}
.clean-portrait-frame{
  width:min(500px,94vw);
}
.clean-logo-mark{
  text-shadow:0 0 20px rgba(243,221,178,.20);
}
.clean-intro{
  max-width:940px;
}
.clean-intro .lead{
  font-size:clamp(1.04rem,1.55vw,1.18rem);
}
.trust-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.trust-card{
  padding:26px 22px;
  border:1px solid rgba(243,221,178,.16);
  border-radius:22px;
  background:
    radial-gradient(circle at 0 0,rgba(243,221,178,.08),transparent 38%),
    linear-gradient(155deg,var(--panel),rgba(10,7,5,.36));
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.trust-card b{
  display:block;
  color:var(--champagne);
  font-family:var(--price-font);
  letter-spacing:.08em;
  margin-bottom:12px;
}
.trust-card h3{
  margin-bottom:8px;
}
.service-card,
.price-item{
  position:relative;
  overflow:hidden;
}
.service-card::after,
.price-item::after{
  content:"";
  position:absolute;
  inset:auto 18px 0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(243,221,178,.38),transparent);
  opacity:.0;
  transition:opacity .18s ease;
}
.service-card:hover::after,
.price-item:hover::after{
  opacity:1;
}
.price-item-meta b{
  color:var(--champagne);
}
.procedure-cta-panel{
  margin:24px 0 18px;
  padding:16px;
  border:1px solid rgba(243,221,178,.16);
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  background:rgba(243,221,178,.06);
}
.procedure-cta-panel span{
  color:var(--ink);
  font-weight:700;
}
.tap-active{
  transform:scale(.985) !important;
}
.btn:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible{
  outline:2px solid rgba(243,221,178,.78);
  outline-offset:3px;
}
@media (max-width:980px){
  .trust-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:760px){
  .clean-portrait-frame{
    width:min(390px,94vw);
  }
  .trust-card{
    padding:22px 18px;
  }
  .procedure-cta-panel{
    flex-direction:column;
    align-items:stretch;
    text-align:center;
  }
  .procedure-cta-panel .btn{
    width:100%;
  }
  .price-category{
    scroll-margin-top:84px;
  }
}

/* Smaller floating button */
.booking-fab{
  width:64px !important;
  height:64px !important;
  min-width:64px !important;
  border-radius:50% !important;
  padding:0 !important;
}
.booking-fab span{
  display:none !important;
}
.booking-fab svg{
  width:30px !important;
  height:30px !important;
}
@media(max-width:760px){
  .booking-fab{
    width:58px !important;
    height:58px !important;
    left:auto !important;
    right:16px !important;
    bottom:max(16px,env(safe-area-inset-bottom)) !important;
  }
}


/* =========================================================
   FINAL FIX: realistic FAB kiss, all-procedure render, richer look
   ========================================================= */

/* Floating booking button: small realistic kiss */
.booking-fab{
  width:58px !important;
  height:58px !important;
  min-width:58px !important;
  min-height:58px !important;
  padding:0 !important;
  border-radius:50% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  background:
    radial-gradient(circle at 35% 25%,#fff0c8 0%,#d29a64 38%,#6d3a22 100%) !important;
  border:1px solid rgba(255,230,190,.42) !important;
  box-shadow:
    0 16px 38px rgba(0,0,0,.42),
    0 0 28px rgba(205,160,90,.36) !important;
}
.booking-fab img{
  width:42px !important;
  height:42px !important;
  object-fit:contain !important;
  display:block !important;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.34));
}
.booking-fab svg,
.booking-fab span{
  display:none !important;
}
@media(max-width:760px){
  .booking-fab{
    width:54px !important;
    height:54px !important;
    min-width:54px !important;
    min-height:54px !important;
    left:auto !important;
    right:14px !important;
    bottom:max(14px,env(safe-area-inset-bottom)) !important;
  }
  .booking-fab img{
    width:39px !important;
    height:39px !important;
  }
}

/* Kill duplicate/open mobile menu at page bottom */
footer nav,
footer #primaryNav,
footer .menu-toggle,
footer .nav-inner{
  display:none !important;
}
@media(max-width:760px){
  nav:not(#primaryNav){
    display:none !important;
  }
  #primaryNav{
    bottom:auto !important;
  }
}

/* Make full price list always visible even if reveal observer fails */
.price-category,
.price-item{
  opacity:1 !important;
  transform:none !important;
  visibility:visible !important;
}

/* More premium, less empty */
.luxury-brand-strip{
  position:relative;
  z-index:1;
  padding:4px 0 18px;
}
.brand-strip-inner{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  padding:14px;
  border:1px solid rgba(243,221,178,.13);
  border-radius:999px;
  background:rgba(10,7,5,.44);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.brand-strip-inner span{
  padding:8px 14px;
  border-radius:999px;
  background:linear-gradient(135deg,rgba(243,221,178,.13),rgba(205,160,90,.04));
  color:#f3ddb2;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.clean-hero{
  background:
    radial-gradient(ellipse 560px 320px at 50% 4%,rgba(243,221,178,.08),transparent 64%);
}
.clean-portrait-frame::before{
  content:"";
  position:absolute;
  inset:-18px;
  z-index:-1;
  border-radius:42px;
  background:radial-gradient(circle,rgba(205,160,90,.28),transparent 62%);
  filter:blur(22px);
}
.clean-logo-mark{
  background:
    linear-gradient(135deg,rgba(14,9,6,.86),rgba(14,9,6,.58)) !important;
  border-color:rgba(243,221,178,.38) !important;
}
.service-card .more,
.price-tab{
  color:#f3ddb2 !important;
}
.price-tabs{
  align-items:center;
}
.price-grid{
  gap:14px !important;
}
.price-item{
  border-radius:18px !important;
}
.procedure-detail-card{
  position:relative;
  overflow:hidden;
}
.procedure-detail-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 80% 0%,rgba(243,221,178,.10),transparent 42%);
}

/* Faster, cleaner */
.reveal{
  transition-duration:.22s !important;
}


/* =========================================================
   ALL DEVICES OPTIMIZATION — iOS / Android / tablets / desktop
   Keep this block at the end.
   ========================================================= */

html{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:78px;
}
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  min-height:100svh;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  touch-action:manipulation;
}
*,
*::before,
*::after{
  box-sizing:border-box;
  min-width:0;
}
img,
svg,
video,
canvas{
  max-width:100%;
  height:auto;
}
button,
a,
input,
select,
textarea{
  -webkit-tap-highlight-color:transparent;
}
.container{
  width:100%;
  max-width:1180px;
  margin-inline:auto;
  padding-left:max(16px,env(safe-area-inset-left));
  padding-right:max(16px,env(safe-area-inset-right));
}

/* Header: stable on all screens */
header{
  top:0;
  left:0;
  right:0;
}
.nav-inner{
  width:100%;
  min-height:68px;
  padding-left:max(14px,env(safe-area-inset-left));
  padding-right:max(14px,env(safe-area-inset-right));
}
.brand{
  flex:0 1 auto;
  max-width:54vw;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
nav{
  min-width:0;
}
nav ul{
  min-width:0;
}

/* Desktop */
@media (min-width:1025px){
  .menu-toggle{
    display:none !important;
  }
  #primaryNav{
    display:block !important;
    position:static !important;
    transform:none !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }
  .services-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  .trust-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

/* Tablets */
@media (max-width:1024px){
  .services-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .trust-grid{
    grid-template-columns:1fr !important;
  }
  .clean-intro,
  .section-head,
  .contact-card,
  .procedure-detail-card{
    padding-left:clamp(18px,4vw,34px);
    padding-right:clamp(18px,4vw,34px);
  }
}

/* Phones */
@media (max-width:760px){
  html{
    scroll-padding-top:64px;
  }
  .nav-inner{
    min-height:62px;
    gap:10px;
  }
  .brand{
    font-size:1.02rem !important;
    max-width:calc(100vw - 124px);
  }
  .nav-cta{
    display:none !important;
  }
  .menu-toggle{
    display:flex !important;
    width:42px;
    height:42px;
    flex-shrink:0;
    margin-left:auto;
  }
  #primaryNav{
    position:fixed !important;
    top:calc(62px + env(safe-area-inset-top));
    left:max(12px,env(safe-area-inset-left));
    right:max(12px,env(safe-area-inset-right));
    bottom:auto !important;
    display:none !important;
    max-height:calc(100dvh - 82px);
    overflow-y:auto;
    z-index:999;
    border:1px solid rgba(243,221,178,.2);
    border-radius:18px;
    background:rgba(7,5,4,.98);
    box-shadow:0 22px 70px rgba(0,0,0,.56);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
  }
  #primaryNav.open{
    display:block !important;
  }
  #primaryNav ul{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px;
  }
  #primaryNav li{
    width:100%;
  }
  #primaryNav a{
    display:flex;
    width:100%;
    min-height:48px;
    align-items:center;
    padding:13px 14px;
    border-radius:12px;
  }

  .clean-hero{
    padding-top:26px !important;
    padding-bottom:28px !important;
  }
  .clean-portrait-frame{
    width:min(370px,94vw) !important;
    padding:8px !important;
    border-radius:26px !important;
  }
  .clean-portrait-frame img{
    border-radius:20px !important;
  }
  .clean-logo-mark{
    max-width:calc(100% - 24px);
    font-size:1rem !important;
    padding:8px 12px !important;
    bottom:14px !important;
  }
  .clean-intro{
    padding:22px 16px !important;
    border-radius:22px !important;
  }
  .clean-intro h1,
  h1{
    font-size:clamp(2.05rem,11.5vw,3.1rem) !important;
    line-height:1.02 !important;
  }
  h2{
    font-size:clamp(1.55rem,8vw,2.1rem) !important;
  }
  .lead{
    font-size:1rem !important;
    line-height:1.62 !important;
  }
  .hero-actions,
  .btn-group{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .hero-actions .btn,
  .btn-group .btn{
    width:100%;
  }
  .clean-stats,
  .procedure-facts,
  .field-row{
    grid-template-columns:1fr !important;
  }
  .services-grid{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
  .service-card{
    padding:22px 18px !important;
  }

  .price-tabs{
    display:flex;
    overflow-x:auto;
    gap:10px;
    padding-bottom:12px;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .price-tab{
    flex:0 0 auto;
    white-space:nowrap;
    scroll-snap-align:start;
  }
  .price-grid{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }
  .price-item{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:18px 16px !important;
  }
  .price-item-meta{
    align-items:flex-start !important;
    text-align:left !important;
  }

  .booking-overlay{
    align-items:flex-end !important;
    padding:10px !important;
  }
  .booking-modal{
    width:100%;
    max-height:92dvh;
    padding:34px 16px 22px !important;
    border-radius:20px 20px 14px 14px !important;
  }
  .booking-fab{
    width:54px !important;
    height:54px !important;
    min-width:54px !important;
    min-height:54px !important;
    left:auto !important;
    right:max(14px,env(safe-area-inset-right)) !important;
    bottom:max(14px,env(safe-area-inset-bottom)) !important;
  }
  .back-to-top{
    right:max(16px,env(safe-area-inset-right)) !important;
    bottom:max(82px,calc(env(safe-area-inset-bottom) + 82px)) !important;
  }
  footer{
    padding-bottom:112px !important;
  }
  .footer-inner,
  .footer-links{
    flex-direction:column !important;
    align-items:flex-start !important;
  }
}

/* Small phones */
@media (max-width:380px){
  .brand{
    font-size:.92rem !important;
    max-width:calc(100vw - 114px);
  }
  .btn{
    padding-left:14px !important;
    padding-right:14px !important;
  }
  .clean-intro h1,
  h1{
    font-size:2rem !important;
  }
}

/* Landscape phones */
@media (max-height:480px) and (orientation:landscape){
  #primaryNav{
    max-height:calc(100dvh - 70px);
  }
  .clean-hero{
    padding-top:18px !important;
  }
  .clean-portrait-frame{
    width:min(300px,48vw) !important;
  }
}

/* iOS Safari fixed background safety */
@supports (-webkit-touch-callout:none){
  body{
    background-attachment:scroll !important;
  }
  .booking-modal{
    -webkit-overflow-scrolling:touch;
  }
}

/* Low-end device / accessibility */
@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
