
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#202b28;background:#f6f5f2;--green:#074338;--muted:#69736f;--line:#e4e7e2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:135px}body{margin:0}a{color:var(--green);text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #e6b83d;outline-offset:5px}header{background:#074338;border-bottom:1px solid #074338;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1080px)/2 + 24px));gap:20px}.brand{font-size:20px;font-weight:750;letter-spacing:-.7px;display:flex;align-items:center;gap:9px;color:#173f34}.brand img{display:block;width:215px;height:auto;max-height:46px;object-fit:contain}.brand svg{width:29px;height:29px}.header-note{color:#dce9e2;font-size:13px}.wrap{max-width:1080px;margin:auto;padding:32px 24px 64px}.hero{padding:34px;background:white;border:1px solid var(--line);border-radius:24px;display:flex;gap:28px;align-items:flex-start}.portrait{height:116px;width:116px;flex-shrink:0;border-radius:50%;background:#e1efe8;color:var(--green);display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:650;object-fit:cover}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:650;color:var(--muted);text-transform:uppercase}h1{font-size:34px;line-height:1.15;letter-spacing:-1px;margin:10px 0 12px}h2{font-size:23px;letter-spacing:-.5px;margin:0 0 22px}h3{font-size:17px;line-height:1.45;margin:0 0 8px}.specialty{font-size:18px;margin:0 0 10px}.muted{color:var(--muted)}p{line-height:1.65;margin:0 0 14px}.location-line{font-size:14px;color:var(--muted)}.hero-main{flex:1;min-width:0}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.button{background:var(--green);border:0;border-radius:30px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;color:white;font-weight:650;font-size:15px}.secondary{background:#edf2ee;color:var(--green)}.tabs{display:flex;gap:30px;overflow:auto;position:relative;top:auto;z-index:auto;background:#f6f5f2f5;border-bottom:1px solid #d7ded7;padding:23px 3px 17px;margin-bottom:28px;backdrop-filter:blur(12px)}.tabs a{white-space:nowrap;font-weight:600;font-size:14px;color:#4c5953}.tabs a:hover{color:var(--green)}.columns.single-column{grid-template-columns:minmax(0,1fr)}.columns{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.card{padding:28px;background:white;border:1px solid var(--line);border-radius:20px;margin-bottom:20px;overflow:hidden}.prose{white-space:pre-line;overflow-wrap:anywhere}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{font-size:13px;padding:8px 12px;border-radius:20px;background:#f1f4ef}.label{font-size:13px;color:var(--muted);margin-top:22px}.service{display:flex;gap:20px;justify-content:space-between;padding:22px 0;border-top:1px solid var(--line)}.service:first-of-type{border-top:0;padding-top:0}.service:last-child{padding-bottom:0}.service-main{min-width:0;flex:1}.service p{font-size:14px;color:var(--muted)}.price{white-space:nowrap;font-weight:700;font-size:16px;margin-top:3px}.duration{font-size:12px;color:var(--muted)}.address{padding:20px 0;border-top:1px solid var(--line)}.address:first-of-type{padding-top:0;border-top:0}.address:last-child{padding-bottom:0}.address p{font-size:14px}.address a{font-size:14px;text-decoration:underline}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery img{width:100%;height:180px;object-fit:cover;border-radius:14px}.gallery figure{margin:0}.gallery figcaption{font-size:12px;color:var(--muted);margin-top:7px}.logo{max-height:40px;max-width:130px;object-fit:contain;margin-bottom:18px}details{border-top:1px solid var(--line);padding:18px 0}details:first-of-type{border-top:0}details:last-child{padding-bottom:0}summary{font-weight:600;cursor:pointer;line-height:1.5}details p{margin:14px 0 0;font-size:14px}.aside-card{position:sticky;top:82px}.aside-card p{font-size:14px}.aside-card .button{width:100%;margin-top:10px}.status-dot{height:8px;width:8px;border-radius:50%;background:#d4a850;display:inline-block;margin-right:8px}.notice{background:#ecf3ed;color:#285244;border:1px solid #d9e5da;border-radius:14px;padding:14px 18px;font-size:13px;line-height:1.6;margin-bottom:22px}.demo{background:#fff3ce;color:#70570f;border-color:#ecdfb0}.empty{font-size:15px;color:var(--muted)}footer{display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:13px;padding:28px 20px;border-top:1px solid var(--line);background:#fff}.footer-platform{display:inline-flex;align-items:center;justify-content:center;gap:10px;line-height:1.2}.footer-platform-label{color:#7a817e;white-space:nowrap}.footer-platform-logo{display:inline-flex;align-items:center;justify-content:center;background:var(--green);border-radius:10px;padding:6px 10px;transition:opacity .18s ease,transform .18s ease}.footer-platform-logo:hover{opacity:.92}.footer-platform-logo:active{transform:scale(.98)}.footer-platform-logo img{display:block;width:112px;height:auto;max-height:28px;object-fit:contain}.footer-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.footer-legal{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;font-size:12px;line-height:1.4}.footer-legal a{color:#7a817e;text-decoration:none;transition:color .18s ease}.footer-legal a:hover{color:var(--green)}.footer-legal-separator{color:#b2b7b4;user-select:none}@media(max-width:420px){footer{padding-left:14px;padding-right:14px}.footer-platform{gap:8px}.footer-platform-label{font-size:12px}.footer-platform-logo{padding:5px 9px;border-radius:9px}.footer-platform-logo img{width:102px;max-height:26px}}.landing{max-width:650px;margin:65px auto 95px;text-align:center}.landing .eyebrow{color:var(--green)}.landing h1{font-size:46px;margin:22px 0}.landing p{font-size:18px;color:var(--muted)}.landing .button{margin-top:20px}.landing .symbol{height:84px;width:84px;padding:22px;background:#e1eee7;border-radius:25px;display:inline-block;color:var(--green);margin-bottom:30px}.landing svg{width:100%;height:100%}#share-status{font-size:12px;margin:12px 0 0;color:var(--muted)}.mobile-bar{display:none}@media(max-width:700px){header{height:70px;padding:0 20px}.brand img{width:195px;max-height:40px}.header-note{display:none}.wrap{padding:20px 16px 80px}.hero{padding:25px 20px;gap:18px;flex-wrap:wrap;border-radius:20px}.portrait{width:84px;height:84px;font-size:28px}.hero-main{min-width:190px}h1{font-size:27px;letter-spacing:-.8px}.specialty{font-size:16px}.eyebrow{font-size:10px}.actions{margin-top:20px;gap:8px}.button{padding:12px 18px;font-size:14px}.columns{display:block}.card{padding:24px 20px;border-radius:18px}h2{font-size:22px}.tabs{gap:26px;margin-bottom:20px;padding:20px 4px 16px}.service{gap:12px}.price{font-size:14px}.service h3{font-size:16px}.gallery img{height:135px}.aside-card{position:static}.landing{margin:40px auto}.landing h1{font-size:35px}.landing p{font-size:16px}.mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;padding:10px 20px max(10px,env(safe-area-inset-bottom));background:#ffffffed;border-top:1px solid var(--line);z-index:3}.mobile-bar .button{width:100%}footer{padding-bottom:85px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.hero{display:grid;grid-template-columns:108px minmax(0,1fr);gap:0 20px;padding:26px 28px;border-radius:16px}.hero>.portrait{grid-row:1;width:108px;height:108px}.hero-main{display:contents}.hero .eyebrow{display:none}.hero h1,.hero .specialty,.hero .location-line{grid-column:2}.hero h1{grid-row:1;align-self:start;font-size:26px;margin:0 0 8px}.hero .portrait{grid-row:1 / 4}.hero .specialty{margin:0 0 7px}.hero .location-line{margin:0}.hero .actions{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;margin-top:20px}.hero #share-status{grid-column:1 / -1;margin:0}.hero #share-status:empty{display:none}.tabs{background:white;border-radius:0 0 16px 16px;padding:0 16px;margin-top:0;gap:24px}.tabs a{padding:20px 0 16px}.tabs a:first-child{border-bottom:3px solid var(--green);color:var(--green)}.card{border-radius:16px}.mobile-bar{display:none}
@media(max-width:700px){body{background:#fff}header{height:62px}.brand img{width:200px;max-height:40px}.wrap{padding:0 0 32px}.hero{display:flex;flex-direction:column;gap:0;border:0;border-radius:0;padding:22px 18px 14px}.hero>.portrait{width:124px;height:124px;margin:0 0 16px;object-position:center 35%}.hero-main{display:contents}.hero h1{font-size:23px;line-height:1.26;letter-spacing:-.4px;margin:0 0 5px}.hero .specialty{font-size:18px;line-height:1.4;margin:0 0 4px}.hero .location-line{font-size:17px;line-height:1.4}.hero .actions{display:flex;flex-direction:column;gap:10px;margin:20px 0 0;width:100%}.hero .button{width:100%;min-height:54px;font-size:17px;padding:14px 20px}.hero .secondary{background:#f0eeeb;color:#535651}.tabs{border-radius:0;padding:0 18px;gap:26px;margin:0 0 8px;border-bottom:1px solid #e6e8e5;box-shadow:0 5px 0 #f5f5f3}.tabs a{font-size:15px;padding:22px 0 17px}.columns{display:block}.card{border:0;border-radius:0;padding:22px 18px;margin:0;border-bottom:8px solid #f5f5f3}.card h2{font-size:20px;margin-bottom:16px}.card p{font-size:17px;line-height:1.55}.label{font-size:14px}.chip{font-size:14px}.mobile-bar{display:none}footer{padding-bottom:28px}html{scroll-padding-top:70px}}

/* =========================================
   DOBRO MEDICAL — ABOUT SPECIALIST / APPLE-INSPIRED
   ========================================= */
#about.card {
  position: relative;
  background: #ffffff;
  border: 1px solid #e7e7e9;
  border-radius: 24px;
  padding: 26px 30px 24px;
  margin: 0 0 20px;
  overflow: hidden;
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.035);
}

#about .about-head {
  max-width: 780px;
  margin-bottom: 4px;
}

#about .about-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 5px 10px;
  margin: 0 0 10px;
  border-radius: 999px;
  background: #f2f7f5;
  color: #176651;
  font-size: 12px;
  line-height: 1;
  font-weight: 650;
  letter-spacing: .01em;
}

#about h2 {
  margin: 0 0 9px;
  color: #101114;
  font-size: 30px;
  line-height: 1.12;
  font-weight: 740;
  letter-spacing: -0.75px;
}

#about .about-copy {
  margin: 0;
  max-width: 760px;
  color: #4f5258;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: -0.12px;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

#about .about-copy.empty {
  color: #7a7d83;
}

#about .about-grid {
  display: block;
  margin-top: 20px;
}

#about .about-item {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  column-gap: 14px;
  align-items: center;
  min-width: 0;
  padding: 16px 0;
  border-top: 1px solid #eceef1;
  background: transparent;
}

#about .about-item-head {
  display: contents;
}

#about .about-icon {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f3f7f5;
  color: #176651;
}

#about .about-icon svg {
  width: 20px;
  height: 20px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#about .about-label {
  grid-column: 2;
  margin: 0;
  color: #7a7f87;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 520;
}

#about .chips {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  margin: 8px 0 0;
}

#about .chip {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border: 1px solid #ececef;
  border-radius: 999px;
  background: #f7f7f8;
  color: #1d1d1f;
  font-size: 14px;
  line-height: 1;
  font-weight: 500;
  box-shadow: none;
}

@media (max-width: 700px) {
  #about.card {
    margin: 12px 16px 18px;
    padding: 26px 20px 18px;
    border: 1px solid #e8e8ea;
    border-radius: 22px;
    box-shadow: 0 8px 26px rgba(0,0,0,.032);
  }

  #about .about-head {
    margin-bottom: 6px;
  }

  #about .about-kicker {
    min-height: 26px;
    margin-bottom: 12px;
    padding: 6px 9px;
    font-size: 11px;
  }

  #about h2 {
    margin-bottom: 12px;
    font-size: 28px;
    line-height: 1.12;
    letter-spacing: -0.7px;
  }

  #about .about-copy {
    font-size: 16px;
    line-height: 1.55;
  }

  #about .about-grid {
    margin-top: 24px;
  }

  #about .about-item {
    grid-template-columns: 50px minmax(0, 1fr);
    column-gap: 14px;
    padding: 18px 0;
  }

  #about .about-icon {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

  #about .about-icon svg {
    width: 20px;
    height: 20px;
  }

  #about .about-label {
    margin-top: 0;
    font-size: 13px;
  }

  #about .chips {
    gap: 10px;
    margin-top: 10px;
  }

  #about .chip {
    min-height: 38px;
    padding: 9px 14px;
    font-size: 14px;
  }
}

@media (max-width: 420px) {
  #about.card {
    margin-left: 12px;
    margin-right: 12px;
    padding: 24px 17px 16px;
    border-radius: 20px;
  }

  #about h2 {
    font-size: 26px;
  }

  #about .about-copy {
    font-size: 15.5px;
  }

  #about .about-item {
    grid-template-columns: 46px minmax(0, 1fr);
    column-gap: 12px;
    padding: 17px 0;
  }

  #about .about-icon {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  #about .chips {
    gap: 8px 10px;
    margin-top: 9px;
  }

  #about .chip {
    min-height: 36px;
    padding: 8px 13px;
    font-size: 14px;
  }
}

/* =========================================
   DOBRO MEDICAL — SPECIALIST SERVICES V3
   ========================================= */

/* Section: almost white, like the reference */
#services.card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 30px 28px 34px;
  margin: 0 0 20px;
  overflow: visible;
}

/* Section heading */
#services > h2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 22px;
  font-size: 28px;
  line-height: 1.15;
  font-weight: 760;
  letter-spacing: -0.7px;
  color: #141a18;
}

#services > h2::after {
  content: "Переглянути всі  ›";
  flex-shrink: 0;
  font-size: 16px;
  line-height: 1;
  font-weight: 500;
  letter-spacing: -0.2px;
  color: #176651;
  white-space: nowrap;
}

/* One service card */
#services .service {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;

  background: #ffffff;
  border: 1px solid #edf0ee;
  border-radius: 22px;
  padding: 24px 26px;
  margin: 0 0 14px;

  box-shadow:
    0 12px 30px rgba(29, 52, 44, 0.045),
    0 2px 8px rgba(29, 52, 44, 0.025);
}

#services .service:last-of-type {
  margin-bottom: 0;
}

#services .service-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-self: stretch;
}

/* Service name */
#services .service h3 {
  margin: 0;
  font-size: 20px;
  line-height: 1.28;
  font-weight: 720;
  letter-spacing: -0.35px;
  color: #111715;
}

/* Optional description — no placeholder gap when it does not exist */
#services .service-description {
  margin: 7px 0 0;
  max-width: 590px;
  font-size: 16px;
  line-height: 1.42;
  font-weight: 400;
  color: #69758a;
  overflow-wrap: anywhere;
}

/* Duration + price */
#services .service-meta {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 20px;
  margin-top: 16px;
}

/* When there is a description, give the bottom row a little more air */
#services .service.has-description .service-meta {
  margin-top: 22px;
}

#services .duration {
  order: 1;
  font-size: 18px;
  line-height: 1;
  font-weight: 400;
  color: #263b55;
  white-space: nowrap;
}

#services .service-meta::after {
  content: "";
  order: 2;
  width: 1px;
  height: 34px;
  display: block;
  flex: 0 0 1px;
  background: #dce2df;
}

#services .price {
  order: 3;
  margin: 0;
  font-size: 18px;
  line-height: 1;
  font-weight: 500;
  color: #263b55;
  white-space: nowrap;
}

/* Choose time button */
#services .book-service {
  align-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;

  min-width: 158px;
  min-height: 50px;
  padding: 12px 18px;

  border: 0;
  border-radius: 999px;
  background: #edf8f4;
  color: #105846;
  box-shadow: none;

  font-size: 16px;
  line-height: 1;
  font-weight: 650;
  white-space: nowrap;

  transition: background 0.18s ease, transform 0.18s ease;
}

#services .book-service::after {
  content: "→";
  font-size: 21px;
  line-height: 1;
  font-weight: 400;
  color: #105846;
}

#services .book-service:hover {
  background: #e4f4ee;
}

#services .book-service:active {
  transform: scale(0.98);
}

/* Booking dialog — keep existing booking behaviour/styling */
dialog {
  border: 1px solid #e4e7e2;
  border-radius: 20px;
  padding: 28px;
  max-width: 430px;
  width: calc(100% - 32px);
  color: #202b28;
}

dialog::backdrop { background: #142f2966; }
.dialog-close { float: right; border: 0; background: none; font-size: 28px; cursor: pointer; }
dialog .button { width: 100%; }
#booking-form { display: grid; gap: 12px; }
#booking-form label { display: grid; gap: 5px; font-size: 13px; color: #69736f; }
#booking-form input,
#booking-form select,
#booking-form textarea {
  font: inherit;
  border: 1px solid #d8dfd9;
  border-radius: 10px;
  padding: 11px;
  background: #fff;
  color: #202b28;
}
#booking-status { font-size: 14px; color: #239878; min-height: 20px; margin: 2px 0; }

/* Mobile */
@media (max-width: 700px) {
  #services.card {
    background: #ffffff;
    padding: 28px 18px 32px;
    margin: 0 16px 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    border-bottom: 1px solid var(--line);
  }

  #services > h2 {
    margin-bottom: 20px;
    font-size: 27px;
    letter-spacing: -0.6px;
  }

  #services > h2::after {
    font-size: 15px;
  }

  #services .service {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "title title"
      "description description"
      "meta button";
    column-gap: 14px;
    row-gap: 0;
    align-items: end;
    padding: 22px 22px;
    margin-bottom: 14px;
    border-radius: 22px;
  }

  /* On mobile the title and description use the full card width.
     Only the bottom meta row shares space with the booking button. */
  #services .service-main {
    display: contents;
  }

  #services .service h3 {
    grid-area: title;
    width: 100%;
    font-size: 19px;
    line-height: 1.28;
  }

  #services .service-description {
    grid-area: description;
    width: 100%;
    max-width: none;
    margin-top: 9px;
    font-size: 15px;
    line-height: 1.4;
  }

  #services .service-meta {
    grid-area: meta;
    margin-top: 18px;
    gap: 18px;
  }

  #services .service.has-description .service-meta {
    margin-top: 24px;
  }

  #services .book-service {
    grid-area: button;
    /* The button is 48px high while the duration/price row is ~32px.
       Move it down by half that difference so their visual centers align. */
    position: relative;
    top: 8px;
  }

  #services .duration,
  #services .price {
    font-size: 17px;
  }

  #services .service-meta::after {
    height: 32px;
  }

  #services .book-service {
    min-width: 150px;
    min-height: 48px;
    padding: 12px 17px;
    font-size: 15px;
  }
}

/* Narrow iPhones */
@media (max-width: 420px) {
  #services.card {
    margin-left: 12px;
    margin-right: 12px;
    padding-left: 16px;
    padding-right: 16px;
    border-radius: 16px;
  }

  #services > h2 {
    font-size: 25px;
  }

  #services > h2::after {
    font-size: 14px;
  }

  #services .service {
    padding: 20px 18px;
    column-gap: 10px;
    row-gap: 0;
  }

  #services .service h3 {
    font-size: 18px;
  }

  #services .service-description {
    margin-top: 8px;
    font-size: 15px;
  }

  #services .service-meta {
    gap: 13px;
    margin-top: 17px;
  }

  #services .service.has-description .service-meta {
    margin-top: 22px;
  }

  #services .duration,
  #services .price {
    font-size: 16px;
  }

  #services .service-meta::after {
    height: 30px;
  }

  #services .book-service {
    min-width: 130px;
    min-height: 46px;
    padding: 11px 13px;
    font-size: 14px;
  }

  #services .book-service::after {
    font-size: 19px;
  }
}

/* ================================
   DOBRO MEDICAL — ADDRESSES + LIVE GOOGLE MAP
   ================================ */

#addresses.card {
  background: #ffffff;
  border: 0;
  border-radius: 0;
  padding: 32px 28px;
  margin: 0;
  overflow: visible;
}

#addresses > h2 {
  margin: 0 0 22px;
  font-size: 28px;
  line-height: 1.15;
  font-weight: 750;
  letter-spacing: -0.7px;
  color: #171d1b;
}

#addresses .address {
  padding: 0;
  border: 0;
}

#addresses .address-location {
  background: #ffffff;
  border: 1px solid #edf0ee;
  border-radius: 24px;
  padding: 22px;
  margin: 0 0 16px;
  box-shadow:
    0 5px 18px rgba(22, 45, 37, 0.035),
    0 1px 3px rgba(22, 45, 37, 0.025);
  overflow: hidden;
}

#addresses .address-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

#addresses .address-info { min-width: 0; }

#addresses .address-label {
  margin: 0 0 5px;
  color: #69758a;
  font-size: 14px;
  line-height: 1.35;
}

#addresses .address-title {
  margin: 0;
  color: #121816;
  font-size: 21px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.35px;
}

#addresses .address-subtitle {
  margin: 5px 0 0;
  color: #7a8495;
  font-size: 15px;
  line-height: 1.45;
}

#addresses .address-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #edf8f4;
  color: #176651;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

/* Real interactive Google Map */
#addresses .address-map {
  position: relative;
  width: 100%;
  height: 230px;
  overflow: hidden;
  border-radius: 18px;
  background: #eef3f0;
  isolation: isolate;
}

#addresses .address-map::before {
  content: "Завантаження карти…";
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  text-align: center;
  color: #69736f;
  background:
    radial-gradient(circle at 65% 30%, rgba(23, 102, 81, 0.09), transparent 32%),
    linear-gradient(135deg, #f4f8f6, #edf3f0);
  font-size: 14px;
  line-height: 1.4;
  pointer-events: none;
}

#addresses .address-map.map-ready::before { display: none; }

#addresses .address-map.map-error::before {
  content: "Не вдалося завантажити карту";
  background: #f3f5f4;
}

#addresses .map-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
  margin-top: 14px;
  padding: 13px 18px;
  border-radius: 16px;
  background: #edf8f4;
  color: #176651;
  font-size: 15px;
  font-weight: 650;
  text-decoration: none;
}

#addresses .map-link::after {
  content: "›";
  font-size: 27px;
  line-height: 1;
  font-weight: 300;
}

#addresses .map-link:hover { background: #e4f3ee; }

#addresses .address-directions {
  margin: 16px 2px 0;
  color: #69736f;
  font-size: 14px;
  line-height: 1.55;
}

#addresses .address-online {
  background: #ffffff;
  border: 1px solid #edf0ee;
  border-radius: 20px;
  padding: 22px;
  margin: 0 0 16px;
}

#addresses .address-online h3 {
  margin: 0 0 6px;
  font-size: 18px;
}

#addresses .address-online p { margin: 0; }

@media (max-width: 700px) {
  #addresses.card {
    padding: 28px 18px 30px;
    background: #ffffff;
    border-bottom: 8px solid #f5f5f3;
  }

  #addresses > h2 {
    margin-bottom: 20px;
    font-size: 27px;
    letter-spacing: -0.6px;
  }

  #addresses .address-location {
    padding: 18px;
    border-radius: 22px;
  }

  #addresses .address-head {
    gap: 10px;
    margin-bottom: 16px;
  }

  #addresses .address-title { font-size: 19px; }
  #addresses .address-subtitle { font-size: 14px; }

  #addresses .address-badge {
    min-height: 34px;
    padding: 7px 11px;
    font-size: 12px;
  }

  #addresses .address-map {
    height: 190px;
    border-radius: 16px;
  }

  #addresses .map-link {
    min-height: 52px;
    margin-top: 12px;
    padding: 12px 16px;
    border-radius: 15px;
    font-size: 15px;
  }
}

@media (max-width: 420px) {
  #addresses.card {
    padding-left: 14px;
    padding-right: 14px;
  }

  #addresses .address-location { padding: 16px; }
  #addresses .address-head { flex-direction: column; }
  #addresses .address-badge { align-self: flex-start; }
  #addresses .address-map { height: 175px; }
}
#booking-dialog{max-width:640px;max-height:90dvh;overflow:auto;padding:28px}#booking-dialog [hidden]{display:none!important}#booking-dialog h2{font-size:26px;margin-bottom:16px}#booking-step{font-size:13px;color:var(--green);margin-bottom:8px}#booking-price{margin-bottom:20px;color:var(--muted)}.slot-navigation{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.slot-arrow{border:0;background:#dff8f1;color:#239878;border-radius:50%;width:42px;height:42px;font-size:25px}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.slot-day{display:flex;flex-direction:column;gap:10px;text-align:center}.slot-date{font-size:14px;line-height:1.5;min-height:44px;display:flex;align-items:center;justify-content:center}.slot-time{border:2px solid transparent;border-radius:28px;min-height:46px;background:#dff8f1;color:#095749;font-size:17px;font-weight:650}.slot-time[aria-pressed=true]{background:#239878;color:white;border-color:#239878}.slot-time:hover{border-color:#239878}.slot-empty{padding:12px;color:#69736f}.slot-link{display:block;margin:16px auto;border:0;background:none;color:#239878;text-decoration:underline;padding:8px;font:inherit}#slot-selection{font-size:14px;margin:18px 0 12px;min-height:22px}#booking-dialog button:disabled{opacity:.4;cursor:default}.booking-summary{background:#eef8f4;border-radius:12px;padding:14px;display:flex;align-items:center;gap:12px;justify-content:space-between;font-size:14px}.booking-summary .slot-link{margin:0}#booking-form input,#booking-form textarea{font-size:16px}#booking-status{margin:16px 0 0}#booking-status:empty{display:none}@media(max-width:600px){#booking-dialog{padding:22px 18px;width:calc(100% - 20px);max-height:92dvh}#booking-dialog h2{font-size:23px}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.slot-time{min-height:48px;font-size:16px}.slot-date{font-size:13px}.booking-summary{align-items:flex-start}}

#booking-dialog:focus,#booking-dialog:focus-visible,#booking-dialog :focus,#booking-dialog :focus-visible{outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent}
#booking-dialog .dialog-close{color:#000;-webkit-text-fill-color:#000}
/* =========================================
   DOBRO MEDICAL — APPLE-STYLE BOOKING SIDEBAR
   ========================================= */
@media (min-width: 981px) {
  .wrap { max-width: 1220px; }

  .profile-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 26px;
    align-items: start;
  }

  .profile-main { min-width: 0; }
  .profile-main .hero { margin: 0; }
  .profile-main .tabs { margin: 0 0 20px; }

  .booking-sidebar {
    position: static;
    top: auto;
    align-self: start;
    min-width: 0;
  }

  .booking-widget {
    position: relative;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e6ebe8;
    border-radius: 28px;
    box-shadow:
      0 24px 60px rgba(18, 42, 34, 0.07),
      0 4px 14px rgba(18, 42, 34, 0.035);
  }

  .booking-widget-head {
    position: relative;
    overflow: hidden;
    padding: 26px 28px 24px;
    background: #074338;
    color: #ffffff;
  }

  .booking-widget-head h2 {
    margin: 0;
    color: #ffffff;
    font-size: 30px;
    line-height: 1.08;
    font-weight: 760;
    letter-spacing: -0.9px;
  }

  .booking-widget-head p {
    margin: 8px 0 0;
    color: rgba(255,255,255,.78);
    font-size: 15px;
    line-height: 1.45;
    letter-spacing: -0.12px;
  }

  .booking-widget-body {
    padding: 24px 28px 28px;
    background: #ffffff;
  }

  .booking-field { margin-bottom: 22px; }
  .booking-field:last-of-type { margin-bottom: 0; }

  .booking-field-label {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 11px;
    color: #1d2522;
    font-size: 16px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -0.2px;
  }

  .booking-step-dot {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    border-radius: 50%;
    background: #def5ed;
    color: #176651;
    font-size: 14px;
    font-weight: 750;
  }

  .booking-select-wrap { position: relative; }
  .booking-select-wrap::after {
    content: "";
    position: absolute;
    right: 19px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid #5b6661;
    border-bottom: 2px solid #5b6661;
    transform: translateY(-68%) rotate(45deg);
    pointer-events: none;
  }

  .booking-select {
    width: 100%;
    min-height: 62px;
    padding: 14px 52px 14px 18px;
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid #dfe5e2;
    border-radius: 19px;
    background: #ffffff;
    color: #202926;
    font: inherit;
    font-size: 16px;
    line-height: 1.35;
    letter-spacing: -0.12px;
    outline: 0;
    box-shadow: 0 1px 1px rgba(17,24,39,.01);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
  }

  .booking-select:hover { background: #fdfefd; }

  .booking-select:focus {
    border-color: #88bbaa;
    box-shadow: 0 0 0 4px rgba(23, 102, 81, .075);
  }

  .booking-service-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 22px 0 20px;
    padding: 3px 0 18px;
    border-bottom: 1px solid #e9edeb;
  }

  .booking-service-summary strong {
    display: block;
    color: #171d1b;
    font-size: 16px;
    line-height: 1.35;
    font-weight: 720;
    letter-spacing: -0.2px;
  }

  .booking-service-meta {
    flex: 0 0 auto;
    color: #176651;
    font-size: 15px;
    line-height: 1.25;
    font-weight: 700;
    white-space: nowrap;
  }

  .booking-slots-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 14px;
  }

  .booking-slots-head strong {
    color: #171d1b;
    font-size: 19px;
    line-height: 1.2;
    font-weight: 750;
    letter-spacing: -0.35px;
  }

  #sidebar-timezone {
    color: #7d8782;
    font-size: 13px;
    line-height: 1.2;
    white-space: nowrap;
  }

  .sidebar-calendar-nav {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr) 28px;
    align-items: center;
    gap: 7px;
    margin: 2px 0 0;
  }

  .sidebar-day-nav {
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    min-height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #176651;
    box-shadow: none;
    font-size: 38px;
    line-height: 1;
    font-weight: 300;
    -webkit-tap-highlight-color: transparent;
    transition: opacity .15s ease, transform .15s ease, color .15s ease;
  }

  .sidebar-day-nav:hover:not(:disabled) {
    background: transparent;
    color: #0f5b48;
    transform: scale(1.08);
  }

  .sidebar-day-nav:active:not(:disabled) { transform: scale(.96); }
  .sidebar-day-nav:disabled {
    opacity: .32;
    cursor: default;
    color: #94a09b;
  }

  .sidebar-days {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 8px;
  }

  .sidebar-day {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  .sidebar-date {
    min-height: 44px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    color: #59635f;
    font-size: 12px;
    line-height: 1.15;
  }

  .sidebar-date b {
    font-size: 13px;
    line-height: 1.1;
    font-weight: 750;
    color: #171d1b;
  }

  .sidebar-time {
    width: 100%;
    min-height: 42px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: #daf6ed;
    color: #0d6751;
    font-size: 14px;
    font-weight: 720;
    line-height: 1;
    padding: 10px 5px;
    box-shadow: none;
    transition: background .16s ease, transform .16s ease, border-color .16s ease;
  }

  .sidebar-time:hover {
    background: #c8efe3;
    border-color: #a2d9c8;
    transform: translateY(-1px);
  }

  .sidebar-time:active { transform: scale(.98); }

  .sidebar-empty {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca5a1;
    font-size: 15px;
  }

  .sidebar-status {
    min-height: 21px;
    margin: 17px 0 0;
    color: #67726d;
    font-size: 13px;
    line-height: 1.5;
  }

  .booking-widget-note {
    margin: 17px 0 0;
    padding-top: 16px;
    border-top: 1px solid #edf0ee;
    color: #818b86;
    font-size: 12px;
    line-height: 1.5;
  }
}

@media (max-width: 980px) {
  .profile-layout { display: block; }
  .booking-sidebar { display: none; }
}

/* =========================================
   DOBRO MEDICAL — SPECIALIST PAGE V2
   ========================================= */
html:has(body.sp){scroll-padding-top:72px;background:#f6f5f2}
body.sp{--sp-ink:#13201c;--sp-text:#38443f;--sp-muted:#5d6a65;--sp-line:#e4e8e5;--sp-soft-line:#eef1ef;--sp-bg:#f6f5f2;--sp-brand:#074338;--sp-brand-hover:#0a5446;--sp-cta:#006553;--sp-cta-hover:#00574a;--sp-accent:#176651;--sp-mint:#e1efe8;--sp-mint-2:#cfe7dc;--sp-tint:#f0f7f3;--sp-focus:#e6b83d;--sp-danger:#b23a26;background:var(--sp-bg);color:var(--sp-ink)}
body.sp header{height:64px}
body.sp .wrap{max-width:1180px;padding:24px 24px 72px}
body.sp main.wrap > .sp-demo{margin:0 0 16px}
body.sp :where(a,button,summary,input,textarea,[tabindex]):focus-visible{outline:3px solid var(--sp-focus);outline-offset:2px;border-radius:10px}
.sp .sp-ico{width:20px;height:20px;flex:0 0 auto;display:block}
.sp-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:24px;align-items:start}
.sp-layout.sp-no-book{grid-template-columns:minmax(0,1fr);max-width:820px;margin:0 auto}
.sp-main{min-width:0}
.sp-card{background:#fff;border:1px solid var(--sp-line);border-radius:24px;padding:28px 30px;margin:0 0 16px}
.sp .sp-card h2{margin:0 0 18px;font-size:22px;line-height:1.2;font-weight:720;letter-spacing:-.5px;color:var(--sp-ink)}
.sp .sp-card h3{margin:0}
.sp .sp-card p{margin:0}
.sp-muted{color:var(--sp-muted);font-size:14px;margin:0}
.sp-empty{color:var(--sp-muted);font-size:15px}

/* Buttons */
.sp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 24px;border:0;border-radius:999px;font:inherit;font-size:16px;font-weight:650;line-height:1.1;cursor:pointer;text-decoration:none;transition:background .16s ease,transform .16s ease,box-shadow .16s ease;-webkit-tap-highlight-color:transparent}
.sp-btn:active:not(:disabled){transform:scale(.985)}
.sp-btn-primary{background:var(--sp-cta);color:#fff}
.sp-btn-primary:hover{background:var(--sp-cta-hover)}
.sp-btn-soft{background:var(--sp-mint);color:var(--sp-brand)}
.sp-btn-soft:hover{background:var(--sp-mint-2)}
.sp-btn-sm{min-height:40px;padding:8px 16px;font-size:14px}
.sp-btn:disabled{background:#c9d3cf;color:#fff;cursor:not-allowed}
.sp-icon-btn{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--sp-mint);color:var(--sp-brand);cursor:pointer;transition:background .16s ease}
.sp-icon-btn:hover{background:var(--sp-mint-2)}

/* Hero */
.sp-hero{padding:28px 30px 24px}
.sp-hero-top{display:flex;align-items:flex-start;gap:20px}
.sp-portrait{width:104px;height:104px;flex:0 0 104px;border-radius:50%;object-fit:cover;object-position:center 30%;background:var(--sp-mint)}
.sp-portrait-initials{display:grid;place-items:center;color:var(--sp-brand);font-size:34px;font-weight:700;letter-spacing:-.5px}
.sp-hero-text{min-width:0;padding-top:4px}
.sp .sp-hero h1{margin:0;font-size:32px;line-height:1.1;font-weight:780;letter-spacing:-.9px;color:var(--sp-ink);overflow-wrap:anywhere}
.sp .sp-specialty{margin:8px 0 0;font-size:17px;color:var(--sp-text)}
.sp .sp-cities{display:flex;align-items:flex-start;gap:6px;margin:8px 0 0;font-size:15px;color:var(--sp-muted)}
.sp-cities .sp-ico{width:17px;height:17px;margin-top:2px}
.sp-next{margin:22px 0 0;width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #d5e9df;border-radius:18px;background:var(--sp-tint);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background .16s ease}
.sp-next:hover{background:#e6f2ec}
.sp-next[hidden]{display:none}
.sp-next-dot{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#3fb489;box-shadow:0 0 0 4px rgba(63,180,137,.18);animation:sp-pulse 1.8s ease-in-out infinite}
.sp-next-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sp-next-label{font-size:12.5px;color:var(--sp-muted)}
.sp-next-text strong{font-size:16px;font-weight:720;color:var(--sp-brand);font-variant-numeric:tabular-nums}
.sp-next-text strong::first-letter{text-transform:uppercase}
.sp-next-cta{display:inline-flex;align-items:center;gap:2px;font-size:14px;font-weight:650;color:var(--sp-accent);white-space:nowrap}
.sp-next-cta .sp-ico{width:16px;height:16px;transition:transform .16s ease}
.sp-next:hover .sp-next-cta .sp-ico{transform:translateX(2px)}
.sp-hero-actions{display:flex;gap:10px;margin-top:12px}
.sp-hero-actions .sp-btn{flex:1}
.sp .sp-share-status{margin:10px 0 0;font-size:13px;color:var(--sp-muted)}
.sp .sp-share-status:empty{display:none}

/* Tabs */
.sp-tabs{position:sticky;top:0;z-index:20;margin:0 0 16px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border:1px solid var(--sp-line);border-radius:18px}
.sp-tabs-inner{display:flex;gap:26px;padding:0 24px;overflow-x:auto;scrollbar-width:none}
.sp-tabs-inner::-webkit-scrollbar{display:none}
.sp-tabs a{position:relative;padding:16px 0 15px;white-space:nowrap;font-size:15px;font-weight:620;color:var(--sp-muted);text-decoration:none;transition:color .16s ease}
.sp-tabs a:hover{color:var(--sp-ink)}
.sp-tabs a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px;background:transparent;transition:background .16s ease}
.sp-tabs a.is-active{color:var(--sp-brand)}
.sp-tabs a.is-active::after{background:var(--sp-accent)}

/* About */
.sp-about{padding-top:32px;padding-bottom:30px}
.sp .sp-card .sp-label{margin:0;font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sp-accent)}
.sp .sp-lead{margin:12px 0 0;max-width:620px;font-size:25px;line-height:1.34;font-weight:520;letter-spacing:-.45px;color:var(--sp-ink);overflow-wrap:anywhere}
.sp-about-body{margin-top:14px;max-width:640px}
.sp .sp-prose{white-space:pre-line;overflow-wrap:anywhere;font-size:16px;line-height:1.65;color:#46524d}
.sp-about-body .sp-prose.is-clamped{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sp-more-link{margin:6px 0 0 -4px;display:inline-flex;align-items:center;gap:4px;padding:6px 4px;border:0;background:none;font:inherit;font-size:14.5px;font-weight:650;color:var(--sp-accent);cursor:pointer}
.sp-more-link:hover{color:var(--sp-brand)}
.sp-more-link[hidden]{display:none}
.sp-more-link .sp-ico{width:16px;height:16px;transition:transform .2s ease}
.sp-more-link[aria-expanded="true"] .sp-ico{transform:rotate(180deg)}
.sp-facts{margin:26px 0 0;padding:22px 0 0;border-top:1px solid var(--sp-soft-line);display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px 24px}
.sp-fact{min-width:0}
.sp-fact dt{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--sp-muted)}
.sp-fact dt .sp-ico{width:17px;height:17px;color:var(--sp-accent)}
.sp-fact dd{margin:6px 0 0;font-size:15.5px;line-height:1.4;font-weight:620;color:var(--sp-ink)}

/* Services */
.sp-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:6px}
.sp .sp-section-head h2{margin:0}
.sp-count{font-size:13px;color:var(--sp-muted);white-space:nowrap}
.sp-services{list-style:none;margin:0;padding:0}
.sp-services.is-collapsed .sp-extra{display:none}
.sp-service{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 20px;padding:18px 0;border-bottom:1px solid var(--sp-soft-line)}
.sp-service:last-child{border-bottom:0;padding-bottom:4px}
.sp-services.is-collapsed .sp-service:nth-child(4){border-bottom:0}
.sp .sp-service h3{font-size:16.5px;line-height:1.35;font-weight:650;color:var(--sp-ink)}
.sp .sp-service-desc{margin-top:4px;font-size:14.5px;line-height:1.5;color:var(--sp-muted);overflow-wrap:anywhere}
.sp .sp-service-meta{margin-top:8px;display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--sp-muted);font-variant-numeric:tabular-nums}
.sp-service-meta .sp-ico{width:15px;height:15px}
.sp-service-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:12px}
.sp-price{font-size:17px;font-weight:720;white-space:nowrap;font-variant-numeric:tabular-nums}
.sp-show-all{margin-top:12px;width:100%;min-height:48px;border:1px solid var(--sp-line);border-radius:16px;background:#fff;font:inherit;font-size:15px;font-weight:620;color:var(--sp-accent);cursor:pointer}
.sp-show-all:hover{background:var(--sp-bg)}
.sp-show-all[hidden]{display:none}

/* Addresses (reuses ADDRESS_CSS item styles) */
.sp #addresses.sp-card{padding:28px 30px}
.sp #addresses > h2{margin:0 0 18px;font-size:22px;font-weight:720;letter-spacing:-.5px}
.sp #addresses .address-location,.sp #addresses .address-online{margin:0 0 14px;box-shadow:none;border:1px solid var(--sp-line);border-radius:20px}
.sp #addresses .address-location:last-child,.sp #addresses .address-online:last-child{margin-bottom:0}
.sp #addresses .address-title{font-size:18px}
.sp #addresses .address-badge{background:var(--sp-mint);color:var(--sp-brand)}
.sp #addresses .map-link{background:var(--sp-mint);color:var(--sp-brand)}
.sp #addresses .map-link:hover{background:var(--sp-mint-2)}

/* Gallery + FAQ */
.sp-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sp-gallery figure{margin:0}
.sp-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;background:var(--sp-bg)}
.sp-gallery figcaption{margin-top:7px;font-size:13px;color:var(--sp-muted)}
.sp-faq details{border-top:1px solid var(--sp-soft-line)}
.sp-faq details:first-child{border-top:0}
.sp-faq summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;font-size:16px;font-weight:620;line-height:1.45;cursor:pointer}
.sp-faq summary::-webkit-details-marker{display:none}
.sp-faq .sp-faq-chev{width:18px;height:18px;color:var(--sp-accent);transition:transform .2s ease}
.sp-faq details[open] .sp-faq-chev{transform:rotate(180deg)}
.sp-faq details .sp-prose{padding:0 0 16px;font-size:15px}

/* Booking panel (desktop: sticky card) */
.sp-book{position:sticky;top:16px;min-width:0;--sp-brand:var(--sp-cta);--sp-accent:var(--sp-cta)}
.sp-book-panel{display:flex;flex-direction:column;max-height:calc(100vh - 32px);background:#fff;border:1px solid var(--sp-line);border-radius:26px;overflow:hidden;box-shadow:0 24px 60px rgba(18,42,34,.07),0 4px 14px rgba(18,42,34,.035)}
.sp-book-grip{display:none}
.sp-book-head{flex:0 0 auto;display:flex;align-items:flex-start;gap:12px;padding:22px 24px 20px;background:var(--sp-cta);color:#fff}
.sp-book-head-text{flex:1;min-width:0}
.sp .sp-book-kicker{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.sp .sp-book-head h2{margin:4px 0 0;font-size:24px;line-height:1.15;font-weight:740;letter-spacing:-.6px;color:#fff}
.sp .sp-book-sub{display:none;margin:2px 0 0;font-size:13px;color:var(--sp-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-book-step{margin-top:2px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.14);font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.sp-book-step[hidden]{display:none}
.sp-book-close{display:none}
.sp-book-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:22px 24px 24px;overscroll-behavior:contain}

/* Booking flow */
.sp-bk-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 10px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sp-muted)}
.sp-bk-label span{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}
.sp-bk-group{margin-bottom:22px}
.sp-bk-scroll{display:flex;gap:8px;overflow-x:auto;margin:0 -24px;padding:2px 24px 4px;scroll-padding:0 24px;scroll-snap-type:x proximity;scrollbar-width:none}
.sp-bk-scroll::-webkit-scrollbar{display:none}
.sp-bk-chip{flex:0 0 auto;scroll-snap-align:start;min-width:150px;max-width:200px;padding:10px 14px;border:1px solid var(--sp-line);border-radius:16px;background:#fff;font:inherit;text-align:left;color:var(--sp-ink);cursor:pointer;transition:border-color .16s ease,background .16s ease}
.sp-bk-chip:hover{border-color:#9cc6b6}
.sp-bk-chip[aria-checked="true"]{background:var(--sp-brand);border-color:var(--sp-brand);color:#fff}
.sp-bk-chip b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.3;font-weight:650}
.sp-bk-chip small{display:block;margin-top:4px;font-size:12px;color:var(--sp-muted);font-variant-numeric:tabular-nums}
.sp-bk-chip[aria-checked="true"] small{color:rgba(255,255,255,.75)}
.sp-bk-chip.sp-bk-chip-loc{min-width:0;max-width:260px}
.sp-bk-day{flex:0 0 62px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 8px;border:1px solid var(--sp-line);border-radius:16px;background:#fff;font:inherit;color:var(--sp-ink);cursor:pointer;transition:border-color .16s ease,background .16s ease}
.sp-bk-day:hover:not(:disabled){border-color:#9cc6b6}
.sp-bk-day small{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--sp-muted)}
.sp-bk-day b{font-size:19px;line-height:1.15;font-weight:720;font-variant-numeric:tabular-nums}
.sp-bk-day i{width:6px;height:6px;margin-top:3px;border-radius:50%;background:var(--sp-accent)}
.sp-bk-day i.few{background:var(--sp-focus)}
.sp-bk-day[aria-selected="true"]{background:var(--sp-brand);border-color:var(--sp-brand);color:#fff}
.sp-bk-day[aria-selected="true"] small{color:rgba(255,255,255,.72)}
.sp-bk-day[aria-selected="true"] i{background:#8fe0c3}
.sp-bk-day:disabled{border-style:dashed;background:transparent;color:#a3aca8;cursor:not-allowed}
.sp-bk-day:disabled small{color:#a3aca8}
.sp-bk-day:disabled i{background:transparent}
.sp .sp-bk-dayname{margin:0 0 12px;font-size:15px;font-weight:650}
.sp-bk-dayname span{font-weight:400;color:var(--sp-muted)}
.sp-bk-dayname::first-letter{text-transform:uppercase}
.sp .sp-bk-part{display:flex;align-items:center;gap:6px;margin:14px 0 8px;font-size:12.5px;color:var(--sp-muted)}
.sp-bk-part:first-of-type{margin-top:0}
.sp-bk-part .sp-ico{width:14px;height:14px}
.sp-bk-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sp-bk-time{height:44px;border:0;border-radius:12px;background:var(--sp-mint);color:var(--sp-brand);font:inherit;font-size:15px;font-weight:650;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .14s ease,box-shadow .14s ease}
.sp-bk-time:hover{background:var(--sp-mint-2)}
.sp-bk-time[aria-checked="true"]{background:var(--sp-accent);color:#fff;box-shadow:0 6px 16px rgba(23,102,81,.28)}
.sp-bk-skeleton{height:44px;border-radius:12px;background:#e7ece9;animation:sp-pulse 1.1s ease-in-out infinite}
.sp-bk-empty{padding:18px;border:1px dashed #d6ded8;border-radius:16px;text-align:center}
.sp .sp-bk-empty p{font-size:14.5px;color:var(--sp-muted)}
.sp-bk-linkbtn{margin-top:10px;padding:4px;border:0;background:none;font:inherit;font-size:14.5px;font-weight:650;color:var(--sp-accent);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.sp-bk-linkbtn::first-letter{text-transform:uppercase}
.sp-bk-next{width:100%;margin-top:22px;min-height:54px}
.sp-bk-next .sp-ico{width:16px;height:16px}
.sp-bk-back{display:inline-flex;align-items:center;gap:4px;margin:0 0 14px -6px;padding:6px;border:0;border-radius:10px;background:none;font:inherit;font-size:14.5px;font-weight:650;color:var(--sp-accent);cursor:pointer}
.sp-bk-back:hover{background:var(--sp-tint)}
.sp-bk-back .sp-ico{width:16px;height:16px;transform:rotate(180deg)}
.sp-bk-summary{display:flex;align-items:center;gap:14px;padding:14px;margin-bottom:20px;border-radius:18px;background:var(--sp-brand);color:#fff}
.sp-bk-cal{flex:0 0 58px;padding:7px 0;border-radius:12px;background:rgba(255,255,255,.1);text-align:center}
.sp-bk-cal small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.7)}
.sp-bk-cal b{display:block;margin-top:2px;font-size:22px;line-height:1;font-weight:720;font-variant-numeric:tabular-nums}
.sp-bk-summary-text{min-width:0}
.sp-bk-summary-text b{display:block;font-size:20px;font-weight:720;font-variant-numeric:tabular-nums}
.sp-bk-summary-text span{display:block;font-size:14px;color:rgba(255,255,255,.82);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-bk-summary-text small{display:block;font-size:13px;color:rgba(255,255,255,.66);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-bk-form{display:grid;gap:0}
.sp-bk-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sp-bk-field{display:flex;flex-direction:column;margin-bottom:14px;min-width:0}
.sp-bk-field label{margin-bottom:7px;font-size:14px;font-weight:620;color:var(--sp-ink)}
.sp-bk-field label span{font-weight:400;color:var(--sp-muted)}
.sp-bk-field input,.sp-bk-field textarea{width:100%;min-height:52px;padding:12px 14px;border:1px solid #d6ded8;border-radius:14px;background:#fff;font:inherit;font-size:16px;color:var(--sp-ink);transition:border-color .16s ease,box-shadow .16s ease}
.sp-bk-field textarea{min-height:76px;resize:vertical}
.sp-bk-field input::placeholder,.sp-bk-field textarea::placeholder{color:#8a958f}
.sp-bk-field input:focus,.sp-bk-field textarea:focus{outline:0;border-color:var(--sp-accent);box-shadow:0 0 0 4px rgba(23,102,81,.12)}
.sp-bk-field input[aria-invalid="true"]{border-color:#c2412d}
.sp .sp-bk-hint{margin-top:6px;font-size:13px;color:var(--sp-muted)}
.sp .sp-bk-hint.is-error{color:var(--sp-danger)}
.sp .sp-bk-legal{margin:2px 0 0;font-size:12.5px;line-height:1.5;color:var(--sp-muted)}
.sp-bk-legal a{color:var(--sp-accent);text-decoration:underline}
.sp .sp-bk-status{margin:14px 0 0;font-size:14px;line-height:1.5;color:var(--sp-danger)}
.sp .sp-bk-status:empty{display:none}
.sp .sp-bk-status.is-info{color:var(--sp-muted)}
.sp-bk-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:sp-spin .8s linear infinite}
.sp-bk-done{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:6px}
.sp-bk-check{width:64px;height:64px;display:grid;place-items:center;margin-bottom:18px;border-radius:50%;background:var(--sp-accent);color:#fff;animation:sp-pop .45s cubic-bezier(.2,.8,.2,1)}
.sp-bk-check svg{width:32px;height:32px}
.sp .sp-bk-done h3{font-size:24px;font-weight:740;letter-spacing:-.5px}
.sp .sp-bk-done > p{margin:8px 0 20px;max-width:300px;font-size:15px;color:var(--sp-muted)}
.sp-bk-dl{width:100%;margin:0;padding:16px;display:grid;gap:12px;border-radius:18px;background:var(--sp-bg);text-align:left}
.sp-bk-dl div{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px}
.sp-bk-dl dt{font-size:13px;color:var(--sp-muted)}
.sp-bk-dl dd{margin:0;font-size:14px;font-weight:620;overflow-wrap:anywhere}
.sp-bk-dl dd::first-letter{text-transform:uppercase}
.sp-bk-actions{width:100%;display:grid;gap:10px;margin-top:18px}
.sp .sp-bk-foot{margin-top:14px;font-size:12.5px;color:var(--sp-muted)}

/* Mobile bar + sheet backdrop */
.sp-bar{display:none}
.sp-backdrop{position:fixed;inset:0;z-index:60;background:rgba(10,30,25,.45);animation:sp-fade .2s ease}
.sp-backdrop[hidden]{display:none}

@keyframes sp-pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes sp-spin{to{transform:rotate(360deg)}}
@keyframes sp-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@keyframes sp-fade{from{opacity:0}to{opacity:1}}

@media (max-width:1023px){
  html:has(body.sp){scroll-padding-top:64px}
  body.sp{background:var(--sp-bg)}
  body.sp header{height:60px;padding:0 18px}
  body.sp .brand img{width:184px;max-height:38px}
  body.sp .wrap{max-width:720px;padding:0}
  body.sp main.wrap > .sp-demo{margin:12px 16px}
  .sp-layout{display:block}
  .sp-card{border-radius:0;border-width:0 0 1px;margin:0 0 8px;padding:26px 20px}
  .sp-hero{padding:24px 20px 20px;margin-bottom:0}
  .sp-hero-top{gap:16px}
  .sp-portrait{width:84px;height:84px;flex-basis:84px}
  .sp-portrait-initials{font-size:28px}
  .sp .sp-hero h1{font-size:26px;letter-spacing:-.7px}
  .sp .sp-specialty{margin-top:6px;font-size:16px}
  .sp .sp-cities{margin-top:6px;font-size:14px}
  .sp-next{margin-top:18px}
  .sp-tabs{border-radius:0;border-width:0 0 1px;margin:0 0 8px}
  .sp-tabs-inner{padding:0 20px;gap:24px}
  .sp-about{padding-top:30px}
  .sp .sp-lead{font-size:21px;line-height:1.36}
  .sp .sp-prose{font-size:15.5px}
  .sp-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .sp #addresses.sp-card{padding:26px 20px}
  .sp-gallery img{border-radius:14px}

  /* Sticky bar */
  .sp-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:rgba(255,255,255,.95);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--sp-line);transition:transform .25s ease}
  .sp-bar-inner{max-width:688px;margin:0 auto;display:flex;align-items:center;gap:12px}
  .sp-bar-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  .sp-bar-price{font-size:12.5px;color:var(--sp-muted)}
  .sp-bar-text strong{font-size:14.5px;font-weight:650;color:var(--sp-brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sp-bar .sp-btn{flex:0 0 auto;min-height:50px;padding:12px 26px}
  body.sp.sp-sheet-open .sp-bar{transform:translateY(110%)}
  body.sp.sp-sheet-open{overflow:hidden}
  footer{padding-bottom:110px}

  /* Bottom sheet */
  .sp-book{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:70;pointer-events:none}
  .sp-book-panel{pointer-events:auto;max-width:640px;margin:0 auto;max-height:min(92vh,92dvh);border:0;border-radius:28px 28px 0 0;box-shadow:0 -20px 60px rgba(0,0,0,.18);transform:translateY(105%);visibility:hidden;transition:transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s linear .32s}
  .sp-book.is-open .sp-book-panel{transform:none;visibility:visible;transition:transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s}
  .sp-book-grip{display:block;width:40px;height:5px;margin:10px auto 0;border-radius:5px;background:#d6ded8;flex:0 0 auto}
  .sp-book-head{padding:10px 20px 14px;background:#fff;color:var(--sp-ink);border-bottom:1px solid var(--sp-soft-line);align-items:center}
  .sp .sp-book-kicker{display:none}
  .sp .sp-book-head h2{margin:0;font-size:19px;letter-spacing:-.3px;color:var(--sp-ink)}
  .sp .sp-book-sub{display:block}
  .sp-book-step{margin:0;background:var(--sp-bg);color:var(--sp-muted)}
  .sp-book-close{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border:0;border-radius:50%;background:#f2f4f3;color:var(--sp-ink);cursor:pointer}
  .sp-book-close:hover{background:#e6eae8}
  .sp-book-close .sp-ico{width:20px;height:20px}
  .sp-book-body{padding:20px 20px max(20px,env(safe-area-inset-bottom))}
  .sp-bk-scroll{margin:0 -20px;padding:2px 20px 4px;scroll-padding:0 20px}
}
@media (max-width:420px){
  .sp .sp-hero h1{font-size:24px}
  .sp-portrait{width:76px;height:76px;flex-basis:76px}
  .sp .sp-lead{font-size:20px}
  .sp-service{gap:4px 14px}
  .sp-bk-row{grid-template-columns:1fr;gap:0}
  .sp-bk-times{gap:7px}
  .sp-bk-time{font-size:14.5px}
  .sp-bar .sp-btn{padding:12px 20px}
}
@media (max-width:360px){
  .sp-hero-actions .sp-btn{padding:12px 14px;font-size:15px}
  .sp-next{gap:10px;padding:11px 14px}
  .sp-next-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sp-bar .sp-btn{padding:12px 16px;font-size:15px}
}
@media (prefers-reduced-motion:reduce){
  .sp-next-dot,.sp-bk-skeleton,.sp-bk-check,.sp-backdrop{animation:none}
  .sp-book-panel,.sp-bar{transition:none!important}
}
