:root {
  --primary: #6d355e;
  --primary-dark: #3c1d35;
  --primary-soft: #f2e3ec;
  --rose: #c883a7;
  --cream: #fffaf7;
  --white: #ffffff;
  --text: #2f2730;
  --muted: #736873;
  --line: #e8dce3;
  --shadow: 0 24px 60px rgba(70, 33, 60, 0.13);
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--text);
  background: var(--cream);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.6;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: 104px 0; }
.overline {
  margin: 0 0 12px;
  color: var(--primary);
  font-size: 0.79rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; line-height: 1.05; }

.header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  right: 0;
  background: rgba(255, 250, 247, 0.96);
  border-bottom: 1px solid rgba(109, 53, 94, 0.1);
  box-shadow: 0 8px 28px rgba(59, 29, 51, 0.06);
}
.header-inner { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.identity { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.identity-icon { width: 48px; height: 48px; flex: 0 0 48px; color: var(--primary); }
.identity-icon circle { fill: var(--primary-soft); stroke: currentColor; stroke-width: 2; }
.identity-icon path { fill: currentColor; }
.identity strong, .identity small { display: block; }
.identity strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.02rem; line-height: 1.15; }
.identity small { margin-top: 3px; color: var(--muted); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }
.menu { display: flex; align-items: center; gap: 25px; }
.menu a { color: #473b45; font-size: 0.92rem; font-weight: 700; text-decoration: none; }
.menu a:hover { color: var(--primary); }
.menu .menu-call { padding: 11px 18px; color: white; background: var(--primary); border-radius: 999px; }
.menu-button { display: none; width: 46px; height: 46px; padding: 10px; border: 0; background: transparent; cursor: pointer; }
.menu-button span { display: block; height: 2px; margin: 6px 0; background: var(--primary-dark); transition: transform 0.2s ease, opacity 0.2s ease; }

.hero {
  position: relative;
  overflow: hidden;
  min-height: 760px;
  padding: 166px 0 118px;
  background: linear-gradient(135deg, #fffaf7 0%, #f7e9f1 50%, #ead5e2 100%);
}
.hero-grid { display: grid; grid-template-columns: 1.06fr 0.94fr; align-items: center; gap: 70px; }
.hero-content { position: relative; z-index: 2; }
.hero h1 { margin-bottom: 24px; color: var(--primary-dark); font-size: clamp(4rem, 7.4vw, 7.25rem); letter-spacing: -0.055em; }
.hero h1 span { color: var(--primary); }
.hero-location { display: flex; align-items: flex-start; gap: 10px; max-width: 630px; margin-bottom: 30px; color: var(--muted); font-size: 1.05rem; }
.hero-location svg { width: 23px; flex: 0 0 23px; margin-top: 2px; fill: var(--primary); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 13px 22px; border: 1px solid transparent; border-radius: 999px; font-weight: 800; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.button:hover { transform: translateY(-2px); }
.button svg { width: 20px; fill: currentColor; }
.button-primary { color: white; background: var(--primary); box-shadow: 0 14px 28px rgba(109, 53, 94, 0.24); }
.button-secondary { color: var(--primary); background: rgba(255, 255, 255, 0.74); border-color: rgba(109, 53, 94, 0.2); }
.hero-art { position: relative; z-index: 1; display: grid; place-items: center; min-height: 470px; }
.art-center { position: relative; z-index: 3; width: 230px; height: 230px; display: grid; place-items: center; color: white; background: linear-gradient(145deg, var(--primary), #a25e84); border-radius: 50%; box-shadow: 0 30px 70px rgba(109, 53, 94, 0.3); }
.art-center svg { width: 162px; }
.art-center circle { fill: none; stroke: currentColor; stroke-width: 2; opacity: 0.35; }
.art-center path { fill: currentColor; }
.art-ring { position: absolute; border: 1px solid rgba(109, 53, 94, 0.22); border-radius: 50%; }
.ring-one { width: 350px; height: 350px; }
.ring-two { width: 430px; height: 430px; border-style: dashed; }
.art-label { position: absolute; z-index: 4; right: 2%; bottom: 12%; padding: 17px 22px; color: var(--primary-dark); background: white; border-radius: 18px; box-shadow: var(--shadow); font-family: Georgia, "Times New Roman", serif; font-size: 1.12rem; line-height: 1.2; }
.decor { position: absolute; border-radius: 50%; pointer-events: none; }
.decor-one { width: 310px; height: 310px; top: 65px; right: -120px; background: rgba(200, 131, 167, 0.24); }
.decor-two { width: 180px; height: 180px; bottom: 55px; left: 38%; background: rgba(255, 255, 255, 0.55); }

.section-title { max-width: 780px; margin-bottom: 42px; }
.section-title h2, .location h2, .contact h2, .facebook h2 { margin-bottom: 0; color: var(--primary-dark); font-size: clamp(2.5rem, 5vw, 4.7rem); letter-spacing: -0.04em; }
.specialty-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 26px; padding: 34px; background: white; border: 1px solid var(--line); border-radius: 30px; box-shadow: var(--shadow); }
.card-icon { width: 92px; height: 92px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); border-radius: 27px; }
.card-icon svg { width: 58px; }
.card-icon circle { fill: none; stroke: currentColor; stroke-width: 2; }
.card-icon path { fill: currentColor; }
.specialty-card p { margin-bottom: 5px; color: var(--muted); font-weight: 700; }
.specialty-card h3 { margin-bottom: 0; color: var(--primary-dark); font-size: clamp(1.7rem, 3vw, 2.8rem); }
.specialty-card > a { color: var(--primary); font-weight: 900; text-decoration: none; white-space: nowrap; }

.details { position: relative; background: var(--primary-dark); }
.details-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.detail-card { min-height: 245px; padding: 31px; color: white; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.13); border-radius: 25px; }
.detail-icon { width: 54px; height: 54px; display: grid; place-items: center; color: #f0c1da; background: rgba(255, 255, 255, 0.11); border-radius: 16px; }
.detail-icon svg { width: 26px; fill: currentColor; }
.facebook-icon { color: white; background: #316ff6; font-family: Arial, sans-serif; font-size: 2rem; font-weight: 900; }
.detail-card p { margin: 25px 0 7px; color: #d9c7d3; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.detail-card a, .detail-card strong { color: white; font-size: 1.25rem; line-height: 1.38; text-decoration: none; }

.location-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: center; gap: 74px; }
.address { display: flex; align-items: flex-start; gap: 15px; margin: 26px 0 30px; padding: 23px; background: white; border-left: 4px solid var(--rose); border-radius: 0 20px 20px 0; box-shadow: 0 13px 35px rgba(70, 33, 60, 0.08); }
.address svg { width: 29px; flex: 0 0 29px; fill: var(--primary); }
.address p { margin: 0; color: var(--muted); font-size: 1.05rem; }
.map-art { position: relative; overflow: hidden; min-height: 440px; background: linear-gradient(145deg, #f6eaf1, #e7d1de); border-radius: 32px; box-shadow: var(--shadow); }
.map-lines { position: absolute; inset: 0; opacity: 0.55; background-image: linear-gradient(rgba(109, 53, 94, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(109, 53, 94, 0.1) 1px, transparent 1px); background-size: 38px 38px; }
.map-street { position: absolute; left: -20%; width: 140%; height: 44px; background: rgba(255, 255, 255, 0.82); border: 1px solid rgba(109, 53, 94, 0.08); box-shadow: 0 6px 18px rgba(70, 33, 60, 0.08); }
.street-a { top: 39%; transform: rotate(18deg); }
.street-b { top: 48%; transform: rotate(-24deg); }
.pin { position: absolute; z-index: 2; left: 50%; top: 43%; width: 90px; height: 90px; display: grid; place-items: center; color: white; background: var(--primary); border-radius: 50% 50% 50% 0; transform: translate(-50%, -50%) rotate(-45deg); box-shadow: 0 20px 45px rgba(109, 53, 94, 0.3); }
.pin svg { width: 43px; fill: currentColor; transform: rotate(45deg); }
.map-caption { position: absolute; z-index: 3; left: 50%; bottom: 38px; min-width: 220px; padding: 15px 20px; text-align: center; background: white; border-radius: 16px; box-shadow: 0 15px 35px rgba(70, 33, 60, 0.13); transform: translateX(-50%); }

.contact { padding-top: 50px; }
.contact-box { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 45px; padding: 52px; color: white; background: linear-gradient(135deg, var(--primary-dark), var(--primary)); border-radius: 32px; box-shadow: var(--shadow); }
.contact-box .overline { color: #f1c6dd; }
.contact-box h2 { color: white; }
.contact-box p:last-child { margin: 12px 0 0; color: #eadce5; }
.phone-card { min-width: 285px; padding: 27px 30px; color: var(--primary-dark); text-align: center; background: white; border-radius: 24px; text-decoration: none; box-shadow: 0 16px 38px rgba(39, 17, 33, 0.2); }
.phone-card small, .phone-card strong, .phone-card span { display: block; }
.phone-card small { color: var(--muted); font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.phone-card strong { margin: 6px 0; font-size: 1.75rem; }
.phone-card span { color: var(--primary); font-weight: 800; }

.facebook { padding-top: 20px; }
.facebook-box { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; padding: 38px; background: white; border: 1px solid var(--line); border-radius: 30px; }
.facebook-mark { width: 86px; height: 86px; display: grid; place-items: center; color: white; background: #316ff6; border-radius: 26px; font-size: 3rem; font-weight: 900; }
.facebook-box .overline { margin-bottom: 7px; }
.facebook-box h2 { font-size: clamp(2rem, 4vw, 3.35rem); }
.button-facebook { color: white; background: #316ff6; }

.footer { padding: 65px 0 25px; color: white; background: #281721; }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 55px; padding-bottom: 36px; }
.footer strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; }
.footer p { margin: 7px 0 0; color: #cdbbc7; }
.footer a { text-decoration: none; }
.footer-grid a { font-size: 1.28rem; font-weight: 900; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 23px; color: #b8a6b2; border-top: 1px solid rgba(255, 255, 255, 0.1); font-size: 0.9rem; }
.footer-bottom a { color: #efc4db; }
.floating-phone { position: fixed; z-index: 90; right: 22px; bottom: 22px; display: flex; align-items: center; gap: 9px; padding: 14px 18px; color: white; background: var(--primary); border-radius: 999px; box-shadow: 0 15px 34px rgba(109, 53, 94, 0.32); font-weight: 900; text-decoration: none; }
.floating-phone svg { width: 20px; fill: currentColor; }

@media (max-width: 940px) {
  .section { padding: 84px 0; }
  .menu-button { position: relative; z-index: 102; display: block; }
  .menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .menu { position: fixed; z-index: 101; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: 28px; background: #fffaf7; transform: translateY(-105%); transition: transform 0.3s ease; }
  .menu.is-open { transform: translateY(0); }
  .menu a { font-size: 1.15rem; }
  .hero { min-height: auto; padding-top: 140px; }
  .hero-grid, .location-grid { grid-template-columns: 1fr; }
  .hero-content { max-width: 780px; margin-inline: auto; text-align: center; }
  .hero-location { justify-content: center; margin-inline: auto; }
  .hero-actions { justify-content: center; }
  .hero-art { min-height: 430px; }
  .location-grid { gap: 46px; }
  .contact-box { grid-template-columns: 1fr; }
  .phone-card { width: 100%; }
  .facebook-box { grid-template-columns: auto 1fr; }
  .facebook-box .button { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 700px) {
  .container { width: min(calc(100% - 28px), var(--container)); }
  .section { padding: 70px 0; }
  .header-inner { min-height: 76px; }
  .identity-icon { width: 43px; height: 43px; flex-basis: 43px; }
  .identity strong { max-width: 185px; font-size: 0.88rem; }
  .identity small { font-size: 0.63rem; }
  .hero { padding: 126px 0 90px; }
  .hero h1 { font-size: clamp(3.1rem, 15vw, 4.8rem); }
  .hero-actions { flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .hero-art { min-height: 350px; }
  .art-center { width: 170px; height: 170px; }
  .art-center svg { width: 120px; }
  .ring-one { width: 255px; height: 255px; }
  .ring-two { width: 315px; height: 315px; }
  .art-label { right: 0; bottom: 7%; font-size: 0.95rem; }
  .specialty-card { grid-template-columns: 1fr; padding: 28px 22px; text-align: center; }
  .card-icon { margin-inline: auto; }
  .details-grid { grid-template-columns: 1fr; }
  .detail-card { min-height: auto; }
  .map-art { min-height: 335px; }
  .contact-box { padding: 34px 22px; }
  .phone-card { min-width: 0; padding: 24px 15px; }
  .phone-card strong { font-size: 1.5rem; }
  .facebook-box { grid-template-columns: 1fr; padding: 30px 23px; text-align: center; }
  .facebook-mark { margin-inline: auto; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .footer-bottom { flex-direction: column; }
  .floating-phone { right: 14px; bottom: 14px; padding: 14px; }
  .floating-phone span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.001ms !important; }
}
