/* El Gravo 2.0 — components and inner pages.
   Tokens and base elements: site.css. Home composition: home.css. */

/* ——— Shared page parts ——— */
.elgravo-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; margin: 0 0 clamp(24px, 3vw, 40px); color: var(--eg-ink-soft); font-size: var(--eg-fs-small); line-height: 1.5; }
.elgravo-breadcrumb a { color: var(--eg-ink-soft); text-decoration: none; }
.elgravo-breadcrumb a:is(:hover, :focus-visible) { color: var(--eg-link-hover); }
.elgravo-breadcrumb > span[aria-hidden] { padding: 0 8px; color: var(--eg-ink-faint); }
.elgravo-breadcrumb [aria-current] { color: var(--eg-ink); }

.eg-profile-label, .eg-result-type { margin: 0; color: var(--eg-ink-soft); font-size: 15px; font-weight: 450; line-height: 1.4; }
.eg-profile-back { display: inline-flex; align-items: center; min-height: 44px; color: var(--eg-ink); font-size: 15px; font-weight: 450; }

/* Page intros: no boxes, just a big, soft headline and a short lead. */
:is(.eg-doctors-intro, .eg-archive-header, .eg-contacts-intro, .eg-price-intro) { max-width: 820px; margin: 0 0 clamp(36px, 4.5vw, 64px) !important; padding: 0; background: none; border-radius: 0; }
:is(.eg-doctors-intro, .eg-archive-header, .eg-contacts-intro, .eg-price-intro) h1 { margin: 0 0 20px; font-size: var(--eg-fs-h1); }
:is(.eg-doctors-intro, .eg-archive-header, .eg-contacts-intro, .eg-price-intro) > p { max-width: 36em; margin: 0; color: var(--eg-ink-soft); font-size: var(--eg-fs-lead); line-height: 1.55; }

/* Two-column record: content and a sticky booking form. */
.elgravo-record { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: clamp(32px, 5vw, 80px); align-items: start; }
.elgravo-record > * { min-width: 0; }
.elgravo-record-sidebar { position: sticky; top: 104px; align-self: start; width: 100%; max-width: none; }
.elgravo-record-photo { display: block; width: 100%; max-height: 520px; object-fit: cover; margin: 0 0 20px; border-radius: 28px; }
.elgravo-record .entry-content > p, .elgravo-record .entry-content > ul, .elgravo-record .entry-content > ol { max-width: 68ch; font-size: 17px; line-height: 1.7; }
.elgravo-record .entry-content h2 { margin: 1.6em 0 .6em; font-size: clamp(26px, 2.4vw, 36px); }
.elgravo-record .entry-content h3 { margin: 1.6em 0 .5em; }
.elgravo-record .entry-content li { margin-bottom: .4em; }
.elgravo-record .entry-content li::marker { color: var(--eg-apricot); }
.elgravo-record .entry-content img { border-radius: 24px; }
.elgravo-record > div > h1 { margin-bottom: 28px; }
.elgravo-record > div > h2, .eg-doctor-content > h2, .eg-review-record .entry-content + h2 { margin: clamp(48px, 5vw, 72px) 0 24px; font-size: clamp(28px, 2.6vw, 40px); }

/* ——— 3D tooth icons (one sprite, each crop is exact) ——— */
.eg-service-icon { display: flex; align-items: center; justify-content: center; flex: none; width: var(--eg-icon-size, 96px); height: var(--eg-icon-size, 96px); }
.eg-icon-crop { position: relative; width: var(--eg-icon-size, 96px); margin: 0 !important; overflow: hidden; }
.eg-icon-crop img { position: absolute; display: block; max-width: none !important; }
.eg-icon-treatment { height: calc(var(--eg-icon-size, 96px) * .9076); }
.eg-icon-treatment img { width: 486.957%; height: 262.874%; left: -16.033%; top: -24.551%; }
.eg-icon-restoration { height: calc(var(--eg-icon-size, 96px) * .8242); }
.eg-icon-restoration img { width: 425.653%; height: 253.026%; left: -113.539%; top: -21.326%; }
.eg-icon-surgery { height: calc(var(--eg-icon-size, 96px) * .9792); }
.eg-icon-surgery img { width: 466.667%; height: 233.511%; left: -244.01%; top: -12.234%; }
.eg-icon-hygiene { height: calc(var(--eg-icon-size, 96px) * .8858); }
.eg-icon-hygiene img { width: 454.822%; height: 251.576%; left: -343.909%; top: -19.771%; }
/* «Прикус и эстетика» gets the tooth with braces and an aligner. */
.eg-icon-aesthetics { height: calc(var(--eg-icon-size, 96px) * .8475); }
.eg-icon-aesthetics img { width: 401.794%; height: 232.275%; left: -158.072%; top: -117.725%; }
.eg-icon-family { height: calc(var(--eg-icon-size, 96px) * 1.0746); }
.eg-icon-family img { width: 495.028%; height: 225.707%; left: -354.696%; top: -112.339%; }
.eg-icon-dentures { height: calc(var(--eg-icon-size, 96px) * .7414); }
.eg-icon-dentures img { width: 386.207%; height: 255.233%; left: -32.974%; top: -138.372%; }

/* ——— «Как мы лечим» (synced block 1589: home, about, licences, service pages) ———
   Four main points with icons; the rest open from «Ещё…» (core Details block). */
.eg-home-benefits { display: block; max-width: none; margin: 0 !important; padding: 0; }
.eg-home-benefits > h2 { max-width: 14em; margin: 0 0 clamp(32px, 4vw, 56px); }
.eg-benefit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px clamp(24px, 3vw, 48px); margin: 0 !important; }
.eg-benefit-card { position: relative; display: block; margin: 0 !important; padding: 0; background: none; border: 0; border-radius: 0; }
.eg-benefit-card > .eg-service-icon { display: none; }
.eg-benefit-card h3 { margin: 0 0 10px !important; font-size: 21px; font-weight: 500; line-height: 1.28; }
.eg-benefit-card p { max-width: 34em; margin: 0 !important; color: var(--eg-ink-soft); font-size: 15.5px; line-height: 1.6; }
/* Icon: a soft apricot circle with a line icon (Lucide, ISC — assets/icons). */
.eg-benefit-card[class*="is-icon-"] { padding-top: 84px; }
.eg-benefit-card[class*="is-icon-"]::before { content: ''; position: absolute; left: 0; top: 0; width: 64px; height: 64px; border-radius: 50%; background: var(--eg-apricot-wash); }
.eg-benefit-card[class*="is-icon-"]::after { content: ''; position: absolute; left: 16px; top: 16px; width: 32px; height: 32px; background: var(--eg-ink); -webkit-mask: var(--eg-icon) center / contain no-repeat; mask: var(--eg-icon) center / contain no-repeat; }
.eg-benefit-card.is-icon-smile { --eg-icon: url(icons/smile.svg); }
.eg-benefit-card.is-icon-microscope { --eg-icon: url(icons/microscope.svg); }
.eg-benefit-card.is-icon-team { --eg-icon: url(icons/users-round.svg); }
.eg-benefit-card.is-icon-doctor { --eg-icon: url(icons/user-round-check.svg); }
.eg-benefit-card.is-icon-shield { --eg-icon: url(icons/shield-check.svg); }
.eg-benefit-card.is-icon-clean { --eg-icon: url(icons/sparkles.svg); }
.eg-benefit-card.is-icon-guarantee { --eg-icon: url(icons/badge-check.svg); }
.eg-benefit-card.is-icon-payment { --eg-icon: url(icons/credit-card.svg); }

/* «Ещё…»: the remaining points, compact, icon beside the text. */
.eg-benefit-more { margin: clamp(40px, 4vw, 56px) 0 0 !important; padding: 0; border: 0; border-top: 1px solid var(--eg-line); }
.eg-benefit-more > summary { position: relative; display: flex; align-items: center; gap: 14px; width: fit-content; max-width: 100%; min-height: 72px; padding: 16px 0; list-style: none; cursor: pointer; font-size: 17px; font-weight: 500; line-height: 1.35; }
.eg-benefit-more > summary::-webkit-details-marker { display: none; }
.eg-benefit-more > summary::after { content: ''; position: static; flex: 0 0 44px; width: 44px; height: 44px; margin: 0; border-radius: 50%; background: var(--eg-lilac) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%232d2a47' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center no-repeat; transition: transform .22s, background-color .15s; }
.eg-benefit-more > summary:hover::after { background-color: var(--eg-lilac-strong); }
.eg-benefit-more[open] > summary::after { transform: rotate(45deg); background-color: var(--eg-apricot); }
.eg-benefit-more[open] > summary { margin-bottom: 8px; }
.eg-benefit-more .eg-benefit-grid { gap: 28px clamp(24px, 3vw, 48px); padding: 8px 0 12px; }
.eg-benefit-more .eg-benefit-card[class*="is-icon-"] { padding: 0 0 0 60px; }
.eg-benefit-more .eg-benefit-card[class*="is-icon-"]::before { width: 44px; height: 44px; background: var(--eg-lilac); }
.eg-benefit-more .eg-benefit-card[class*="is-icon-"]::after { left: 11px; top: 11px; width: 22px; height: 22px; }
.eg-benefit-more .eg-benefit-card h3 { margin-bottom: 6px !important; font-size: 17px; }
.eg-benefit-more .eg-benefit-card p { font-size: 14.5px; }
@media (prefers-reduced-motion: no-preference) {
  .eg-benefit-more[open] .eg-benefit-grid { animation: eg-reveal .32s ease-out both; }
}
@keyframes eg-reveal { from { opacity: 0; transform: translateY(-6px); } }
:is(.eg-service-page, .eg-about-page, .eg-information-page) .eg-home-benefits { margin-top: var(--eg-section) !important; }
.eg-information-page .elgravo-section .eg-home-benefits { margin-top: 0 !important; }

/* ——— Doctors ——— */
.elgravo-doctors { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(32px, 3.4vw, 48px) clamp(14px, 1.6vw, 24px); }
.elgravo-doctor { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; overflow: visible; }
.elgravo-doctor:hover { background: none; }
.eg-doctor-link { display: flex; flex-direction: column; height: 100%; color: var(--eg-ink); text-decoration: none; border-radius: 28px; }
.eg-doctor-portrait { position: relative; aspect-ratio: 4 / 5; padding: 0; overflow: hidden; background: var(--eg-lilac); border-radius: 28px; isolation: isolate; }
.eg-doctor-portrait .elgravo-doctor-photo { display: block; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center 18%; border-radius: 0; mix-blend-mode: multiply; transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.eg-doctor-link:hover .elgravo-doctor-photo { transform: scale(1.035); }
.eg-doctor-portrait-empty { display: grid; place-items: center; color: var(--eg-ink-soft); font-size: 22px; font-variation-settings: "CRSV" 1; }
.eg-doctor-copy { display: flex; flex-direction: column; gap: 6px; padding: 18px 6px 0; }
.eg-doctor-copy h3 { margin: 0; font-size: 19px; font-weight: 500; line-height: 1.28; letter-spacing: -.012em; transition: color .22s ease .04s; }
.eg-doctor-link:is(:hover, :focus-visible) h3 { color: var(--eg-link-hover); }
.eg-doctor-copy p { margin: 0; color: var(--eg-ink-soft); font-size: 14px; line-height: 1.45; }
.eg-doctor-copy p::first-letter { text-transform: uppercase; }
.eg-doctor-specialties { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 0; padding: 0; list-style: none; }
.eg-doctor-specialties li { max-width: 100%; margin: 0; padding: 6px 10px; border-radius: var(--eg-r-pill); background: var(--eg-lilac); color: var(--eg-ink); font-size: 12px; font-weight: 450; line-height: 1.4; }
.eg-profile-copy .eg-doctor-specialties { margin: 0; }
.eg-profile-copy .eg-doctor-specialties li { padding: 8px 14px; font-size: 14px; }
.eg-doctor-more { display: none; }

.eg-doctors-help { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 48px; align-items: center; margin: var(--eg-section) 0 0 !important; padding: clamp(28px, 3.4vw, 48px) clamp(28px, 4vw, 56px); background: var(--eg-apricot-wash); color: var(--eg-ink); border-radius: var(--eg-r-l); }
.eg-doctors-help > * { margin: 0 !important; }
.eg-doctors-help h2 { margin: 0 0 10px; color: var(--eg-ink); font-size: clamp(26px, 2.4vw, 36px); line-height: 1.1; }
.eg-doctors-help p { max-width: 44em; margin: 0; color: var(--eg-ink-soft); font-size: 16px; line-height: 1.55; }
.eg-doctors-help .wp-block-button__link { min-height: 56px; padding: 0 30px; }

/* Doctor profile */
.eg-doctor-profile { display: grid; grid-template-columns: minmax(208px, 1fr) minmax(0, 2fr); gap: clamp(28px, 5vw, 80px); align-items: center; margin: 0 0 clamp(48px, 6vw, 88px); padding: 0; background: none; border-radius: 0; overflow: visible; }
.eg-profile-portrait { display: block; padding: 0; overflow: hidden; background: var(--eg-lilac); border-radius: 36px; aspect-ratio: 4 / 5; }
.eg-profile-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 18%; border-radius: 0; mix-blend-mode: multiply; }
.eg-profile-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 0; }
.eg-profile-copy > * { margin: 0; }
.eg-profile-copy .eg-profile-label { margin-bottom: 18px; }
.eg-profile-copy h1 { max-width: 11em; margin-bottom: 20px; font-size: var(--eg-fs-h1); }
.eg-profile-copy .elgravo-doctor-specialty { margin-bottom: 24px; color: var(--eg-ink-soft); font-size: var(--eg-fs-lead); font-style: normal; line-height: 1.5; }
.eg-profile-copy .eg-profile-description { max-width: 42em; margin-bottom: 28px; color: var(--eg-ink-soft); font-size: 16px; line-height: 1.65; }
.eg-profile-description p { margin: 0; }
.eg-profile-copy .elgravo-doctor-specialty p { margin: 0; }
.eg-profile-copy .elgravo-doctor-specialty p::first-letter { text-transform: uppercase; }
.eg-profile-copy .eg-button { min-height: 60px; padding: 0 34px; font-size: 17px; }
.eg-profile-copy .eg-profile-back { margin-top: 12px; }
.eg-doctor-profile-no-photo { grid-template-columns: 1fr; }
.eg-doctor-record { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); }
.eg-doctor-content .entry-content > p:first-child { font-size: var(--eg-fs-lead); line-height: 1.6; color: var(--eg-ink); }
.doctor-education { margin: 32px 0 0; }
.doctor-career-info { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.doctor-career-info p { display: inline-flex; align-items: baseline; gap: 6px; margin: 0; padding: 12px 20px; background: var(--eg-lilac); border-radius: var(--eg-r-pill); font-size: 16px; font-weight: 500; line-height: 1.3; font-variant-numeric: tabular-nums; }
.doctor-career-info p strong { color: var(--eg-ink-soft); font-weight: 400; }
.education-list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--eg-line); }
.education-item { margin: 0; padding: 18px 0; border-top: 1px solid var(--eg-line); color: var(--eg-ink-soft); font-size: 15px; line-height: 1.6; }
.education-item strong { color: var(--eg-ink); font-weight: 500; }
.education-item br { display: none; }
.elgravo-doctor-primary { margin: clamp(40px, 5vw, 64px) 0 0; padding: clamp(24px, 3vw, 36px); background: var(--eg-apricot-wash); border-radius: 28px; }
.elgravo-doctor-primary h2 { margin: 0 0 16px; font-size: clamp(24px, 2.2vw, 32px); }
.elgravo-doctor-primary ul { margin: 0 0 12px; padding: 0; list-style: none; }
.elgravo-doctor-primary li { padding: 12px 0; border-bottom: 1px solid rgba(45, 42, 71, .12); font-size: 15px; line-height: 1.55; }
.elgravo-doctor-primary p { margin: 12px 0 0; color: var(--eg-ink-soft); font-size: 15px; }
.eg-doctor-documents { margin: clamp(40px, 5vw, 64px) 0 0; }
.eg-doctor-documents h2 { margin: 0 0 20px; font-size: clamp(24px, 2.2vw, 32px); }
.elgravo-extra-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.elgravo-extra-photos a { display: grid; place-items: center; padding: 14px; background: var(--eg-lilac); border-radius: 20px; transition: background-color .15s; }
.elgravo-extra-photos a:hover { background: var(--eg-lilac-strong); }
.elgravo-extra-photos img { width: 100%; height: 180px; object-fit: contain; }
.elgravo-all-reviews { margin: 28px 0 0; }

/* ——— Reviews ——— */
.elgravo-reviews { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; align-items: start; }
.elgravo-review {
  display: grid; grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "body body" "avatar name" "avatar source" "more more";
  column-gap: 14px; align-items: center;
  margin: 0; padding: clamp(24px, 2.2vw, 32px);
  background: var(--eg-lilac); border: 0; border-radius: 28px;
}
.elgravo-review:not(:has(.elgravo-review-avatar)) { grid-template-areas: "body body" "name name" "source source" "more more"; }
.elgravo-review-body { grid-area: body; margin: 0 0 24px; color: var(--eg-ink); font-size: 17px; font-style: normal; line-height: 1.55; }
.elgravo-review-body > :last-child { margin-bottom: 0; }
.elgravo-review-body > p { margin: 0 0 .8em; }
.elgravo-review-avatar { grid-area: avatar; float: none; width: 44px; height: 44px; margin: 0; border-radius: 50%; object-fit: cover; }
.elgravo-review h3, .elgravo-review > h2 { grid-area: name; align-self: end; margin: 0; font-size: 15px; font-weight: 500; line-height: 1.35; letter-spacing: 0; font-variation-settings: "CRSV" 0; }
.elgravo-review h3 a { text-decoration: none; }
.elgravo-review h3 a:is(:hover, :focus-visible) { color: var(--eg-link-hover); }
.elgravo-review-source { grid-area: source; align-self: start; margin: 2px 0 0; color: var(--eg-ink-soft); font-size: 13px; line-height: 1.4; }
.elgravo-rating { display: inline-block; margin-left: 6px; color: #8f4d14; font-size: 12px; letter-spacing: 2px; }
.elgravo-review-more { grid-area: more; justify-self: start; margin-top: 18px; color: var(--eg-ink); font-size: 14px; font-weight: 500; }
.elgravo-review-doctor { grid-column: 1 / -1; margin: 12px 0 0; color: var(--eg-ink-soft); font-size: 14px; }
.elgravo-record .elgravo-reviews { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

.eg-reviews-page .elgravo-archive { display: block; columns: 3 300px; column-gap: 20px; }
.eg-reviews-page .elgravo-archive > .elgravo-review { break-inside: avoid; margin-bottom: 20px; }
.eg-review-record { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); }
.eg-review-header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; margin: 0 0 28px; }
.eg-review-header h1 { margin: 0; }
.eg-review-full { grid-template-areas: "body body" "avatar name" "avatar source" "doctor doctor" "original original"; padding: clamp(28px, 4vw, 56px); border-radius: 36px; }
.eg-review-full:not(:has(.elgravo-review-avatar)) { grid-template-areas: "body body" "name name" "source source" "doctor doctor" "original original"; }
.elgravo-record .eg-review-full > h2 { margin: 0; font-size: 17px; font-weight: 500; line-height: 1.35; letter-spacing: 0; font-variation-settings: "CRSV" 0; }
.eg-review-full .elgravo-review-body { font-size: clamp(19px, 1.6vw, 23px); line-height: 1.5; font-weight: 340; }
.eg-review-full .elgravo-review-doctor { grid-area: doctor; }
.eg-review-full .eg-review-original { grid-area: original; margin: 14px 0 0; font-size: 14px; }
.eg-review-record .elgravo-doctors { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

/* ——— Prices ——— */
.eg-price-intro { display: flow-root; }
.eg-price-intro .wp-block-buttons { display: inline-flex; vertical-align: middle; margin: 28px 12px 0 0; }
.eg-price-intro .dkpdf-button-container { display: inline-flex; float: none; width: auto; margin: 28px 0 0; padding: 0; vertical-align: middle; }
.dkpdf-button-container a.dkpdf-button { display: inline-flex; align-items: center; gap: 10px; min-height: var(--eg-control); padding: 0 24px; border-radius: var(--eg-r-pill); box-shadow: inset 0 0 0 1.5px var(--eg-line-strong); color: var(--eg-ink); font-size: 16px; font-weight: 500; text-decoration: none; }
.dkpdf-button-container a.dkpdf-button:hover { background: var(--eg-lilac); box-shadow: inset 0 0 0 1.5px var(--eg-ink); }
.dkpdf-button-container .dkpdf-button-icon { display: none; }
.dkpdf-button-container a.dkpdf-button::before { content: ''; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none'%3E%3Cpath d='M9 2.5v9m0 0 3.5-3.5M9 11.5 5.5 8M3 13.5V15h12v-1.5' stroke='%232d2a47' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center no-repeat; }

.elgravo-price-list { display: block; width: 100%; min-width: 0; border-bottom: 1px solid var(--eg-line); }
.elgravo-price-section { margin: 0; border: 0; border-top: 1px solid var(--eg-line); border-radius: 0; overflow: visible; }
.elgravo-price-section > summary { position: relative; display: flex; align-items: center; min-height: 76px; margin: 0; padding: 18px 64px 18px 0; background: none; list-style: none; cursor: pointer; font-size: clamp(18px, 1.5vw, 21px); font-weight: 450; line-height: 1.3; letter-spacing: -.01em; }
.elgravo-price-section > summary::-webkit-details-marker { display: none; }
.elgravo-price-section > summary::after { content: ''; position: absolute; right: 0; top: 50%; width: 44px; height: 44px; margin-top: -22px; border-radius: 50%; background: var(--eg-lilac) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%232d2a47' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center no-repeat; transition: transform .22s, background-color .15s; }
.elgravo-price-section > summary:hover { background: none; }
.elgravo-price-section > summary:hover::after { background-color: var(--eg-lilac-strong); }
.elgravo-price-section[open] > summary::after { transform: rotate(45deg); background-color: var(--eg-apricot); }
.elgravo-price-section[open] > summary { margin: 0; }
.elgravo-price-section-body { padding: 0 0 28px; }
.elgravo-section-link { margin: 0 0 12px; font-size: 14px; }
.elgravo-section-link a { color: var(--eg-ink-soft); }
.elgravo-price-section-body .elgravo-price-section { margin: 0 0 0 clamp(0px, 2vw, 24px); border-top-color: var(--eg-line); }
.elgravo-price-section-body .elgravo-price-section > summary { min-height: 60px; padding: 14px 52px 14px 0; font-size: 16px; font-weight: 500; letter-spacing: 0; }
.elgravo-price-section-body .elgravo-price-section > summary::after { width: 34px; height: 34px; margin-top: -17px; background-size: 12px; }
.elgravo-price-section-body .elgravo-price-section-body { padding-bottom: 18px; }
.elgravo-price-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--eg-line); font-size: 15px; line-height: 1.5; }
.elgravo-price-row:last-child { border-bottom: 0; }
.elgravo-price-row a { color: var(--eg-ink); text-decoration: none; }
.elgravo-price-row a:is(:hover, :focus-visible) { color: var(--eg-link-hover); }
.elgravo-service-code { display: block; margin-top: 2px; color: var(--eg-ink-soft); font-size: 12.5px; line-height: 1.4; }
.elgravo-price-value { white-space: nowrap; font-size: 16px; font-weight: 500; font-variant-numeric: tabular-nums; }

/* Service pages */
.eg-service-header { display: block; margin: 0 0 clamp(40px, 5vw, 72px); padding: 0; background: none; border-radius: 0; overflow: visible; }
.eg-service-header-with-photo { display: grid; grid-template-columns: minmax(0, 7fr) minmax(240px, 5fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.eg-service-header-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 0; max-width: 900px; padding: 0; }
.eg-service-header-copy > * { margin: 0; }
.eg-service-header-copy .eg-profile-label { margin-bottom: 18px; }
.eg-service-header h1 { max-width: 15em; font-size: var(--eg-fs-h1); }
.eg-service-header-price { margin-top: 22px !important; font-size: clamp(30px, 3vw, 44px); font-weight: 320; font-variation-settings: "CRSV" 1; letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.eg-service-header-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 36px !important; }
.eg-service-header-actions .eg-button { min-height: 60px; padding: 0 34px; font-size: 17px; }
.eg-service-header-media { padding: 0; overflow: hidden; background: var(--eg-lilac); border-radius: 36px; }
.eg-service-header-photo { display: block; width: 100%; max-height: 420px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
.eg-service-record { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); }
.eg-service-record:has(.eg-service-content > .entry-content:empty:only-child) { grid-template-columns: minmax(0, 560px); }
.eg-service-record:has(.eg-service-content > .entry-content:empty:only-child) .eg-service-content { display: none; }
.eg-service-content .entry-content > p:first-child { font-size: var(--eg-fs-lead); line-height: 1.6; }
.elgravo-service-description { margin-top: 24px; font-size: 16px; line-height: 1.7; }
.eg-service-prices { margin-top: clamp(40px, 5vw, 64px); }
.eg-service-prices > h2 { margin: 0 0 20px; font-size: clamp(28px, 2.6vw, 40px); }

/* ——— About ——— */
.eg-about-page { margin: 0 !important; }
.eg-about-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); margin: clamp(40px, 5vw, 72px) 0 0 !important; background: var(--eg-lilac); border-radius: 40px; overflow: visible; }
.eg-about-intro > * { margin: 0 !important; min-width: 0; }
.eg-about-copy { display: flex; flex-direction: column; justify-content: center; gap: 0; padding: clamp(36px, 5.5vw, 88px); }
.eg-about-copy > * { margin: 0 !important; }
.eg-about-copy h1 { margin-bottom: 28px !important; font-size: var(--eg-fs-h1); }
.eg-about-copy p { max-width: 34em; color: var(--eg-ink-soft); font-size: 16px; line-height: 1.65; }
.eg-about-copy h1 + p { color: var(--eg-ink); font-size: var(--eg-fs-lead); line-height: 1.5; }
.eg-about-copy p + p { margin-top: 14px !important; }
.eg-about-portrait { display: flex; align-items: flex-end; justify-content: center; margin-top: clamp(-96px, -6vw, -48px) !important; padding: 0; background: none; }
.eg-about-portrait figure { margin: 0; }
.eg-about-portrait img { display: block; width: auto; max-width: 100%; height: clamp(420px, 42vw, 600px); object-fit: contain; object-position: bottom; }
.eg-about-video { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; margin: var(--eg-section) 0 0 !important; padding: 0; background: none; border-radius: 0; }
.eg-about-video > * { min-width: 0; margin: 0 !important; }
.eg-about-video-copy h2 { margin: 0 0 16px; }
.eg-about-video-copy p { margin: 0 0 28px; color: var(--eg-ink-soft); font-size: var(--eg-fs-lead); line-height: 1.55; }
.eg-clinic-video { margin: 0; }
.eg-clinic-video iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 28px; background: var(--eg-lilac); }
.eg-clinic-video figcaption { margin-top: 10px; font-size: 13px; }
.eg-clinic-video figcaption a { color: var(--eg-ink-soft); }

/* ——— Contacts ——— */
.eg-contacts-page { margin: 0 !important; }
.eg-contacts-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.eg-contacts-layout > * { min-width: 0; margin: 0 !important; }
.eg-contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 !important; }
.eg-contact-card { margin: 0 !important; padding: clamp(22px, 2.4vw, 32px); background: var(--eg-paper); border: 1px solid var(--eg-line); border-radius: 28px; }
.eg-contact-address { grid-column: 1 / -1; background: var(--eg-lilac); border-color: transparent; }
.eg-contact-card h2 { margin: 0 0 12px; color: var(--eg-ink-soft); font-size: 14px; font-weight: 400; font-variation-settings: "CRSV" 0; letter-spacing: 0; line-height: 1.4; }
.eg-contact-card p { margin: 0; color: var(--eg-ink-soft); font-size: 15px; line-height: 1.6; }
.eg-contact-address p:first-of-type { color: var(--eg-ink); font-size: clamp(24px, 2.2vw, 32px); font-weight: 320; font-variation-settings: "CRSV" 1; letter-spacing: -.025em; line-height: 1.2; margin-bottom: 8px; }
.eg-contact-card a { display: inline-block; padding: 2px 0; color: var(--eg-ink); font-size: 19px; font-weight: 500; text-decoration: none; font-variant-numeric: tabular-nums; }
.eg-contact-card a:is(:hover, :focus-visible) { color: var(--eg-link-hover); }
.eg-contact-map { margin: clamp(32px, 4vw, 48px) 0 0 !important; }
.eg-contact-map h2 { margin: 0 0 16px; font-size: clamp(24px, 2.2vw, 32px); }
.eg-contact-map .elgravo-map, .elgravo-map { display: block; width: 100%; height: 360px; border: 0; border-radius: 28px; background: var(--eg-lilac); }
.eg-contacts-form .wpcf7 { margin: 0; }
.eg-contacts-form { position: sticky; top: 104px; }

/* ——— Information pages, posts and legacy sections ——— */
.eg-information-page > h1 { max-width: 16em; margin: 0 0 clamp(28px, 3vw, 44px); }
.eg-information-page .entry-content > :is(p, ul, ol, h2, h3, h4) { max-width: 72ch; }
.eg-information-page .entry-content > p, .eg-information-page .entry-content > ul, .eg-information-page .entry-content > ol { font-size: 17px; line-height: 1.7; }
.eg-information-page .entry-content > h2 { margin: 1.6em 0 .6em; font-size: clamp(26px, 2.4vw, 36px); }
.eg-information-page .entry-content > h3 { margin: 1.5em 0 .5em; }
.eg-information-page .entry-content > .elgravo-section { padding: 0; }
.eg-information-page .entry-content > .elgravo-section + .elgravo-section { margin-top: var(--eg-section) !important; }
.eg-information-page .elgravo-section h1 { margin-bottom: clamp(28px, 3vw, 44px); }
.wp-block-gallery.has-nested-images { --wp--style--unstable-gallery-gap: 16px; gap: 16px; }
.wp-block-gallery.has-nested-images figure.wp-block-image { padding: 14px; background: var(--eg-lilac); border-radius: 24px; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 10px; object-fit: contain; }
.elgravo-tone-navy { margin: var(--eg-section) 0 0 !important; padding: clamp(28px, 4vw, 56px) !important; background: var(--eg-lilac); color: var(--eg-ink); border-radius: var(--eg-r-l); }
.elgravo-tone-navy + .elgravo-tone-navy { margin-top: 16px !important; }
.elgravo-tone-navy :is(h2, h3, h4, .wp-block-heading) { color: var(--eg-ink); }
.elgravo-tone-navy p { color: var(--eg-ink-soft); }
.elgravo-topic-grid h3 { font-size: 21px; font-weight: 500; }
.elgravo-topic-grid ul { padding-left: 18px; }
.elgravo-topic-grid li { margin: 6px 0; }
.elgravo-topic-grid li::marker { color: var(--eg-apricot); }
.elgravo-tone-cream { background: var(--eg-apricot-wash); border-radius: var(--eg-r-l); padding: clamp(28px, 4vw, 56px) !important; }
.elgravo-display { color: var(--eg-ink); font-size: var(--eg-fs-display); font-weight: 290; font-variation-settings: "CRSV" 1; letter-spacing: -.045em; line-height: .96; text-transform: none; }

/* ——— Search, archives, empty states ——— */
.eg-archive-header .eg-search-count { margin-top: 16px; color: var(--eg-ink-soft); font-size: 14px; }
.eg-page-search { max-width: 720px; margin: 28px 0 0; }
.eg-page-search > label, .eg-404-search .wp-block-search__label { display: block; margin: 0 0 10px; color: var(--eg-ink-soft); font-size: 14px; font-weight: 450; }
.eg-page-search-controls, .eg-404-search .wp-block-search__inside-wrapper { display: flex; gap: 8px; padding: 6px; border: 1px solid var(--eg-line-strong); border-radius: var(--eg-r-pill); background: var(--eg-paper); transition: border-color .15s, box-shadow .15s; }
.eg-page-search-controls:focus-within, .eg-404-search .wp-block-search__inside-wrapper:focus-within { border-color: var(--eg-ink); box-shadow: 0 0 0 4px rgba(242, 166, 90, .4); }
.eg-page-search input, .eg-404-search .wp-block-search__input { flex: 1; min-width: 0; min-height: 48px; padding: 0 18px; border: 0; border-radius: var(--eg-r-pill); background: transparent; font-size: 17px; }
.eg-page-search input:focus, .eg-404-search .wp-block-search__input:focus { outline: none; }
.eg-page-search input::placeholder, .eg-404-search input::placeholder { color: var(--eg-ink-faint); opacity: 1; }
.eg-page-search .eg-button, .eg-404-search .wp-block-search__button { min-height: 48px; margin: 0; padding: 0 26px; border: 0; border-radius: var(--eg-r-pill); background: var(--eg-apricot); color: var(--eg-ink); font: 500 16px/1 var(--eg-font); cursor: pointer; }
.eg-404-search .wp-block-search__button:hover { background: var(--eg-apricot-hover); }

.elgravo-archive { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.eg-result-card { min-width: 0; padding: 0; border: 0; border-radius: 0; }
.eg-results-list { display: block; max-width: 880px; border-bottom: 1px solid var(--eg-line); }
.eg-results-list .eg-result-card { padding: 26px 0 28px; border-top: 1px solid var(--eg-line); }
.eg-result-card .eg-result-type { margin-bottom: 8px; font-size: 13px; }
.eg-result-card h2 { margin: 0 0 8px; font-size: clamp(21px, 1.8vw, 26px); font-weight: 400; line-height: 1.2; }
.eg-result-card h2 a { text-decoration: none; }
.eg-result-card h2 a:is(:hover, :focus-visible) { color: var(--eg-link-hover); }
.eg-result-excerpt { max-width: 68ch; margin: 0; color: var(--eg-ink-soft); font-size: 15px; line-height: 1.6; }
.eg-result-price { display: inline-flex; margin: 14px 0 0; padding: 6px 14px; background: var(--eg-lilac); border-radius: var(--eg-r-pill); font-size: 14px; font-weight: 500; font-variant-numeric: tabular-nums; }
.eg-result-photo { display: block; width: 100%; height: 200px; margin-bottom: 16px; object-fit: cover; border-radius: 24px; }

.eg-empty-state { max-width: 880px; padding: clamp(28px, 4vw, 56px); background: var(--eg-apricot-wash); border-radius: 36px; }
.eg-empty-state h2 { margin: 0 0 12px; font-size: clamp(26px, 2.4vw, 36px); }
.eg-empty-state > p { max-width: 40em; margin: 0 0 28px; color: var(--eg-ink-soft); font-size: var(--eg-fs-lead); line-height: 1.55; }
.eg-empty-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.eg-not-found-page { padding-top: clamp(32px, 5vw, 80px); }
.eg-not-found { max-width: 960px; margin: 0 !important; padding: clamp(32px, 6vw, 88px); }
.eg-not-found .eg-status-code { margin: 0 0 8px; color: #b8641a; font-size: clamp(88px, 13vw, 180px); font-weight: 200; font-variation-settings: "CRSV" 1; letter-spacing: -.06em; line-height: .9; }
.eg-not-found h1 { margin: 0 0 18px; }
.eg-404-search { max-width: 640px; margin: 28px 0 0 !important; }
.eg-not-found .wp-block-buttons { margin-top: 28px; }

.pagination { margin-top: clamp(32px, 4vw, 56px); }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 16px; border-radius: var(--eg-r-pill); color: var(--eg-ink); font-size: 15px; font-weight: 450; text-decoration: none; font-variant-numeric: tabular-nums; }
.pagination a.page-numbers:hover { background: var(--eg-lilac); }
.pagination .page-numbers.current { background: var(--eg-ink); color: var(--eg-on-ink); }
.pagination .page-numbers.dots { min-width: 24px; padding: 0; }

/* ——— Responsive ——— */
@media (max-width: 1100px) {
  .elgravo-doctors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .eg-benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
  .elgravo-record, .eg-doctor-record, .eg-service-record, .eg-review-record { grid-template-columns: 1fr; gap: clamp(40px, 6vw, 64px); }
  .elgravo-record-sidebar { position: static; max-width: 600px; }
  .eg-contacts-layout { grid-template-columns: 1fr; }
  .eg-contacts-form { position: static; max-width: 600px; }
  .eg-about-video { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .eg-about-intro { grid-template-columns: 1fr; }
  .eg-about-portrait { order: -1; margin-top: -40px !important; }
  .eg-about-copy { padding-top: 8px; }
  .eg-service-header-with-photo { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .elgravo-breadcrumb a { display: inline-block; padding-block: 8px; }
  .elgravo-review-more { margin-top: 8px; padding-block: 10px; }
  .elgravo-doctors { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
  .eg-doctor-portrait { border-radius: 22px; }
  .eg-doctor-copy { padding: 12px 2px 0; }
  .eg-doctor-copy h3 { font-size: 16px; }
  .eg-doctor-copy p { font-size: 13px; }
  .eg-doctors-help { grid-template-columns: 1fr; padding: 28px 24px; border-radius: 28px; }
  .eg-doctors-help .wp-block-buttons, .eg-doctors-help .wp-block-button, .eg-doctors-help .wp-block-button__link { width: 100%; }
  .eg-doctor-profile { grid-template-columns: 1fr; gap: 28px; }
  .eg-doctor-profile .eg-profile-portrait { width: 80%; justify-self: center; }
  .eg-profile-portrait { max-width: 420px; width: 100%; border-radius: 28px; }
  .eg-profile-copy .eg-button { width: 100%; }
  .elgravo-extra-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .eg-benefit-grid { grid-template-columns: 1fr; }
  .eg-benefit-grid { gap: 28px; }
  .eg-benefit-card[class*="is-icon-"] { padding: 0 0 0 64px; }
  .eg-benefit-card[class*="is-icon-"]::before { width: 48px; height: 48px; }
  .eg-benefit-card[class*="is-icon-"]::after { left: 12px; top: 12px; width: 24px; height: 24px; }
  .eg-benefit-card h3 { font-size: 18px; margin-bottom: 6px !important; }
  .eg-benefit-card p { font-size: 15px; }
  .eg-benefit-more .eg-benefit-card[class*="is-icon-"] { padding-left: 64px; }
  .eg-benefit-more > summary { font-size: 16px; }
  .elgravo-price-section > summary { min-height: 68px; padding-right: 56px; }
  .elgravo-price-section > summary::after { width: 40px; height: 40px; margin-top: -20px; }
  .elgravo-price-section-body .elgravo-price-section { margin-left: 0; }
  .elgravo-price-row { gap: 16px; font-size: 14.5px; }
  .elgravo-price-value { font-size: 15px; }
  .eg-service-header-actions .eg-button { width: 100%; }
  .eg-about-intro { border-radius: 28px; }
  .eg-about-copy { padding: 8px 22px 28px; }
  .eg-about-portrait img { height: 340px; }
  .eg-contact-cards { grid-template-columns: 1fr; }
  .eg-contact-address { grid-column: auto; }
  .elgravo-map, .eg-contact-map .elgravo-map { height: 280px; border-radius: 22px; }
  .eg-review-full { border-radius: 28px; }
  .eg-empty-state { border-radius: 28px; }
  .eg-page-search-controls, .eg-404-search .wp-block-search__inside-wrapper { padding: 4px; }
  .eg-page-search .eg-button, .eg-404-search .wp-block-search__button { padding: 0 18px; }
  .eg-not-found .wp-block-buttons, .eg-not-found .wp-block-button, .eg-not-found .wp-block-button__link { width: 100%; }
}
.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { flex-grow: 0; }
@media (max-width: 600px) { .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: 100%; } }


/* ——— Pages, pass three: navigation state, articles, services, price search ——— */

/* The menu marks the section a visitor is in, also inside doctors, services and reviews. */
:is(body.single-doctors, body.post-type-archive-doctors) .elgravo-desktop-nav .menu-item-2503 > a,
:is(body.single-service, body.single-post) .elgravo-desktop-nav .menu-item-834 > a,
:is(body.single-testimonials, body.post-type-archive-testimonials) .elgravo-desktop-nav .menu-item-1765 > a { background: var(--eg-lilac); }

/* Articles about a direction of treatment */
.eg-article-page .elgravo-record > div > h1 { max-width: 13em; }
.eg-article-page .elgravo-record .entry-content > p:first-child { font-size: var(--eg-fs-lead); line-height: 1.6; color: var(--eg-ink); }
.eg-article-page .elgravo-record .entry-content > p { color: var(--eg-ink-soft); }
.eg-topics-title { margin: var(--eg-section) 0 24px; font-size: clamp(26px, 2.4vw, 36px); }
.eg-article-page .elgravo-topic-grid { margin: 0 !important; border-radius: 0; padding: clamp(24px, 3vw, 40px) clamp(28px, 4vw, 56px) !important; }
.eg-article-page .eg-topics-title + .elgravo-topic-grid, .eg-article-page .eg-topics-title + .wp-block-block > .elgravo-topic-grid:first-child { border-radius: var(--eg-r-l) var(--eg-r-l) 0 0; padding-top: clamp(28px, 4vw, 48px) !important; }
.eg-article-page .elgravo-topic-grid:last-child, .eg-article-page main > .elgravo-topic-grid:last-of-type { border-radius: 0 0 var(--eg-r-l) var(--eg-r-l); padding-bottom: clamp(28px, 4vw, 48px) !important; }
.eg-article-page .elgravo-topic-grid + .elgravo-topic-grid { border-top: 1px solid var(--eg-line-strong); }
.elgravo-topic-grid .wp-block-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px clamp(24px, 3vw, 48px); }
.elgravo-topic-grid .wp-block-column { flex-basis: auto !important; }
.elgravo-topic-grid h3 { margin: 0 0 4px; font-size: 20px; }
.elgravo-topic-grid p { margin: 0 0 12px; font-size: 14px; }
.elgravo-topic-grid ul { margin: 0; padding: 0; list-style: none; }
.elgravo-topic-grid li { margin: 0; }
.elgravo-topic-grid li a { display: inline-flex; align-items: center; min-height: 34px; color: var(--eg-ink); font-size: 15px; text-decoration: none; }
.elgravo-topic-grid li a::before { content: ''; width: 6px; height: 6px; margin-right: 12px; border-radius: 50%; background: var(--eg-apricot); flex: none; }
.elgravo-topic-grid li a:is(:hover, :focus-visible) { color: var(--eg-link-hover); }

/* Services: section names inside a price list are quieter than the page sections. */
.eg-service-prices .elgravo-price-list > .elgravo-price-section > summary { min-height: 64px; font-size: 17px; font-weight: 500; letter-spacing: 0; }
.eg-service-prices .elgravo-price-list > .elgravo-price-section > summary::after { width: 38px; height: 38px; margin-top: -19px; }
.eg-service-header-price { color: var(--eg-ink); }
.eg-service-related { margin-top: clamp(40px, 5vw, 64px); }
.eg-service-related > h2 { margin: 0 0 16px; font-size: clamp(24px, 2.2vw, 32px); }
.eg-service-related-more { margin: 18px 0 0; font-size: 15px; font-weight: 450; }
.eg-service-record .elgravo-record-sidebar .wpcf7 { margin-top: 0; }

/* Price search */
.eg-price-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 16px; align-items: center; margin: 0 0 clamp(20px, 2.4vw, 32px); }
.eg-price-filter { position: relative; display: flex; align-items: center; min-height: 60px; padding: 0 8px 0 52px; border: 1px solid var(--eg-line-strong); border-radius: var(--eg-r-pill); background: var(--eg-paper); transition: border-color .15s, box-shadow .15s; cursor: text; }
.eg-price-filter svg { position: absolute; left: 20px; top: 50%; margin-top: -10px; color: var(--eg-ink-soft); }
.eg-price-filter:focus-within { border-color: var(--eg-ink); box-shadow: 0 0 0 4px rgba(242, 166, 90, .4); }
.eg-price-filter input { flex: 1; min-width: 0; min-height: 56px; border: 0; background: transparent; font-size: 17px; outline: none; }
.eg-price-filter input::placeholder { color: var(--eg-ink-faint); opacity: 1; }
.eg-price-toggle { min-height: 60px; padding: 0 24px; border: 0; border-radius: var(--eg-r-pill); background: var(--eg-lilac); color: var(--eg-ink); font: 500 15px/1.2 var(--eg-font); cursor: pointer; transition: background-color .15s; }
.eg-price-toggle:hover, .eg-price-toggle[aria-pressed="true"] { background: var(--eg-lilac-strong); }
.eg-price-status { grid-column: 1 / -1; margin: 0; color: var(--eg-ink-soft); font-size: 14px; }
.eg-price-status:empty { display: none; }
.elgravo-price-list.is-filtered .elgravo-section-link { display: none; }
.elgravo-price-list [hidden] { display: none !important; }

/* Reviews read as a calm wall of quotes everywhere, not a rigid grid. */
.elgravo-reviews { display: block; columns: 3 290px; column-gap: 20px; }
.elgravo-reviews > .elgravo-review { break-inside: avoid; margin: 0 0 20px; }
.elgravo-record .elgravo-reviews { columns: 2 260px; }
.eg-information-page .elgravo-reviews { margin-top: 8px; }

@media (max-width: 1000px) {
  .elgravo-topic-grid .wp-block-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .elgravo-topic-grid .wp-block-columns { grid-template-columns: 1fr; }
  .eg-price-tools { grid-template-columns: 1fr; }
  .eg-price-toggle { min-height: 48px; justify-self: start; }
  .eg-price-filter { min-height: 56px; }
}

/* Physician portraits remain distinct from the round author avatar. */
.elgravo-review { position: relative; }
.elgravo-review:has(.eg-review-physicians) .elgravo-review-body { margin-bottom: 68px; }
.elgravo-review:has(.eg-review-physicians) > :is(h3, h2, .elgravo-review-source, .elgravo-review-more) { margin-right: 80px; }
.eg-review-physicians { position: absolute; right: 16px; bottom: -8px; display: flex; gap: 6px; z-index: 2; }
.eg-review-physician { display: block; width: 76px; text-decoration: none; }
.eg-review-physician img { display: block; width: 76px; height: 95px; object-fit: cover; object-position: top; border: 3px solid var(--eg-paper, white); border-radius: 12px; box-shadow: 0 4px 12px #2d2a471a; }
.elgravo-review:has(.eg-review-physician:nth-child(2)) { padding-bottom: 123px; }

/* Atomic column items keep positioned portraits inside their own review. */
.elgravo-reviews > .elgravo-review, .eg-reviews-page .elgravo-archive > .elgravo-review { display: inline-grid; width: 100%; vertical-align: top; }
/* Doctor records need explicit tracks: atomic cards must not stack in one column. */
.eg-doctor-record .elgravo-reviews { display: grid; columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.eg-doctor-record .elgravo-reviews > .elgravo-review { display: grid; width: auto; margin: 0; }
@media (max-width: 600px) { .eg-doctor-record .elgravo-reviews { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .home-main .eg-home-reviews .elgravo-review { display: grid; } }
