/* Orto.ir shared clinic access and small-screen layout. */
.orto-mobile-directory > summary,
.orto-visit-dock {
  display: none;
}

.orto-clinic-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-block: .75rem 1.15rem;
}

.orto-clinic-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .25rem .9rem;
  border: 1px solid #b5c8d6;
  border-radius: 10px;
  background: #f5faff;
  color: #153e61;
  font-weight: 700;
  text-decoration: none;
}

.orto-clinic-links .orto-clinic-primary {
  border-color: #0d4f85;
  background: #0d4f85;
  color: #fff;
}

.orto-clinic-links .orto-clinic-bale {
  border-color: #15645b;
  background: #15645b;
  color: #fff;
}

.orto-clinic-links .orto-clinic-whatsapp {
  border-color: #14633d;
  background: #14633d;
  color: #fff;
}

.orto-clinic-links a:focus-visible,
.orto-visit-dock a:focus-visible,
.orto-mobile-directory > summary:focus-visible {
  outline: 2px solid #126298;
  outline-offset: 3px;
}

.orto-clinic-address {
  font-style: normal;
}

.orto-clinic-facts {
  display: grid;
  gap: .6rem;
  margin: 1rem 0;
}

.orto-clinic-facts > div {
  padding: .65rem .9rem;
  border-inline-start: 3px solid #147388;
  background: #f2f8fb;
  border-radius: 7px;
}

.orto-clinic-facts dt { font-weight: 700; }
.orto-clinic-facts dd { margin: 0; overflow-wrap: anywhere; }
.orto-clinic-evidence { margin-block: .65rem 1rem; }

.orto-doctor-card .orto-clinic-portrait {
  display: block;
  width: min(100%, 164px);
  height: auto;
  margin: 0 0 .85rem;
  border-radius: 12px;
}

.orto-appointment-review { user-select: text; }
.orto-channel-actions a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .5rem .75rem;
  border-radius: 10px;
  text-align: center;
  font-weight: 700;
  text-decoration: none;
}
.orto-channel-actions .orto-channel-whatsapp { background: #14633d; color: #fff; }
.orto-channel-actions .orto-channel-bale { background: #15645b; color: #fff; }
.orto-visit-page :is(input, select, textarea) { font-size: max(16px, 1em) !important; }

.orto-jalali-calendar {
  margin: .55rem 0 .8rem;
  padding: .5rem;
  border: 1px solid #c6d7e4;
  border-radius: 10px;
  background: #f5faff;
}

.orto-jalali-calendar summary {
  min-height: 32px;
  cursor: pointer;
  font-weight: 700;
  color: #153e61;
}

.orto-jalali-month {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  text-align: center;
  gap: 4px;
  margin-block: .4rem;
}

.orto-jalali-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 3px;
  text-align: center;
}

.orto-jalali-calendar button {
  min-width: 0 !important;
  min-height: 36px;
  margin: 0 !important;
  padding: 0 !important;
  color: #153e61 !important;
  background: #fff !important;
  border: 1px solid #c6d7e4 !important;
  border-radius: 6px !important;
}

.orto-jalali-calendar button:disabled {
  color: #64748b !important;
  background: #edf2f6 !important;
}

.orto-jalali-calendar button[aria-pressed="true"] {
  color: #fff !important;
  background: #0d4f85 !important;
}
#directions, #appointment-request { scroll-margin-block-start: 1rem; }

@media (max-width: 680px) {
  body.orto-mobile-access {
    padding-bottom: calc(74px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .orto-mobile-access .orto-unified-top {
    padding: 8px 6px !important;
    font-size: clamp(15px, 4.4vw, 19px) !important;
    line-height: 1.45 !important;
  }

  .orto-mobile-access .orto-unified-brand {
    padding-block: 6px 10px !important;
  }

  .orto-mobile-access .orto-unified-logo {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .55rem !important;
  }

  .orto-mobile-access .orto-unified-logo img {
    flex: 0 0 64px !important;
    width: 64px !important;
    height: 64px !important;
    max-width: 64px !important;
    max-height: 64px !important;
    margin: 0 !important;
  }

  .orto-mobile-access .orto-doctor-lines {
    min-width: 0;
    text-align: start !important;
  }

  .orto-mobile-access .orto-unified-name { font-size: clamp(16px, 4.3vw, 22px) !important; }
  .orto-mobile-access :is(.orto-unified-sub, .orto-unified-address, .orto-unified-phone-text) {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }

  .orto-mobile-access .orto-unified-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 5px !important;
    margin-block: 8px 0 !important;
  }

  .orto-mobile-access .orto-unified-actions a {
    min-height: 44px !important;
    padding: 4px !important;
    font-size: clamp(12px, 3.3vw, 15px) !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere;
  }

  .orto-mobile-directory {
    margin: 0 auto 8px;
    padding: 0 9px;
    max-width: 980px;
  }

  .orto-mobile-directory > summary {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    padding: 4px 10px;
    border: 1px solid #bacbdc;
    border-radius: 10px;
    background: #f5faff;
    color: #153e61;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
  }

  .orto-mobile-directory > summary::-webkit-details-marker { display: none; }
  .orto-mobile-directory > summary::after { content: "+"; font-size: 1.15em; }
  .orto-mobile-directory[open] > summary::after { content: "−"; }
  .orto-mobile-directory .orto-accordion-item > summary { min-height: 44px; }

  .orto-mobile-access .orto-quick-nav {
    position: static !important;
    inset: auto !important;
    box-sizing: border-box;
    width: calc(100% - 20px) !important;
    margin: 8px auto 10px !important;
    z-index: auto;
  }

  .orto-mobile-access h1 {
    font-size: clamp(24px, 6.7vw, 30px) !important;
    line-height: 1.55 !important;
  }

  .orto-mobile-access :is(.orto-clinic-intro, .orto-service-lead, .orto-doctor-card p),
  .orto-visit-page .wrap .card > p:first-child {
    text-align: start !important;
  }

  .orto-mobile-access .seo-wrap:has(.orto-doctor-card) {
    padding-inline: 10px !important;
    margin-block-start: 8px !important;
  }

  .orto-mobile-access .orto-doctor-card {
    margin-inline: 0 !important;
    padding-inline: 14px !important;
  }

  .orto-mobile-access .orto-quick-nav :is(a,button) { min-height: 44px !important; }
  .orto-mobile-access :is(.reserve-float-clean, .whatsapp-float) { display: none !important; }

  .orto-visit-dock {
    position: fixed;
    z-index: 25000;
    inset: auto 0 0;
    box-sizing: border-box;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100vw !important;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 6px max(8px, env(safe-area-inset-right, 0px))
      calc(6px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-left, 0px));
    border-block-start: 1px solid #cfdeea;
    background: #fff;
    box-shadow: 0 -4px 16px rgba(27, 54, 74, .11);
  }

  body.orto-mobile-access > .orto-visit-dock > a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 44px;
    padding: 4px 2px !important;
    border: 1px solid #b5c8d6;
    border-radius: 9px;
    color: #153e61 !important;
    background: #f5faff !important;
    font-size: clamp(13px, 3.55vw, 16px) !important;
    font-weight: 700;
    text-decoration: none;
    line-height: 1.25 !important;
    text-align: center;
  }

  body.orto-mobile-access > .orto-visit-dock > a:first-child {
    background: #0d4f85 !important;
    color: #fff !important;
    border-color: #0d4f85;
  }

  .orto-visit-dock svg {
    width: 1.1em;
    height: 1.1em;
    flex-shrink: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  html:has(.orto-mobile-access) { scroll-padding-block-end: 76px; }

  .orto-visit-page > .orto-visit-dock {
    transition: visibility 0s linear .22s;
  }

  .orto-visit-page:has(.orto-appointment-wizard:focus-within) > .orto-visit-dock,
  .orto-visit-page:has(.orto-appointment-wizard:focus-within) .orto-back-to-top,
  body:has(.orto-search-dialog[open]) > .orto-visit-dock {
    visibility: hidden;
    transition-delay: 0s;
  }

  .orto-mobile-access :is(.orto-copy-toast, .orto-back-to-top, .orto-scroll-top, .orto-to-top) {
    bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
}

@media print {
  .orto-visit-dock, .orto-mobile-directory > summary { display: none !important; }
  body.orto-mobile-access { padding-bottom: 0 !important; }
}
