/* Revision 9, page group: utility. Scoped to this group's templates.
   Patient resources, areas we serve, the policy pages (page.php), the 404 page and search.
   Body classes: .post-type-archive-elite_resource, .post-type-archive-elite_area,
   .page-template-default.premium-inner (the home page also has page-template-default, not premium-inner),
   .error404, .search. This sheet loads before revision-5.css (the shared design system), so a rule
   that has to win over it carries the page's body class as well.

   1. Compact heroes (policy pages, 404, search)   4. Policy pages
   2. Patient resources                            5. 404
   3. Areas we serve                               6. Search form and results */


/* --------------------------------------------------------------------------
   1. Compact heroes. The main pages (resources, areas) keep the system's full
   first screen; the policy pages, the 404 page and search are utility pages,
   so their hero is only as tall as its content.
   -------------------------------------------------------------------------- */
.premium-inner .ihero.ihero--compact { min-height: 0; padding-block: 2.25rem 2.75rem; }
.premium-inner .ihero.ihero--compact .ihero__copy { gap: 1rem; }
.premium-inner .ihero.ihero--compact .ihero__copy .lede { max-width: 46ch; }
@media (min-width: 48rem) {
  .premium-inner .ihero.ihero--compact { padding-block: 3.25rem 3.75rem; }
}
@media (min-width: 64rem) {
  .premium-inner .ihero.ihero--compact { padding-block: 3.75rem 4.25rem; }
}


/* --------------------------------------------------------------------------
   Shared: the section heads keep the system's rhythm (revision-4.css: the
   eyebrow 16px over the heading, the content 40px under it, as on the home
   page); only the first section after a facts strip gets a little more room.
   -------------------------------------------------------------------------- */
:is(.post-type-archive-elite_resource, .post-type-archive-elite_area).premium-inner .ihero + .wrap + .section { padding-top: clamp(3.5rem, 6vw, 6rem); }
:is(.post-type-archive-elite_resource, .post-type-archive-elite_area).premium-inner .sect-head > .lede { text-wrap: balance; }


/* --------------------------------------------------------------------------
   2. Patient resources (archive-elite_resource.php, resource-card.php).
   Before treatment: .tcard service cards (revision-5.css) in a .grid--svc,
   three across on a desktop, two on a tablet, compact rows on a phone; a card
   that opens a pediatric page is teal. During and after treatment: the home
   page's "Why Elite" split, the heading and a photograph on one side, the
   numbered care guides on the other, each opening in place.
   -------------------------------------------------------------------------- */
.post-type-archive-elite_resource.premium-inner .res-card .tcard__title { margin: 0; font-size: 1.22rem; text-wrap: balance; }
.post-type-archive-elite_resource.premium-inner .res-card__k {
  color: var(--ortho); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase;
}
.post-type-archive-elite_resource.premium-inner .res-card.tcard--ped .res-card__k { color: var(--ped); }
.post-type-archive-elite_resource.premium-inner .res-card .tcard__body { gap: 0.5rem; }
.post-type-archive-elite_resource.premium-inner .res-card .tcard__media img { object-position: center 40%; }
.post-type-archive-elite_resource.premium-inner .res-grid + .pagination,
.post-type-archive-elite_resource.premium-inner .res-grid + nav { margin-top: 2.5rem; }

/* The hero photograph: Dr. Saggar and the young patient, framed by the arch. */
.post-type-archive-elite_resource.premium-inner .ihero__visual .ihero__art img { object-position: center 30%; }
@media (max-width: 63.99rem) {
  .post-type-archive-elite_resource.premium-inner .ihero__visual .ihero__art { aspect-ratio: 4 / 3; height: auto; }
  .post-type-archive-elite_resource.premium-inner .ihero__visual .ihero__art img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
}

@media (max-width: 47.99rem) {
  .post-type-archive-elite_resource.premium-inner .res-card .tcard__body { gap: 0.2rem; }
  /* A phone: the same compact row as a treatment card (thumbnail, title, two lines, arrow), so the topic label is left off. */
  .post-type-archive-elite_resource.premium-inner .res-card__k { display: none; }
  .post-type-archive-elite_resource.premium-inner .res-card .tcard__title { font-size: 1rem; line-height: 1.22; text-wrap: pretty; }
}
/* A narrow phone (under 384px): the summary may take a third line rather than end in an ellipsis. */
@media (max-width: 23.99rem) {
  .post-type-archive-elite_resource.premium-inner .res-card .tcard__text { -webkit-line-clamp: 3; }
}

/* During and after treatment. */
.post-type-archive-elite_resource.premium-inner .care { align-items: start; }
.post-type-archive-elite_resource.premium-inner .care__intro { min-width: 0; }
.post-type-archive-elite_resource.premium-inner .care__intro h2 { margin-top: 1rem; text-wrap: balance; }
.post-type-archive-elite_resource.premium-inner .care__intro .lede { max-width: 40ch; margin-top: 1rem; }
.post-type-archive-elite_resource.premium-inner .care__photo { margin-top: 2rem; aspect-ratio: 3 / 2; }
.post-type-archive-elite_resource.premium-inner .care__photo img { object-position: 70% center; }
.post-type-archive-elite_resource.premium-inner .care__call {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem 1.25rem; margin-top: 1.25rem; padding: 1.1rem 1.25rem;
  border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.25rem; background: #fff; box-shadow: 0 1px 0 rgba(26, 18, 54, 0.03);
}
.post-type-archive-elite_resource.premium-inner .care__call p { flex: 1 1 15rem; margin: 0; color: var(--body); font-size: 0.95rem; line-height: 1.5; }
.post-type-archive-elite_resource.premium-inner .care__call .pill { flex: none; }

.post-type-archive-elite_resource.premium-inner .care__list { min-width: 0; border-top: 1px solid var(--line, #dcd5e7); }
.post-type-archive-elite_resource.premium-inner .care__item { border-bottom: 1px solid var(--line, #dcd5e7); }
.post-type-archive-elite_resource.premium-inner .care__sum {
  display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) 2.25rem; column-gap: 1rem; align-items: start;
  padding: 1.65rem 0; cursor: pointer; list-style: none;
}
.post-type-archive-elite_resource.premium-inner .care__sum::-webkit-details-marker { display: none; }
.post-type-archive-elite_resource.premium-inner .care__sum::marker { content: ""; }
.post-type-archive-elite_resource.premium-inner .care__sum:focus-visible { outline: 3px solid var(--ortho); outline-offset: 4px; border-radius: 0.5rem; }
.post-type-archive-elite_resource.premium-inner .care__n { padding-top: 0.15rem; color: var(--ortho); font-family: var(--display); font-size: 0.95rem; font-weight: 700; line-height: 1.3; }
.post-type-archive-elite_resource.premium-inner .care__head { display: grid; gap: 0.35rem; min-width: 0; }
.post-type-archive-elite_resource.premium-inner .care__k { color: var(--ortho); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
.post-type-archive-elite_resource.premium-inner .care__t {
  margin: 0; color: var(--ink); font-family: var(--text); font-size: 1.2rem; font-weight: 600; line-height: 1.3; letter-spacing: -0.012em; transition: color 0.2s ease;
}
.post-type-archive-elite_resource.premium-inner .care__sum:hover .care__t { color: var(--ortho); }
.post-type-archive-elite_resource.premium-inner .care__p { color: var(--body); font-size: 0.97rem; line-height: 1.55; }
.post-type-archive-elite_resource.premium-inner .care__chev {
  position: relative; align-self: center; width: 2.25rem; height: 2.25rem; border-radius: 0.65rem;
  background: var(--ortho-tint, #eee9f7); transition: background 0.2s ease;
}
.post-type-archive-elite_resource.premium-inner .care__chev::before {
  content: ""; position: absolute; top: 50%; left: 50%; width: 0.5rem; height: 0.5rem; margin: -0.35rem 0 0 -0.25rem;
  border-right: 2px solid var(--ortho); border-bottom: 2px solid var(--ortho); transform: rotate(45deg); transition: transform 0.25s ease, margin 0.25s ease;
}
.post-type-archive-elite_resource.premium-inner .care__sum:hover .care__chev { background: color-mix(in srgb, var(--ortho) 16%, #fff); }
.post-type-archive-elite_resource.premium-inner .care__item[open] .care__chev { background: var(--ortho); }
.post-type-archive-elite_resource.premium-inner .care__item[open] .care__chev::before { margin-top: -0.1rem; border-color: #fff; transform: rotate(-135deg); }

.post-type-archive-elite_resource.premium-inner .care__body { padding: 0 3.25rem 1.9rem 3.5rem; color: var(--body); font-size: 0.98rem; line-height: 1.65; }
.post-type-archive-elite_resource.premium-inner .care__body > :first-child { margin-top: 0; }
.post-type-archive-elite_resource.premium-inner .care__body h4 { margin: 1.4rem 0 0.5rem; color: var(--ink); font-family: var(--text); font-size: 1rem; font-weight: 700; line-height: 1.35; letter-spacing: -0.005em; }
.post-type-archive-elite_resource.premium-inner .care__body p { margin: 0.5rem 0 0; max-width: 62ch; }
.post-type-archive-elite_resource.premium-inner .care__body ul { display: grid; gap: 0.45rem; margin: 0.6rem 0 0; padding: 0; list-style: none; }
.post-type-archive-elite_resource.premium-inner .care__body li { position: relative; margin: 0; padding-left: 1.4rem; }
.post-type-archive-elite_resource.premium-inner .care__body li::before {
  content: ""; position: absolute; top: 0.68em; left: 0.2rem; width: 0.42rem; height: 0.42rem; border-radius: 50%; background: var(--ortho); opacity: 0.55;
}
.post-type-archive-elite_resource.premium-inner .care__body a { color: var(--ortho); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

@media (min-width: 64rem) {
  .post-type-archive-elite_resource.premium-inner .care { grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); gap: clamp(3rem, 6vw, 6rem); }
  /* The heading and photograph stay in view while a long guide is read. */
  .post-type-archive-elite_resource.premium-inner .care__intro { position: sticky; top: calc(var(--header-h, 81px) + 2rem); }
}
@media (min-width: 48rem) and (max-width: 63.99rem) {
  .post-type-archive-elite_resource.premium-inner .care { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .post-type-archive-elite_resource.premium-inner .care__intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 2rem; align-items: start; }
  .post-type-archive-elite_resource.premium-inner .care__intro > :is(.eyebrow, h2, .lede) { grid-column: 1; }
  .post-type-archive-elite_resource.premium-inner .care__intro > .care__photo { grid-column: 2; grid-row: 1 / span 4; margin-top: 0; }
  .post-type-archive-elite_resource.premium-inner .care__intro > .care__call { grid-column: 1; margin-top: 1.5rem; }
}
@media (max-width: 47.99rem) {
  .post-type-archive-elite_resource.premium-inner .care { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .post-type-archive-elite_resource.premium-inner .care__photo { margin-top: 1.5rem; }
  .post-type-archive-elite_resource.premium-inner .care__call { padding: 1rem; }
  .post-type-archive-elite_resource.premium-inner .care__sum { grid-template-columns: 1.9rem minmax(0, 1fr) 2rem; column-gap: 0.7rem; padding: 1.3rem 0; }
  .post-type-archive-elite_resource.premium-inner .care__t { font-size: 1.05rem; }
  .post-type-archive-elite_resource.premium-inner .care__p { font-size: 0.9rem; }
  .post-type-archive-elite_resource.premium-inner .care__chev { width: 2rem; height: 2rem; border-radius: 0.6rem; }
  .post-type-archive-elite_resource.premium-inner .care__body { padding: 0 0 1.5rem 2.6rem; font-size: 0.95rem; }
}

/* Next steps: the phone and the office hours under the three link cards. */
.post-type-archive-elite_resource.premium-inner .res-next__call { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; margin-top: 2rem; }
.post-type-archive-elite_resource.premium-inner .res-next__hours { display: inline-flex; align-items: center; gap: 0.55rem; margin: 0; color: var(--body); font-size: 0.95rem; }
.post-type-archive-elite_resource.premium-inner .res-next__hours svg { flex: none; color: var(--ortho); }

/* Next steps: three link cards, one row each on a phone and a tablet, three across from 64rem. */
.post-type-archive-elite_resource.premium-inner .nx-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.post-type-archive-elite_resource.premium-inner .nx-grid > li { display: flex; min-width: 0; }
.post-type-archive-elite_resource.premium-inner .nx-card {
  display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) auto; align-items: center; column-gap: 1rem;
  width: 100%; padding: 1.15rem 1.2rem; border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.25rem; background: #fff;
  color: var(--ink); text-decoration: none; box-shadow: 0 1px 0 rgba(26, 18, 54, 0.03);
  transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.28s ease, border-color 0.28s ease;
}
.post-type-archive-elite_resource.premium-inner .nx-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--ortho) 24%, #e5e1ea); box-shadow: 0 28px 50px -34px rgba(26, 18, 54, 0.5); }
.post-type-archive-elite_resource.premium-inner .nx-card:focus-visible { outline: 3px solid var(--ortho); outline-offset: 3px; }
.post-type-archive-elite_resource.premium-inner .nx-card__ic { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 0.85rem; background: var(--ortho-tint, #eee9f7); color: var(--ortho); }
.post-type-archive-elite_resource.premium-inner .nx-card__body { display: grid; gap: 0.25rem; min-width: 0; }
.post-type-archive-elite_resource.premium-inner .nx-card__t { font-family: var(--display); font-size: 1.08rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.015em; }
.post-type-archive-elite_resource.premium-inner .nx-card__p { color: var(--body); font-size: 0.9rem; line-height: 1.5; }
.post-type-archive-elite_resource.premium-inner .nx-card .go-link__ic { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 0.55rem; background: var(--ortho-tint, #eee9f7); color: var(--ortho); transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease; }
.post-type-archive-elite_resource.premium-inner .nx-card:hover .go-link__ic { transform: translateX(3px); background: var(--ortho); color: #fff; }
@media (max-width: 47.99rem) {
  .post-type-archive-elite_resource.premium-inner .nx-card { grid-template-columns: 2.5rem minmax(0, 1fr) auto; column-gap: 0.8rem; padding: 0.95rem 1rem; border-radius: 1rem; }
  .post-type-archive-elite_resource.premium-inner .nx-card:hover { transform: none; }
  .post-type-archive-elite_resource.premium-inner .nx-card__ic { width: 2.5rem; height: 2.5rem; border-radius: 0.75rem; }
  .post-type-archive-elite_resource.premium-inner .nx-card__t { font-size: 1rem; }
  .post-type-archive-elite_resource.premium-inner .nx-card__p { font-size: 0.84rem; line-height: 1.45; }
}
@media (min-width: 64rem) {
  .post-type-archive-elite_resource.premium-inner .nx-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
  .post-type-archive-elite_resource.premium-inner .nx-card {
    grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 1fr; align-items: start; row-gap: 1.1rem; padding: 1.5rem;
  }
  .post-type-archive-elite_resource.premium-inner .nx-card__ic { grid-column: 1; grid-row: 1; }
  .post-type-archive-elite_resource.premium-inner .nx-card .go-link__ic { grid-column: 2; grid-row: 1; align-self: center; }
  .post-type-archive-elite_resource.premium-inner .nx-card__body { grid-column: 1 / -1; grid-row: 2; gap: 0.4rem; }
  .post-type-archive-elite_resource.premium-inner .nx-card__t { font-size: 1.18rem; }
}


/* --------------------------------------------------------------------------
   3. Areas we serve (archive-elite_area.php, area-card.php): the office in the
   hero frame, four facts on its edge, the towns as an even grid of tiles
   (the town alone, so no name wraps), then the visit section.
   -------------------------------------------------------------------------- */
/* The office sign and entrance stay in the arch frame. The photograph's pale
   sky would lose the arch's upper edge against the hero, so the frame carries
   a quiet lavender outline instead of the white one. */
.post-type-archive-elite_area.premium-inner .ihero__visual .ihero__art img { object-position: 30% center; }
@media (min-width: 64rem) {
  .post-type-archive-elite_area.premium-inner .ihero__visual .ihero__art { border-color: rgba(206, 196, 226, 0.95); }
}

.post-type-archive-elite_area.premium-inner .towns {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; margin: 0; padding: 0; list-style: none;
}
.post-type-archive-elite_area.premium-inner .town {
  display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); grid-template-rows: auto; align-content: center; align-items: center;
  column-gap: 0.7rem; min-width: 0; min-height: 4rem; padding: 0.7rem 0.8rem;
  border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1rem; background: #fff; box-shadow: 0 1px 0 rgba(26, 18, 54, 0.03);
}
.post-type-archive-elite_area.premium-inner .town__ic {
  grid-row: 1; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 0.7rem;
  background: var(--ortho-tint, #eee9f7); color: var(--ortho);
}
.post-type-archive-elite_area.premium-inner .town__ic svg { width: 17px; height: 17px; }
.post-type-archive-elite_area.premium-inner .town__name { grid-column: 2; min-width: 0; color: var(--ink); font-size: 0.92rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; }
.post-type-archive-elite_area.premium-inner :is(.town__tag, .town__note) { grid-column: 2; margin-top: 0.15rem; color: var(--ortho); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; line-height: 1.3; text-transform: uppercase; }
.post-type-archive-elite_area.premium-inner .town__note { color: var(--body); font-weight: 500; letter-spacing: 0; text-transform: none; font-size: 0.8rem; }
.post-type-archive-elite_area.premium-inner .town--home { border-color: color-mix(in srgb, var(--ortho) 30%, #e5e1ea); background: linear-gradient(135deg, #fff 0%, #f7f4fb 100%); }
.post-type-archive-elite_area.premium-inner .town--home .town__ic,
.post-type-archive-elite_area.premium-inner .town:has(> .town__note) .town__ic { grid-row: 1 / span 2; }
.post-type-archive-elite_area.premium-inner .town--home .town__ic { background: var(--ortho); color: #fff; }
/* A phone: two tiles to a row, so the pin sheds its box and every town name
   ("Pompton Lakes", "North Haledon") keeps one line. */
@media (max-width: 29.99rem) {
  .post-type-archive-elite_area.premium-inner .towns { gap: 0.5rem; }
  .post-type-archive-elite_area.premium-inner .town { grid-template-columns: 1.1rem minmax(0, 1fr); column-gap: 0.5rem; min-height: 3.5rem; padding: 0.6rem 0.75rem; border-radius: 0.9rem; }
  .post-type-archive-elite_area.premium-inner .town__ic { width: 1.1rem; height: 1.1rem; border-radius: 0; background: none; }
  .post-type-archive-elite_area.premium-inner .town__ic svg { width: 16px; height: 16px; }
  .post-type-archive-elite_area.premium-inner .town--home .town__ic { background: none; color: var(--ortho); }
  .post-type-archive-elite_area.premium-inner .town__name { font-size: 0.9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
.post-type-archive-elite_area.premium-inner .towns + .pagination,
.post-type-archive-elite_area.premium-inner .towns + nav { margin-top: 2.5rem; }

@media (min-width: 48rem) {
  .post-type-archive-elite_area.premium-inner .towns { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.85rem; }
  .post-type-archive-elite_area.premium-inner .town { grid-template-columns: 2.6rem minmax(0, 1fr); column-gap: 0.9rem; min-height: 4.6rem; padding: 0.85rem 1.1rem; border-radius: 1.1rem; }
  .post-type-archive-elite_area.premium-inner .town__ic { width: 2.6rem; height: 2.6rem; border-radius: 0.8rem; }
  .post-type-archive-elite_area.premium-inner .town__ic svg { width: 19px; height: 19px; }
  .post-type-archive-elite_area.premium-inner .town__name { font-size: 1.02rem; }
  .post-type-archive-elite_area.premium-inner .town__tag { font-size: 0.64rem; }
}
@media (min-width: 64rem) {
  .post-type-archive-elite_area.premium-inner .towns { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
  .post-type-archive-elite_area.premium-inner .town { min-height: 5rem; padding: 0.95rem 1.25rem; }
  .post-type-archive-elite_area.premium-inner .town__name { font-size: 1.08rem; }
}

/* The visit section: three equal cards. The Google trust card carries the
   business name and address (printed once in this row), then the office
   hours, then the contact lines with Get Directions and the contact page.
   A tablet: the first two side by side, the contact card across the width
   with its buttons beside the lines. A phone: one column. */
.post-type-archive-elite_area.premium-inner .visit-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.post-type-archive-elite_area.premium-inner .visit-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 0.9rem; min-width: 0; height: 100%; max-width: none; margin: 0;
  padding: 1.6rem; border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.25rem; background: #fff;
  box-shadow: 0 24px 50px -36px rgba(26, 18, 54, 0.45);
}
.post-type-archive-elite_area.premium-inner .visit-card--google { gap: 0.7rem; }
.post-type-archive-elite_area.premium-inner .visit-card--google .gbadge__cta { margin-top: auto; padding-top: 0.35rem; }
.post-type-archive-elite_area.premium-inner .visit-card__ic {
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 0.85rem; background: var(--ortho-tint, #eee9f7); color: var(--ortho);
}
.post-type-archive-elite_area.premium-inner .visit-card__h { margin: 0; color: var(--ink); font-family: var(--display); font-size: 1.2rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; }
.post-type-archive-elite_area.premium-inner .visit-hours { display: grid; align-self: stretch; margin: 0; }
.post-type-archive-elite_area.premium-inner .visit-hours > div {
  display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-top: 1px solid var(--line-soft, #e5e1ea); font-size: 0.95rem; line-height: 1.4;
}
.post-type-archive-elite_area.premium-inner .visit-hours > div:first-child { border-top: 0; padding-top: 0.1rem; }
.post-type-archive-elite_area.premium-inner .visit-hours dt { color: var(--ink); font-weight: 600; }
.post-type-archive-elite_area.premium-inner .visit-hours dd { margin: 0; color: var(--body); font-variant-numeric: tabular-nums; text-align: right; }
.post-type-archive-elite_area.premium-inner .visit-hours .is-closed :is(dt, dd) { color: var(--muted, #6b6478); font-weight: 500; }
.post-type-archive-elite_area.premium-inner .visit-lines { align-self: stretch; margin: 0; }
.post-type-archive-elite_area.premium-inner .visit-lines > div { min-height: 36px; }
.post-type-archive-elite_area.premium-inner .visit-lines a { min-height: 36px; }
.post-type-archive-elite_area.premium-inner .visit-card__acts { display: grid; gap: 0.6rem; align-self: stretch; margin-top: auto; padding-top: 0.4rem; }
.post-type-archive-elite_area.premium-inner .visit-card__dir { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; width: 100%; }
.post-type-archive-elite_area.premium-inner .visit-card__acts .go-link { display: flex; width: 100%; }
@media (min-width: 48rem) and (max-width: 63.99rem) {
  .post-type-archive-elite_area.premium-inner .visit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
  .post-type-archive-elite_area.premium-inner .visit-card--contact {
    display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 17rem); column-gap: 2.5rem; row-gap: 0.9rem; align-items: start;
  }
  .post-type-archive-elite_area.premium-inner .visit-card--contact > :not(.visit-card__acts) { grid-column: 1; }
  .post-type-archive-elite_area.premium-inner .visit-card--contact > .visit-card__acts { grid-column: 2; grid-row: 1 / span 3; align-self: center; margin: 0; padding: 0; }
}
@media (min-width: 64rem) {
  .post-type-archive-elite_area.premium-inner .visit-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
  .post-type-archive-elite_area.premium-inner .visit-card { padding: 1.75rem; }
}
@media (max-width: 47.99rem) {
  .post-type-archive-elite_area.premium-inner .visit-card { padding: 1.35rem 1.25rem; }
}


/* --------------------------------------------------------------------------
   4. Policy pages (page.php): one readable column, aligned with the hero's
   left edge; from 64rem an "On this page" list beside it that stays in view.
   The contact lines close the column in the home page's "Phone:" format.
   -------------------------------------------------------------------------- */
.page-template-default.premium-inner .policy-body { padding-block: clamp(2.75rem, 5vw, 4.5rem) clamp(3.5rem, 6vw, 6rem); }
.page-template-default.premium-inner .pol-layout { display: grid; grid-template-columns: minmax(0, 46rem); gap: 2.5rem; }
.page-template-default.premium-inner .policy-aside { display: none; }
.page-template-default.premium-inner .policy-col { min-width: 0; }
.page-template-default.premium-inner .policy-col > .prose { max-width: none; font-size: 1.04rem; line-height: 1.75; }
.page-template-default.premium-inner .policy-col .prose p { max-width: none; }
.page-template-default.premium-inner .policy-col .prose h2 {
  margin-top: 2.75rem; font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.2; letter-spacing: -0.025em;
}
.page-template-default.premium-inner .policy-col .prose h2:first-child { margin-top: 0; }
.page-template-default.premium-inner .policy-col .prose h2 + p { margin-top: 0.85rem; }
.page-template-default.premium-inner .policy-col .prose ul { display: grid; gap: 0.5rem; margin-top: 1rem; padding-left: 0; list-style: none; }
.page-template-default.premium-inner .policy-col .prose li { position: relative; margin: 0; padding-left: 1.5rem; }
.page-template-default.premium-inner .policy-col .prose li::before {
  content: ""; position: absolute; top: 0.72em; left: 0.2rem; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--ortho); opacity: 0.55;
}
.page-template-default.premium-inner .policy-col .prose a { color: var(--ortho); text-decoration-thickness: 1px; text-underline-offset: 3px; }

.page-template-default.premium-inner .policy-contact { margin-top: 3rem; border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.25rem; box-shadow: 0 24px 50px -40px rgba(26, 18, 54, 0.45); }
.page-template-default.premium-inner .policy-contact .card__body { gap: 0.75rem; padding: 1.75rem 2rem; }
.page-template-default.premium-inner .policy-contact h2 { margin: 0; font-size: clamp(1.3rem, 2vw, 1.6rem); line-height: 1.2; letter-spacing: -0.02em; }
.page-template-default.premium-inner .policy-contact__biz { margin: 0; color: var(--body); font-size: var(--fs-sm); font-weight: 600; }
.page-template-default.premium-inner .policy-contact .loc-lines__list { align-self: stretch; margin: 0.25rem 0 0; }
.page-template-default.premium-inner .policy-contact .loc-lines__list dt { min-width: 5rem; }
.page-template-default.premium-inner .policy-contact .loc-lines__list > div { align-items: baseline; padding: 0.35rem 0; }
.page-template-default.premium-inner .policy-contact .loc-lines__list a { min-height: 0; }
.page-template-default.premium-inner .policy-contact__note { margin: 0.25rem 0 0; padding-top: 0.9rem; border-top: 1px solid var(--line-soft, #e5e1ea); font-size: var(--fs-sm); color: var(--body); }

@media (max-width: 47.99rem) {
  .page-template-default.premium-inner .policy-col > .prose { font-size: 1rem; line-height: 1.7; }
  .page-template-default.premium-inner .policy-col .prose h2 { margin-top: 2.25rem; }
  .page-template-default.premium-inner .policy-contact { margin-top: 2.5rem; }
  .page-template-default.premium-inner .policy-contact .card__body { padding: 1.35rem 1.25rem; }
  .page-template-default.premium-inner .policy-contact .loc-lines__list dt { min-width: 4.6rem; }
}
@media (min-width: 64rem) {
  .page-template-default.premium-inner .pol-layout--toc { grid-template-columns: 14.5rem minmax(0, 46rem); gap: clamp(3rem, 6vw, 6.5rem); align-items: start; }
  .page-template-default.premium-inner .policy-aside { display: block; position: sticky; top: calc(var(--header-h, 81px) + 2rem); }
  .page-template-default.premium-inner .policy-toc__h {
    margin: 0 0 0.9rem; color: var(--muted, #6b6478); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  }
  .page-template-default.premium-inner .policy-toc ol { display: grid; gap: 0.1rem; margin: 0; padding: 0; border-left: 1px solid var(--line-soft, #e5e1ea); list-style: none; }
  .page-template-default.premium-inner .policy-toc a {
    display: block; margin-left: -1px; padding: 0.45rem 0 0.45rem 1rem; border-left: 2px solid transparent;
    color: var(--body); font-size: 0.9rem; font-weight: 600; line-height: 1.35; text-decoration: none; transition: color 0.2s ease, border-color 0.2s ease;
  }
  .page-template-default.premium-inner .policy-toc a:hover,
  .page-template-default.premium-inner .policy-toc a:focus-visible { border-left-color: var(--ortho); color: var(--ortho); }
}


/* --------------------------------------------------------------------------
   5. 404 (404.php): copy and actions on the left, a card of popular pages and
   a search on the right; on a phone the card follows the copy.
   -------------------------------------------------------------------------- */
.error404.premium-inner .nf-side { min-width: 0; margin-top: 2rem; }
.error404.premium-inner .nf-panel {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: 1.35rem; border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.25rem;
  background: #fff; box-shadow: 0 30px 60px -44px rgba(26, 18, 54, 0.5);
}
.error404.premium-inner .nf-panel__h { margin: 0 0 0.85rem; color: var(--muted, #6b6478); font-family: var(--text); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; line-height: 1.3; text-transform: uppercase; }
.error404.premium-inner .nf-panel__links { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
.error404.premium-inner .nf-panel__links > .go-link { display: flex; width: 100%; min-height: 52px; }
.error404.premium-inner .nf-panel__search { padding-top: 1.35rem; border-top: 1px solid var(--line-soft, #e5e1ea); }
@media (min-width: 48rem) {
  .error404.premium-inner .nf-panel { padding: 1.75rem; }
  .error404.premium-inner .nf-panel__links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
}
@media (min-width: 64rem) {
  .error404.premium-inner .nf-hero .ihero__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
  .error404.premium-inner .nf-side { margin-top: 0; }
  .error404.premium-inner .nf-panel { padding: 2rem; border-radius: 1.5rem; }
  /* Beside the copy the card is too narrow for two columns of links until 80rem. */
  .error404.premium-inner .nf-panel__links { grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
}
@media (min-width: 80rem) {
  .error404.premium-inner .nf-panel__links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
}
/* A small desktop (1024 to 1279px) or a short one: the page still fits one
   screen. The second line of the lede goes, and the hero, the card and its
   links are tightened, so the rating and the search stay above the fold. */
@media (min-width: 64rem) and (max-width: 79.99rem), (min-width: 64rem) and (max-height: 56rem) {
  .error404.premium-inner .ihero.nf-hero { padding-block: 2rem 2.25rem; }
  .error404.premium-inner .nf-hero .ihero__copy { gap: 0.9rem; }
  .error404.premium-inner .nf-hero .lede__extra { display: none; }
  .error404.premium-inner .nf-panel { gap: 1.1rem; padding: 1.5rem; }
  .error404.premium-inner .nf-panel__h { margin-bottom: 0.7rem; }
  .error404.premium-inner .nf-panel__links { gap: 0.5rem; }
  .error404.premium-inner .nf-panel__links > .go-link { min-height: 44px; }
  .error404.premium-inner .nf-panel__search { padding-top: 1.1rem; }
  .error404.premium-inner .nf-panel .search-form__input,
  .error404.premium-inner .nf-panel .search-form__btn { min-height: 48px; }
}


/* --------------------------------------------------------------------------
   6. Search form (searchform.php): the site's field style, button beside it.
   Used in the search hero and in the 404 card.
   -------------------------------------------------------------------------- */
:is(.search, .error404).premium-inner .search-form { width: 100%; }
:is(.search, .error404).premium-inner .search-form__row { display: flex; gap: 0.6rem; }
:is(.search, .error404).premium-inner .search-form__input {
  flex: 1 1 auto; min-width: 0; min-height: 52px; padding: 0.75rem 1rem;
  border: 1px solid var(--line, #dcd5e7); border-radius: 0.65rem; background: #fff;
  font-family: var(--text); font-size: 1rem; color: var(--ink);
  -webkit-appearance: none; appearance: none;
}
:is(.search, .error404).premium-inner .search-form__input::placeholder { color: #8f8aa6; }
:is(.search, .error404).premium-inner .search-form__input:focus {
  outline: none; border-color: var(--ortho); box-shadow: 0 0 0 3px rgba(70, 45, 136, 0.15);
}
:is(.search, .error404).premium-inner .search-form__btn { flex: none; min-height: 52px; padding-inline: 1.4rem; }

/* Search results (search.php). The form sits in the hero under the heading. */
.search.premium-inner .search-hero__form { width: 100%; max-width: 36rem; margin-top: 0.35rem; }
.search.premium-inner .search-hero__form .search-form__input { box-shadow: 0 16px 34px -28px rgba(26, 18, 54, 0.45); }
.search.premium-inner .search-body { padding-block: clamp(2.75rem, 5vw, 4.5rem) clamp(3.5rem, 6vw, 6rem); }
.search.premium-inner .search-group + .search-group { margin-top: clamp(2.5rem, 4vw, 3.5rem); }
.search.premium-inner .search-group__h {
  display: flex; align-items: center; gap: 0.6rem; margin: 0 0 1.25rem; font-size: clamp(1.25rem, 2vw, 1.5rem); line-height: 1.2; letter-spacing: -0.02em;
}
.search.premium-inner .search-group__h span {
  display: inline-grid; place-items: center; min-width: 1.75rem; height: 1.75rem; padding: 0 0.5rem; border-radius: 999px;
  background: var(--ortho-tint, #eee9f7); color: var(--ortho); font-family: var(--text); font-size: 0.8rem; font-weight: 700; letter-spacing: 0;
}
.search.premium-inner .search-hero__note { margin: 0; max-width: 46ch; color: var(--body); font-size: 1rem; line-height: 1.6; }
.search.premium-inner .popular-pages .go-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
.search.premium-inner .popular-pages .go-grid > .go-link { display: flex; width: 100%; min-height: 56px; }
.search.premium-inner .popular-pages__call { display: grid; justify-items: start; gap: 0.85rem; margin-top: 2.5rem; }
.search.premium-inner .popular-pages__call p { margin: 0; max-width: 40ch; color: var(--body); }
.search.premium-inner .popular-pages__call .hero-contact { margin: 0; }
.search.premium-inner .popular-pages__call .pill { min-width: 14rem; justify-content: center; }
@media (min-width: 48rem) {
  .search.premium-inner .popular-pages .go-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
}
@media (min-width: 64rem) {
  .search.premium-inner .popular-pages .go-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.search.premium-inner .results { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.search.premium-inner .results > li { display: flex; min-width: 0; }
.search.premium-inner .result {
  display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) auto; align-items: center; column-gap: 0.9rem;
  width: 100%; padding: 1rem 1.1rem; border: 1px solid var(--line-soft, #e5e1ea); border-radius: 1.25rem; background: #fff;
  color: var(--ink); text-decoration: none; box-shadow: 0 1px 0 rgba(26, 18, 54, 0.03);
  transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), border-color 0.2s ease, box-shadow 0.2s ease;
}
.search.premium-inner .result:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--ortho) 24%, #e5e1ea); box-shadow: 0 28px 50px -34px rgba(26, 18, 54, 0.5); }
.search.premium-inner .result__ic { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 0.85rem; background: var(--ortho-tint); color: var(--ortho); }
.search.premium-inner .result--ped .result__ic { background: var(--ped-tint); color: var(--ped); }
.search.premium-inner .result__body { display: grid; gap: 0.2rem; min-width: 0; }
.search.premium-inner .result__k { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ortho); }
.search.premium-inner .result--ped .result__k { color: var(--ped); }
.search.premium-inner .result__t { font-family: var(--display); font-size: 1.08rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.015em; }
.search.premium-inner .result__p {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
  font-size: 0.9rem; line-height: 1.5; color: var(--body);
}
.search.premium-inner .result .go-link__ic { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 0.55rem; background: var(--ortho-tint, #eee9f7); color: var(--ortho); }
.search.premium-inner .result:hover .go-link__ic { background: var(--ortho); color: #fff; }
.search.premium-inner .result--ped .go-link__ic { background: var(--ped-tint); color: var(--ped); }
.search.premium-inner .result--ped:hover .go-link__ic { background: var(--ped); color: #fff; }
.search.premium-inner .search-group + .pagination, .search.premium-inner .search-group + nav { margin-top: 2.5rem; }
/* A clinician: a small portrait in the arch shape instead of an icon. */
.search.premium-inner .result__ic--photo { overflow: hidden; border-radius: 999px 999px 0.7rem 0.7rem; background: var(--ortho-tint); }
.search.premium-inner .result--ped .result__ic--photo { background: var(--ped-tint); }
.search.premium-inner .result__ic--photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
/* A clinician's line is a one-sentence biography: printed whole, never cut. */
.search.premium-inner .result--person .result__p { display: block; overflow: visible; -webkit-line-clamp: unset; }
/* One or two matches: the popular pages follow, under a quiet rule. */
.search.premium-inner .search-more { margin-top: clamp(3rem, 5vw, 4.5rem); padding-top: clamp(2.5rem, 4vw, 3.5rem); border-top: 1px solid var(--line-soft, #e5e1ea); }

@media (max-width: 47.99rem) {
  .search.premium-inner .result { column-gap: 0.75rem; padding: 0.85rem; border-radius: 1rem; }
  .search.premium-inner .result:hover { transform: none; }
  .search.premium-inner .result__t { font-size: 1rem; }
  .search.premium-inner .result__p { font-size: 0.84rem; -webkit-line-clamp: 3; }
}
@media (min-width: 48rem) {
  .search.premium-inner .results { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
}
