/* ==========================================================================
 AIclinics Components CSS - deferred (non-blocking)
 Post cards, single pages, doctors, services, footer, widgets, etc.
 ========================================================================== */

/* --- Inter font (deferred  only used in non-critical contexts) --- */
@font-face {
 font-family: 'Inter';
 src: url('../fonts/inter-cyrillic-ext.woff2') format('woff2');
 font-weight: 400 600;
 font-style: normal;
 font-display: swap;
 unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
 font-family: 'Inter';
 src: url('../fonts/inter-cyrillic.woff2') format('woff2');
 font-weight: 400 600;
 font-style: normal;
 font-display: swap;
 unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
 font-family: 'Inter';
 src: url('../fonts/inter-latin.woff2') format('woff2');
 font-weight: 400 600;
 font-style: normal;
 font-display: swap;
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
 GLOBAL LINK STYLES
 ========================================================================== */
a {
 text-decoration: none;
 transition: color .2s ease, opacity .2s ease;
}

/* Content links - primary color, subtle underline on hover */
.entry-content a,
.faq-answer a,
.sale-disclaimer a,
.notice-text a {
 color: var(--primary-color);
 text-decoration: none;
 border-bottom: 1px solid transparent;
 transition: color .2s ease, border-color .2s ease;
}

.entry-content a:hover,
.faq-answer a:hover,
.sale-disclaimer a:hover,
.notice-text a:hover {
 color: var(--primary-hover);
 border-bottom-color: var(--primary-hover);
}

/* Don't underline buttons, images, cards */
.entry-content a.wp-block-button__link,
.entry-content a.btn-primary,
.entry-content a.btn-secondary,
.entry-content a.btn-ghost,
.entry-content a[class*="card"],
.entry-content a img {
 border-bottom: none;
}

/* ==========================================================================
 GLOBAL TYPOGRAPHY REFINEMENT
 ========================================================================== */
h1, h2, h3, h4, h5, h6 {
 letter-spacing: -0.02em;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
}

h1 { line-height: 1.15; }
h2 { line-height: 1.2; }
h3, h4, h5, h6 { line-height: 1.3; }

body {
 letter-spacing: 0.01em;
 text-rendering: optimizeLegibility;
}

/* ==========================================================================
 GLOBAL TRANSITIONS & FOCUS STATES
 ========================================================================== */
*:focus-visible {
 outline: 2px solid var(--primary-color);
 outline-offset: 2px;
 border-radius: 4px;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
 outline: 2px solid var(--primary-color);
 outline-offset: 0;
}

/* ==========================================================================
 SCROLL ANIMATION (fade-in-up on scroll)
 ========================================================================== */
.aic-animate {
 opacity: 0;
 transform: translateY(20px);
 transition: opacity .6s cubic-bezier(.25,.46,.45,.94), transform .6s cubic-bezier(.25,.46,.45,.94);
}

.aic-animate.aic-visible {
 opacity: 1;
 transform: translateY(0);
}

/* Staggered children */
.aic-animate-children > * {
 opacity: 0;
 transform: translateY(16px);
 transition: opacity .5s cubic-bezier(.25,.46,.45,.94), transform .5s cubic-bezier(.25,.46,.45,.94);
}

.aic-animate-children.aic-visible > *:nth-child(1) { transition-delay: 0s; }
.aic-animate-children.aic-visible > *:nth-child(2) { transition-delay: .06s; }
.aic-animate-children.aic-visible > *:nth-child(3) { transition-delay: .12s; }
.aic-animate-children.aic-visible > *:nth-child(4) { transition-delay: .18s; }
.aic-animate-children.aic-visible > *:nth-child(5) { transition-delay: .24s; }
.aic-animate-children.aic-visible > *:nth-child(6) { transition-delay: .3s; }

.aic-animate-children.aic-visible > * {
 opacity: 1;
 transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
 .aic-animate,
 .aic-animate-children > * {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
 }
}

/* ==========================================================================
 POSTS GRID & CARDS
 ========================================================================== */
.posts-grid {
 display: grid;
 gap: 24px;
 grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

/* Masonry variant (CSS columns) */
.posts-grid--masonry {
 display: block;
 columns: 3 320px;
 column-gap: 24px;
}

.posts-grid--masonry .post-card {
 break-inside: avoid;
 margin-bottom: 24px;
 animation: fadeInUp .4s ease both;
}

@keyframes fadeInUp {
 from { opacity: 0; transform: translateY(16px); }
 to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 991px) {
 .posts-grid--masonry { columns: 2 280px; }
}

@media (max-width: 599px) {
 .posts-grid--masonry { columns: 1; }
}

.post-card {
 background: #fff;
 border: 1px solid #eef1f4;
 border-radius: 12px;
 overflow: hidden;
 box-shadow: var(--shadow);
 transition: box-shadow .25s, transform .25s;
}

.post-card:hover {
 box-shadow: var(--shadow-hover);
 transform: translateY(-2px);
}

.post-card__media {
 aspect-ratio: 16 / 9;
 background: var(--bg-alt);
 overflow: hidden;
}

.post-card__img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 transition: transform .3s;
}

.post-card:hover .post-card__img {
 transform: scale(1.04);
}

.post-card__body {
 padding: 16px;
}

.post-card__title {
 font-size: 16px;
 font-weight: 700;
 margin: 0 0 8px;
 line-height: 1.35;
 color: var(--text);
 display: -webkit-box;
 -webkit-line-clamp: 3;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

.post-card__title a {
 color: inherit;
 transition: color .2s;
}

.post-card__title a:hover {
 color: var(--primary-color);
}

.post-card__excerpt {
 color: var(--text-light);
 font-size: 14px;
 line-height: 1.5;
 display: -webkit-box;
 -webkit-line-clamp: 3;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

.post-card__link {
 display: block;
 color: inherit;
 text-decoration: none;
 height: 100%;
}

.post-card__img--placeholder {
 width: 100%;
 height: 100%;
 background: linear-gradient(135deg, #f2f2f2, #e9ecef);
}

.post-card__date {
 font-size: 13px;
 color: var(--text-light);
 margin-bottom: 6px;
}

.post-card__meta {
 display: flex;
 align-items: center;
 gap: 12px;
 margin-top: 12px;
 font-size: 13px;
 color: var(--text-light);
}

/* ==========================================================================
 LINKED POSTS & LATEST POSTS (4-column grids)
 ========================================================================== */
.linked-posts {
 margin: 24px 0;
}

.latest-posts {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
 gap: 24px;
}

/* ==========================================================================
 SINGLE PAGE LAYOUT
 ========================================================================== */
.entry-header {
 margin-bottom: 2.5em;
}

.entry-header h1 {
 font-size: clamp(28px, 4vw, 48px);
 font-weight: 900;
 line-height: 1.1;
 letter-spacing: -0.03em;
 color: var(--text-black, #1A1A1A);
 margin: 0 0 12px;
}

.entry-content {
 line-height: 1.7;
 font-size: 16px;
 color: var(--text);
 letter-spacing: 0.01em;
}

.entry-content h2 {
 font-size: clamp(24px, 3vw, 36px);
 font-weight: 800;
 margin: 32px 0 12px;
 color: var(--text-black, #1A1A1A);
 line-height: 1.2;
 letter-spacing: -0.02em;
}

.entry-content h3 {
 font-size: clamp(20px, 2.5vw, 28px);
 font-weight: 700;
 margin: 24px 0 10px;
 color: var(--text-black, #1A1A1A);
 line-height: 1.3;
 letter-spacing: -0.02em;
}

.entry-content h4 {
 font-size: clamp(18px, 2vw, 22px);
 font-weight: 700;
 margin: 20px 0 8px;
 color: var(--text-dark, #3A3A3A);
 line-height: 1.3;
 letter-spacing: -0.01em;
}

.entry-content p {
 margin: 0 0 16px;
}

.entry-content ul,
.entry-content ol {
 margin: 0 0 16px;
 padding-left: 24px;
}

.entry-content li {
 margin-bottom: 6px;
}

.entry-content img {
 border-radius: var(--radius);
 margin: 16px 0;
}

.entry-content a {
 color: var(--primary-color);
 text-decoration: none;
 border-bottom: 1px solid transparent;
 transition: color .2s ease, border-color .2s ease;
}

.entry-content a:hover {
 color: var(--primary-hover);
 border-bottom-color: var(--primary-hover);
}

.entry-content blockquote {
 margin: 24px 0;
 padding: 16px 24px;
 border-left: 4px solid var(--accent);
 background: var(--bg-alt);
 border-radius: 0 var(--radius) var(--radius) 0;
 font-style: italic;
 color: var(--text-light);
}

.entry-content table {
 width: 100%;
 border-collapse: collapse;
 margin: 16px 0;
}

.entry-content th,
.entry-content td {
 padding: 10px 14px;
 border: 1px solid var(--border);
 text-align: left;
 font-size: 14px;
}

.entry-content th {
 background: var(--bg-alt);
 font-weight: 700;
}

/* ==========================================================================
 SERVICE GRID & CARDS ([show_services], [show_services_new])
 ========================================================================== */
.services-grid {
 display: grid;
 gap: 28px;
 margin: 24px 0;
}

.services-grid--cols-3 {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}

.services-grid--cols-2 {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

.services-grid--cols-1 {
 grid-template-columns: 1fr;
}

@media (max-width: 992px) {
 .services-grid--cols-3 {
  grid-template-columns: repeat(2, 1fr);
 }
 .services-grid--cols-2 {
  grid-template-columns: 1fr;
 }
}

@media (max-width: 599px) {
 .services-grid--cols-3 {
  grid-template-columns: 1fr;
 }
}

/* Service Item (card) */
.service-item {
 background: #fff;
 border-radius: 14px;
 border: 1px solid #e9edf2;
 padding: 24px 26px;
 transition: box-shadow .2s, transform .2s, border-color .2s;
 overflow: hidden;
}

.service-item:hover {
 transform: translateY(-2px);
 border-color: var(--primary-color);
 box-shadow: var(--shadow-hover);
}

.service-item__link {
 text-decoration: none;
 color: inherit;
 display: block;
}

/* Service item with image (show_services) */
.service-item__media {
 aspect-ratio: 16 / 10;
 background: var(--bg-alt);
 overflow: hidden;
 border-radius: 6px;
 margin: -24px -24px 16px;
}

.service-item__img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
 transition: transform .3s;
}

.service-item:hover .service-item__img {
 transform: scale(1.04);
}

.service-item__img--placeholder {
 width: 100%;
 height: 100%;
 background: linear-gradient(135deg, #E8F8F2, #d8efe6);
}

.service-item__body {
 padding: 0;
}

/* Service item with icon (show_services_new) */
.service-item__head {
 display: grid;
 grid-template-columns: 96px 1fr;
 gap: 18px;
 align-items: center;
}

@media (max-width: 576px) {
 .service-item__head {
  grid-template-columns: 72px 1fr;
 }
}

.service-item__icon {
 width: 96px;
 height: 96px;
 border-radius: 12px;
 background: var(--teal-light, #E8F8F2);
 display: flex;
 align-items: center;
 justify-content: center;
 overflow: hidden;
 flex-shrink: 0;
}

.service-item__icon-img {
 max-width: 80%;
 max-height: 80%;
 width: auto;
 height: auto;
 display: block;
}

.service-item__icon svg {
 width: 80%;
 height: 80%;
 display: block;
}

.service-item__icon-placeholder {
 display: block;
 width: 56px;
 height: 56px;
 border-radius: 10px;
 background: #d8efe6;
}

.service-item__title {
 margin: 0;
 font-size: 32px;
 line-height: 1.3;
 font-weight: 700;
 color: #2b2f32;
 text-align: right;
}

/* Service children (sub-services inline) */
.service-item__children {
 margin: 14px 0 0;
 padding: 0;
 list-style: none;
}

.service-item__children--inline {
 display: flex;
 flex-wrap: wrap;
 gap: 6px 10px;
}

.service-item__child {
 display: inline;
 white-space: normal;
}

.service-item__child:not(:first-child)::before {
 content: "\2014";
 margin: 0 6px 0 2px;
 color: var(--text-light);
}

.service-item__child a {
 color: #334155;
 text-decoration: none;
 font-size: 14px;
 transition: color .2s;
}

.service-item__child a:hover {
 color: #0aa674;
 text-decoration: underline;
}

/* ==========================================================================
 SERVICE DETAIL (single-service)
 ========================================================================== */
.service-detail-img-wrap {
 display: flex;
 gap: 40px;
 margin-bottom: 32px;
 align-items: flex-start;
}

.service-detail-img-wrap img {
 border-radius: var(--radius);
 max-width: 400px;
 flex-shrink: 0;
}

.service-detail-img-wrap .service-detail-text {
 flex: 1;
}

.service-wrapp {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
 gap: 24px;
 margin: 24px 0;
}

.services .service-wrapp,
.single-service .service-wrapp {
 border: solid 1px #8080803b;
 border-radius: 10px 0;
}

.service-text {
 margin-bottom: 15px;
}

.service-text__child:not(:first-child)::before {
 content: '-';
 margin: 0 5px;
}

.service-prices {
 margin: 32px 0;
}

.prices-service {
 font-size: 24px;
 font-weight: 700;
 margin: 0 0 16px;
}

.service-sales {
 margin: 32px 0;
}

.service-faqs {
 margin: 32px 0;
}

.service-doctors {
 margin: 32px 0;
}

@media (max-width: 767px) {
 .service-detail-img-wrap {
  flex-direction: column;
  gap: 20px;
 }

 .service-detail-img-wrap img {
  max-width: 100%;
 }
}

/* ==========================================================================
 DOCTOR CARDS
 ========================================================================== */
.doctor-card {
 background: #fff;
 border: 1px solid #eef1f4;
 border-radius: 12px;
 overflow: hidden;
 box-shadow: var(--shadow);
 transition: box-shadow .25s, transform .25s;
}

.doctor-card:hover {
 box-shadow: var(--shadow-hover);
 transform: translateY(-2px);
}

.doctor-card__link {
 display: block;
 color: inherit;
 text-decoration: none;
 height: 100%;
}

.doctor-card__media {
 height: 260px;
 background: #eaeef2;
 overflow: hidden;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 8px 8px 0;
}

.doctor-card__media img,
.doctor-card__img {
 width: 100%;
 height: 100%;
 object-fit: contain;
 display: block;
 transition: transform .3s;
}

.doctor-card:hover .doctor-card__img {
 transform: scale(1.04);
}

.doctor-card__img--placeholder {
 width: 100%;
 height: 100%;
 background: linear-gradient(135deg, #E8F8F2, #d8efe6);
}

.doctor-card__body {
 padding: 16px;
}

.doctor-card__body h3,
.doctor-card__title {
 font-size: 18px;
 font-weight: 700;
 margin: 0 0 4px;
 color: #111;
 line-height: 1.3;
}

.doctor-card__position {
 font-size: 15px;
 color: #00b377;
 font-weight: 600;
 margin-bottom: 2px;
}

.doctor-card__desc {
 font-size: 13px;
 color: var(--text-light);
 line-height: 1.4;
}

.doctor-card__body p {
 font-size: 14px;
 color: var(--text-light);
 margin: 0;
}

/* --- Doctors Grid (4 columns, matching astra-child) --- */
.doctors-grid {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 24px;
 margin: 16px 0;
}

@media (max-width: 1200px) {
 .doctors-grid {
  grid-template-columns: repeat(3, 1fr);
 }
}

@media (max-width: 992px) {
 .doctors-grid {
  grid-template-columns: repeat(2, 1fr);
 }
}

/* --- Doctor Card Mini --- */
.doctor-card-mini {
 text-align: center;
}

.doctor-card-mini a {
 display: block;
 transition: opacity .2s;
}

.doctor-card-mini a:hover {
 opacity: .85;
}

.doctor-card-mini__img {
 width: 120px;
 height: 120px;
 border-radius: 50%;
 object-fit: cover;
 margin: 0 auto 12px;
}

.doctor-card-mini__name {
 font-size: 15px;
 font-weight: 700;
 margin: 0 0 4px;
 color: var(--text);
}

.doctor-card-mini__pos {
 font-size: 13px;
 color: var(--text-light);
}

/* ==========================================================================
 TREATMENT LINKED (render-linked-posts.php)
 ========================================================================== */
.tr-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
 gap: 20px;
 margin: 20px 0;
}

.tr-item {
 display: flex;
 align-items: center;
 gap: 14px;
 padding: 14px;
 background: var(--bg);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
 transition: box-shadow .25s ease, transform .25s ease;
}

.tr-item:hover {
 box-shadow: var(--shadow-hover);
 transform: translateY(-2px);
}

.tr-avatar {
 width: 56px;
 height: 56px;
 border-radius: 50%;
 object-fit: cover;
 flex-shrink: 0;
}

.tr-postcard {
 display: flex;
 flex-direction: column;
 gap: 2px;
}

.tr-postcard a {
 font-weight: 600;
 font-size: 15px;
 color: var(--text);
 transition: color .2s;
}

.tr-postcard a:hover {
 color: var(--primary-color);
}

.tr-postcard span {
 font-size: 13px;
 color: var(--text-light);
}

/* --- Treatment Index (treatment-search.php) --- */
.tr-index {
 margin: 24px 0;
}

.tr-index .search-form {
 margin-bottom: 20px;
}

/* ==========================================================================
 SALE TEASERS
 ========================================================================== */
/* Sale sections (grouped by category on archive) */
.sale-section {
 margin-bottom: 40px;
}

.sale-section__title {
 font-size: clamp(20px, 2.5vw, 26px);
 font-weight: 800;
 color: #0f141a;
 margin: 0 0 14px;
 position: relative;
 padding-left: 12px;
}

.sale-section__title::before {
 content: "";
 position: absolute;
 left: 0;
 top: .25em;
 width: 4px;
 height: 1em;
 background: #ffd400;
 border-radius: 2px;
}

.sale-teasers {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 24px;
 margin: 24px 0;
}

@media (max-width: 1200px) {
 .sale-teasers {
  grid-template-columns: repeat(3, 1fr);
 }
}

@media (max-width: 992px) {
 .sale-teasers {
  grid-template-columns: repeat(2, 1fr);
 }
}

.sale-card {
 position: relative;
 background: #fff;
 border-radius: 12px;
 overflow: hidden;
 box-shadow: var(--shadow);
 transition: box-shadow .25s, transform .25s;
 display: flex;
 flex-direction: column;
}

.sale-card:hover {
 box-shadow: var(--shadow-hover);
 transform: translateY(-2px);
}

.sale-card__link {
 display: flex;
 flex-direction: column;
 color: inherit;
 text-decoration: none;
 height: 100%;
}

.sale-card__media {
 position: relative;
 aspect-ratio: 16 / 10;
 overflow: hidden;
 border-radius: 12px 12px 0 0;
 flex-shrink: 0;
}

.sale-card__media img,
.sale-card__img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}

.sale-card__img--placeholder {
 width: 100%;
 height: 100%;
 background: linear-gradient(135deg, #f2f2f2, #e9ecef);
}

.sale-card__body {
 padding: 14px 16px 18px;
 flex: 1;
 display: flex;
 flex-direction: column;
}

.sale-card__title {
 font-size: 16px;
 font-weight: 700;
 margin: 0 0 6px;
 line-height: 1.35;
 color: #111;
 display: -webkit-box;
 -webkit-line-clamp: 3;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

.sale-card__title a {
 color: inherit;
 transition: color .2s;
}

.sale-card__title a:hover {
 color: var(--primary-color);
}

.sale-card__excerpt {
 font-size: 14px;
 color: var(--text-light);
 line-height: 1.5;
 display: -webkit-box;
 -webkit-line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

/* Sale navigation (anchor buttons) */
.sale-nav {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 margin: 16px 0 24px;
}

.sale-nav__btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 10px 20px;
 border-radius: 9999px;
 font-weight: 700;
 font-size: 15px;
 line-height: 1;
 text-decoration: none;
 border: 2px solid var(--primary-color, #09CA8F);
 color: var(--primary-color, #09CA8F);
 background: #fff;
 transition: background .15s, color .15s, border-color .15s;
}

.sale-nav__btn:hover {
 background: var(--primary-color, #09CA8F);
 color: #fff;
 border-color: var(--primary-color, #09CA8F);
}

/* Sale grid (4→3→2→1 cols) */
.sale-grid {
 display: grid;
 gap: 24px;
 grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 1200px) { .sale-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 992px) { .sale-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 576px) { .sale-grid { grid-template-columns: 1fr; gap: 16px; } }

@media (max-width: 600px) {
 .sale-nav {
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
 }
 .sale-nav__btn { font-size: 14px; padding: 9px 16px; white-space: nowrap; }
}

/* Sale badges */
.sale-badge {
 position: absolute;
 display: inline-flex;
 align-items: center;
 padding: 6px 12px;
 font-size: 13px;
 font-weight: 700;
 border-radius: 8px;
 z-index: 2;
 line-height: 1.3;
 box-shadow: 0 1px 4px rgba(0,0,0,.1);
}

/* Жовтий бейдж (benefit: акція, чекап, комплекс) */
.sale-badge--benefit {
 left: 12px;
 top: 12px;
 background: #ffd400;
 color: #111;
}

/* Червоний бейдж (таймер / ціна / завершено) */
.sale-badge--timer,
.sale-badge--price {
 right: 12px;
 bottom: 12px;
 left: auto !important;
 top: auto !important;
 height: auto;
 background: #df3535;
 color: #fff;
 opacity: .96;
}

.sale-badge--ended {
 right: 12px;
 bottom: 12px;
 left: auto !important;
 top: auto !important;
 height: auto;
 background: #e74c3c;
 color: #fff;
}

/* Sale single: img-wrap for overlaying badges */
.sale-single__img-wrap {
 position: relative;
 border-radius: 14px;
 overflow: hidden;
}

.sale-single__img {
 width: 100%;
 height: auto;
 display: block;
}

/* Sale single status */
.sale-single__status--expired {
 display: inline-block;
 background: #e74c3c;
 color: #fff;
 padding: 8px 16px;
 border-radius: 8px;
 font-weight: 700;
 font-size: 14px;
 margin-bottom: 16px;
}

/* Sale single: price value highlight */
.sale-meta__value--price {
 color: #df3535;
 font-size: 18px;
 font-weight: 800;
}

/* Sale disclaimer */
.sale-disclaimer {
 margin-top: 24px;
 padding: 14px 18px;
 border-radius: 10px;
 background: #fff8e5;
 border: 1px solid #f5d27a;
 color: #5b4a20;
 font-size: 14px;
 line-height: 1.5;
}

.sale-disclaimer strong {
 display: block;
 margin-bottom: 6px;
 color: #c97a00;
 font-weight: 700;
}

.sale-disclaimer p {
 margin: 0;
}

/* ==========================================================================
 PRICE ACCORDION (details/summary, NO display:none)
 ========================================================================== */
.price-accordion {
 margin: 16px 0;
}

.price-accordion details {
 border: 1px solid var(--border);
 border-radius: var(--radius);
 margin-bottom: 8px;
 overflow: hidden;
}

.price-accordion summary {
 display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 14px 18px;
 font-size: 16px;
 font-weight: 600;
 cursor: pointer;
 background: var(--bg-alt);
 transition: background .2s;
 list-style: none;
}

.price-accordion summary::-webkit-details-marker {
 display: none;
}

.price-accordion summary::after {
 content: '+';
 font-size: 20px;
 font-weight: 400;
 color: var(--text-light);
 transition: transform .25s;
 flex-shrink: 0;
 margin-left: 12px;
}

.price-accordion details[open] > summary::after {
 content: '\2212';
}

.price-accordion summary:hover {
 background: var(--border);
}

.price-accordion .price-body {
 padding: 0 18px;
 max-height: 0;
 overflow: hidden;
 transition: max-height .35s ease, padding .35s ease;
}

.price-accordion details[open] > .price-body {
 max-height: 2000px;
 padding: 14px 18px;
}

.price-accordion .price-row {
 display: flex;
 justify-content: space-between;
 align-items: baseline;
 padding: 8px 0;
 border-bottom: 1px dashed var(--border);
 font-size: 14px;
}

.price-accordion .price-row:last-child {
 border-bottom: none;
}

.price-accordion .price-name {
 flex: 1;
 margin-right: 12px;
}

.price-accordion .price-value {
 font-weight: 700;
 white-space: nowrap;
 color: var(--primary-dark);
}

/* ==========================================================================
 FAQ
 ========================================================================== */
.faq-list {
 margin: 16px 0;
}

.faq-item {
 border: 1px solid var(--border);
 border-radius: var(--radius);
 margin-bottom: 8px;
 overflow: hidden;
}

.faq-question {
 display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 14px 18px;
 font-size: 16px;
 font-weight: 600;
 cursor: pointer;
 background: var(--bg);
 transition: background .2s;
 list-style: none;
}

.faq-question::-webkit-details-marker {
 display: none;
}

.faq-question::after {
 content: '+';
 font-size: 20px;
 font-weight: 400;
 color: var(--text-light);
 flex-shrink: 0;
 margin-left: 12px;
 transition: transform .25s;
}

.faq-item[open] > .faq-question::after {
 content: '\2212';
}

.faq-question:hover {
 background: var(--bg-alt);
}

.faq-answer {
 padding: 0 18px;
 max-height: 0;
 overflow: hidden;
 transition: max-height .35s ease, padding .35s ease;
 font-size: 15px;
 line-height: 1.65;
 color: var(--text-light);
}

.faq-item[open] > .faq-answer {
 max-height: 2000px;
 padding: 4px 18px 18px;
}

/* ==========================================================================
 MASONRY GRID (CSS columns)
 ========================================================================== */
.masonry-grid {
 columns: 3 300px;
 column-gap: 24px;
 margin: 24px 0;
}

.masonry-grid > * {
 break-inside: avoid;
 margin-bottom: 24px;
}

@media (max-width: 767px) {
 .masonry-grid {
  columns: 2 200px;
 }
}

@media (max-width: 499px) {
 .masonry-grid {
  columns: 1;
 }
}

/* ==========================================================================
 TABLE OF CONTENTS (TOC)
 ========================================================================== */
.post-toc-wrap {
 margin: 24px 0;
}

.toc {
 background: var(--bg-alt);
 border: 1px solid var(--border);
 border-radius: var(--radius);
 padding: 20px 24px;
}

.toc__title {
 font-size: 18px;
 font-weight: 700;
 margin: 0 0 12px;
 color: var(--text);
}

.toc__list {
 list-style: none;
 margin: 0;
 padding: 0;
 counter-reset: toc;
}

.toc__item {
 counter-increment: toc;
 margin-bottom: 6px;
}

.toc__item a {
 display: inline-flex;
 align-items: baseline;
 gap: 8px;
 font-size: 15px;
 color: var(--primary-color);
 transition: color .2s;
}

.toc__item a::before {
 content: counter(toc) '.';
 font-weight: 700;
 color: var(--text-light);
 font-size: 13px;
 min-width: 20px;
}

.toc__item a:hover {
 color: var(--primary-hover);
}

.toc__sublist {
 list-style: none;
 margin: 4px 0 0 28px;
 padding: 0;
 counter-reset: toc-sub;
}

.toc__sublist .toc__item {
 counter-increment: toc-sub;
}

.toc__sublist .toc__item a::before {
 content: counter(toc) '.' counter(toc-sub);
}

/* TOC active item highlight (scroll spy) */
.toc__item--active > a {
 color: var(--primary-hover) !important;
 font-weight: 700;
}

/* ==========================================================================
 SINGLE POST LAYOUT (2-column: content + sticky TOC sidebar)
 ========================================================================== */
.single-layout {
 display: grid;
 grid-template-columns: 1fr 280px;
 gap: 40px;
 align-items: start;
}

.toc-sidebar {
 position: sticky;
 top: 20px;
}

.toc-sidebar .post-toc-wrap {
 margin: 0;
}

@media (max-width: 991px) {
 .single-layout {
  grid-template-columns: 1fr;
 }
 .toc-sidebar {
  display: none;
 }
 /* Mobile TOC: details/summary accordion */
 .post-toc-wrap {
  margin-bottom: 20px;
 }
 .post-toc-wrap .toc {
  border-radius: 10px;
 }
 .toc__title {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  user-select: none;
 }
 .toc__title::-webkit-details-marker {
  display: none;
 }
 .toc__title::after {
  content: '';
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--text-light);
  border-bottom: 2px solid var(--text-light);
  transform: rotate(45deg);
  transition: transform .3s;
  flex-shrink: 0;
 }
 .toc[open] > .toc__title::after {
  transform: rotate(-135deg);
 }
 .toc__list {
  margin-top: 12px;
 }
 .toc__item a {
  font-size: 14px;
 }
}

/* Entry thumbnail for single posts */
.entry-thumbnail {
 margin-bottom: 24px;
 border-radius: var(--radius);
 overflow: hidden;
}

.entry-thumbnail img {
 width: 100%;
 height: auto;
 display: block;
}

/* Entry footer (tags) */
.entry-footer {
 margin-top: 32px;
 padding-top: 20px;
 border-top: 1px solid var(--border);
}

.entry-tags {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
}

.tag-link {
 display: inline-block;
 padding: 4px 12px;
 background: var(--bg-alt);
 border: 1px solid var(--border);
 border-radius: 20px;
 font-size: 13px;
 color: var(--text);
 transition: border-color .2s, color .2s;
}

.tag-link:hover {
 border-color: var(--primary-color);
 color: var(--primary-color);
}

/* ==========================================================================
 NOTICE / NOTIFICATION (red default + blue variant)
 ========================================================================== */
.notice-wrapp {
 text-align: center;
}

.notice-container {
 background: #ff3e3e08;
 padding: 20px 10px;
 border: solid 1px #FF3E3E;
 border-radius: 10px 0;
 margin: 20px 0;
}

.notice-title {
 font-size: 1.3em;
 font-weight: 700;
 color: #FF3E3E;
 margin: 0 0 8px;
}

.notice-text {
 margin-top: 20px;
 font-size: 1.1em;
 color: #FF3E3E;
 line-height: 1.6;
}

.notice-text p:last-child {
 margin-bottom: 0;
}

.notice-btn {
 margin-top: 20px;
}

/* Blue notice variant */
.notice-container.blue {
 background: #03a9f412;
 border: solid 1px var(--primary-color);
}

.notice-container.blue .notice-title {
 color: var(--text);
}

.notice-container.blue .notice-text {
 text-align: left;
 max-width: 750px;
 margin: 2em auto 0;
 color: var(--text);
}

/* Red button variant */
.btn-more.red {
 color: #FF3E3E;
 border: solid #FF3E3E 1px;
 background: transparent;
 padding: 8px 20px;
 border-radius: var(--radius);
 cursor: pointer;
 transition: background .2s, color .2s;
}

.btn-more.red:hover {
 background: #FF3E3E;
 color: #fff;
}

/* ==========================================================================
 FOOTER
 ========================================================================== */
.site-footer {
 padding: 0;
 margin: 0;
}

.footer-widgets {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 32px;
 padding-bottom: 32px;
}

.footer-col {
 position: relative;
}

.divider-item {
 width: 40px;
 height: 3px;
 background: var(--accent);
 border-radius: 2px;
 margin-bottom: 16px;
}

.footer-col .widget-title {
 color: #fff;
 font-size: 16px;
 font-weight: 700;
 margin-bottom: 16px;
}

.footer-col a {
 color: #c8cfd6;
 transition: color .2s;
}

.footer-col a:hover {
 color: var(--accent);
}

.footer-col ul {
 list-style: none;
 padding: 0;
 margin: 0;
}

.footer-col li {
 margin-bottom: 8px;
 font-size: 14px;
}

.footer-video {
 margin: 24px 0;
 border-radius: var(--radius);
 overflow: hidden;
}

.footer-video iframe {
 width: 100%;
 aspect-ratio: 16 / 9;
 border: none;
}

.footer-bottom {
 display: flex;
 align-items: center;
 justify-content: space-between;
 flex-wrap: wrap;
 gap: 16px;
 padding: 20px 0;
 border-top: 1px solid rgba(255,255,255,.1);
 font-size: 13px;
}

.footer-copy {
 color: #666a72;
}

.footer-menu {
 list-style: none;
 display: flex;
 gap: 16px;
 margin: 0;
 padding: 0;
}

.footer-menu a {
 color: #c8cfd6;
 font-size: 13px;
 transition: color .2s;
}

.footer-menu a:hover {
 color: var(--accent);
}

.footer-socials {
 display: flex;
 align-items: center;
 gap: 12px;
}

.footer-socials a {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 36px;
 height: 36px;
 border-radius: 50%;
 background: rgba(255,255,255,.08);
 color: #c8cfd6;
 transition: background .2s, color .2s;
}

.footer-socials a:hover {
 background: var(--accent);
 color: #fff;
}

@media (max-width: 991px) {
 .footer-widgets {
  grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 599px) {
 .footer-widgets {
  grid-template-columns: 1fr;
  gap: 24px;
 }

 .footer-bottom {
  flex-direction: column;
  text-align: center;
 }
}

/* ==========================================================================
 MIPS FOOTER (moved from footer.php inline styles)
 ========================================================================== */
/* Kill any dark background from Astra legacy or Customizer inline CSS */
html, body, #page, .site, .site-content, .ast-separate-container { background: #fff !important; }

.mips-footer {
 --accent: var(--primary-color, #00b377);
 --ft-text: #111827;
 --ft-muted: #6b7280;
 --ft-border: #e5e7eb;
 --ft-bg: #f7fbfc;
 --ft-bg-bottom: #fff;
}

.mips-footer .footer-top {
 background: var(--ft-bg);
 border-top: 4px solid var(--accent);
}

.mips-footer .container {
 max-width: 1344px;
 margin: 0 auto;
 padding: 28px 16px;
}

.mips-footer .footer-grid {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 32px;
}

@media (max-width: 1024px) {
 .mips-footer .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
 .mips-footer .footer-grid { grid-template-columns: 1fr; }
}

.mips-footer .f-col h3 {
 font-size: 15px;
 font-weight: 700;
 margin: 0 0 12px;
 color: var(--ft-text);
 letter-spacing: -0.01em;
}

.mips-footer .brand svg {
 height: 50px;
 width: auto;
 display: block;
 margin-bottom: 8px;
}

.mips-footer .tagline {
 color: var(--ft-muted);
 margin: 20px 0;
 line-height: 1.5;
 font-size: 14px;
}

.mips-footer .btn-cta {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 10px 20px;
 border-radius: 8px;
 background: var(--accent);
 color: #fff;
 text-decoration: none;
 font-weight: 600;
 font-size: 14px;
 box-shadow: 0 2px 8px rgba(9,202,143,.2);
 transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.mips-footer .btn-cta:hover {
 background: var(--primary-hover, #08AB79);
 box-shadow: 0 4px 12px rgba(9,202,143,.3);
 transform: scale(1.02);
}

.mips-footer .btn-cta:active {
 transform: scale(.98);
}

.mips-footer .footer-route-link {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 28px;
 height: 28px;
 border-radius: 50%;
 background: var(--accent);
 color: #fff;
 margin-left: 6px;
 vertical-align: middle;
 transition: opacity .2s ease, transform .2s ease;
}

.mips-footer .footer-route-link:hover {
 opacity: .85;
 transform: scale(1.05);
}

.mips-footer .footer-route-link svg {
 stroke: #fff;
 width: 14px;
 height: 14px;
}

.mips-footer .footer-schedule {
 color: var(--ft-muted);
 font-size: 14px;
}

.mips-footer .hotline {
 margin-top: 12px;
}

.mips-footer .hotline a {
 font-weight: 700;
 color: var(--ft-text);
 text-decoration: none;
 transition: color .2s ease;
}

.mips-footer .hotline a:hover {
 color: var(--accent);
}

.mips-footer .hotline .hours {
 color: var(--ft-muted);
 font-size: 14px;
}

.mips-footer .links {
 list-style: none;
 padding: 0;
 margin: 0;
 display: flex;
 flex-direction: column;
 gap: 2px;
}

.mips-footer .links li {
 margin: 0;
 padding: 0;
}

.mips-footer .links a {
 position: relative;
 display: inline-flex;
 align-items: center;
 gap: 10px;
 padding: 6px 0 6px 14px;
 color: var(--ft-text);
 text-decoration: none;
 font-size: 14px;
 line-height: 1.45;
 letter-spacing: .1px;
 transition: color .2s ease, padding-left .2s ease;
}
.mips-footer .links a::before {
 content: "";
 position: absolute;
 left: 0;
 top: 50%;
 width: 4px;
 height: 4px;
 border-radius: 50%;
 background: var(--primary-color, #09CA8F);
 opacity: .35;
 transform: translateY(-50%) scale(.85);
 transition: opacity .2s ease, transform .2s ease, width .2s ease;
}
.mips-footer .links a:hover {
 color: var(--primary-color, #09CA8F);
 padding-left: 18px;
}
.mips-footer .links a:hover::before {
 opacity: 1;
 transform: translateY(-50%) scale(1);
 width: 8px;
 border-radius: 4px;
}

.mips-footer address {
 font-style: normal;
 color: var(--ft-text);
}

.mips-footer address a {
 color: var(--accent);
 text-decoration: none;
 transition: color .2s ease;
}

.mips-footer address a:hover {
 color: var(--primary-hover, #08AB79);
}

.mips-footer .social {
 display: flex;
 gap: 10px;
 list-style: none;
 padding: 0;
 margin: 12px 0 0;
}

.mips-footer .social a {
 display: inline-flex;
 width: 38px;
 height: 38px;
 border-radius: 50%;
 background: #fff;
 border: 1px solid var(--ft-border);
 align-items: center;
 justify-content: center;
 color: var(--accent);
 transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}

.mips-footer .social a:hover {
 background: rgba(9,202,143,.06);
 transform: translateY(-2px);
 box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

.mips-footer .footer-bottom {
 background: var(--ft-bg-bottom);
 border-top: 1px solid var(--ft-border);
}

.mips-footer .bottom-grid {
 display: grid;
 gap: 10px;
 text-align: center;
 padding: 8px 0;
}

.mips-footer .legal {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 6px;
 flex-wrap: wrap;
}

.mips-footer .legal a {
 color: var(--ft-muted);
 text-decoration: none;
 font-size: 13px;
 transition: color .2s ease;
}

.mips-footer .legal a:hover {
 color: var(--accent);
}

.mips-footer .legal-sep {
 color: var(--ft-border);
}

.mips-footer .disclaimer {
 color: var(--ft-muted);
 font-size: 13px;
 line-height: 1.6;
 max-width: 720px;
 margin: 0 auto;
 text-align: center;
}

.mips-footer .copy {
 color: var(--ft-muted);
 font-size: 14px;
}

.app-promo {
 background: #fff;
 border: 1px solid var(--ft-border, #e5e7eb);
 border-radius: 12px;
 padding: 24px;
 margin-top: 24px;
 box-shadow: 0 4px 12px rgba(0,0,0,.04);
 transition: transform .25s ease, box-shadow .25s ease;
}

.app-promo:hover {
 transform: translateY(-2px);
 box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

.app-promo h3 {
 font-size: 15px;
 font-weight: 700;
 color: var(--ft-text, #111827);
 margin: 0 0 16px !important;
}

.app-promo p {
 font-size: 13px;
 color: var(--ft-muted, #6b7280);
 margin: 0;
 line-height: 1.5;
}

.app-promo a {
 color: var(--primary-dark, #067A55);
 font-weight: 600;
 text-decoration: none;
 transition: color .2s ease;
}

.app-promo a:hover {
 color: #055c40;
}

.store-badges {
 display: flex;
 gap: 12px;
 margin-bottom: 16px;
}

.store-badges .store-badge {
 display: block;
 transition: transform .2s ease;
}

.store-badges .store-badge:hover {
 transform: translateY(-2px);
}

.store-badges img {
 height: 40px;
 width: auto;
 display: block;
 border: 1px solid #dae1e7;
 border-radius: 6px;
}

@media (max-width: 640px) {
 .store-badges { justify-content: center; }
 .store-badges img { height: 40px !important; }
}

/* ==========================================================================
 WIDGETS
 ========================================================================== */
.widget {
 margin-bottom: 24px;
}

.widget-title {
 font-size: 18px;
 font-weight: 700;
 margin: 0 0 12px;
 color: var(--text);
}

/* ==========================================================================
 SEARCH FORM (widget variant)
 ========================================================================== */
.widget .search-form {
 position: relative;
 display: flex;
}

.widget .search-form__input {
 width: 100%;
 padding: 10px 44px 10px 16px;
 border: 1px solid var(--border);
 border-radius: var(--radius);
 font-size: 14px;
 background: var(--bg-alt);
 color: var(--text);
}

/* ==========================================================================
 PAGINATION
 ========================================================================== */
.pagination {
 display: flex;
 justify-content: center;
 align-items: center;
 gap: 6px;
 margin: 32px 0;
 padding: 0;
 list-style: none;
}

.pagination .page-numbers {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 40px;
 height: 40px;
 padding: 0 10px;
 border-radius: var(--radius);
 font-size: 15px;
 font-weight: 600;
 color: var(--text);
 background: var(--bg-alt);
 transition: background .2s, color .2s;
}

.pagination .page-numbers:hover {
 background: var(--primary-color);
 color: #fff;
}

.pagination .page-numbers.current {
 background: var(--primary-color);
 color: #fff;
}

.pagination .page-numbers.dots {
 background: transparent;
 cursor: default;
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next {
 font-size: 13px;
}

/* ==========================================================================
 ARCHIVE PAGE
 ========================================================================== */
.archive-header {
 margin-bottom: 24px;
}

.archive-header h1,
.archive-title,
.page-title {
 font-size: 2rem;
 font-weight: 800;
 color: #3a3a3a;
 margin: 0 0 16px;
 line-height: 1.2;
}

.archive-description {
 color: var(--text-light);
 font-size: 15px;
 line-height: 1.6;
 max-width: 720px;
}

/* ==========================================================================
 BUTTON VARIANTS (Brandbook)
 ========================================================================== */
.btn-secondary {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 14px 36px;
 border-radius: 8px;
 color: var(--primary-color);
 background: transparent;
 border: 2px solid var(--primary-color);
 font-size: 14px;
 font-weight: 700;
 cursor: pointer;
 transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
 white-space: nowrap;
}

.btn-secondary:hover {
 background: var(--primary-color);
 color: #fff;
 transform: scale(1.02);
 box-shadow: 0 4px 12px rgba(9,202,143,.25);
}

.btn-ghost {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 14px 36px;
 border-radius: 8px;
 color: var(--text);
 background: transparent;
 border: 1px solid var(--border);
 font-size: 14px;
 font-weight: 700;
 cursor: pointer;
 transition: background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
 white-space: nowrap;
}

.btn-ghost:hover {
 background: var(--bg-alt);
 border-color: var(--text-light);
 transform: scale(1.02);
 box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

/* Generic link card for any CPT */
.card-link {
 display: block;
 color: inherit;
 text-decoration: none;
 height: 100%;
}

/* Load More Button */
.load-more-wrap,
.masonry-more-wrap {
 text-align: center;
 margin: 32px 0;
}

.load-more-btn,
.masonry-more-btn {
 min-width: 220px;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 12px 28px;
 background: #10c797;
 color: #fff;
 border: none;
 border-radius: 10px;
 font-size: 15px;
 font-weight: 600;
 cursor: pointer;
 box-shadow: 0 2px 8px rgba(9,202,143,.2);
 transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.load-more-btn:hover,
.masonry-more-btn:hover {
 background: var(--primary-hover);
 box-shadow: 0 6px 16px rgba(9,202,143,.35);
 transform: scale(1.02);
}

.load-more-btn:disabled,
.masonry-more-btn:disabled {
 opacity: .6;
 cursor: not-allowed;
}

/* Section Heading (shortcode blocks) */
.section-heading {
 font-size: clamp(22px, 2.5vw, 28px);
 font-weight: 800;
 color: var(--text-black, #1A1A1A);
 margin: 40px 0 20px;
 line-height: 1.2;
 letter-spacing: -0.02em;
}

.section-heading:first-child {
 margin-top: 0;
}

/* Phones List ([show_phones]) */
.phones-list {
 list-style: none;
 padding: 0;
 margin: 12px 0;
}

.phones-list li {
 margin-bottom: 6px;
}

.phones-list a {
 font-size: 18px;
 font-weight: 700;
 color: var(--text);
 transition: color .2s;
}

.phones-list a:hover {
 color: var(--primary-color);
}

/* WP Block Compatibility (Gutenberg) */
.wp-block-columns {
 display: flex;
 gap: 24px;
 flex-wrap: wrap;
}

.wp-block-column {
 flex: 1;
 min-width: 200px;
}

@media (max-width: 599px) {
 .wp-block-columns {
  flex-direction: column;
 }
 .wp-block-column {
  min-width: 100%;
 }
}

.wp-block-image img {
 border-radius: var(--radius);
}

.wp-block-table table {
 width: 100%;
 border-collapse: collapse;
}

.wp-block-table th,
.wp-block-table td {
 padding: 10px 14px;
 border: 1px solid var(--border);
 text-align: left;
 font-size: 14px;
}

.wp-block-table th {
 background: var(--bg-alt);
 font-weight: 700;
}

.wp-block-button__link,
.wp-block-button .wp-element-button,
.entry-content a.wp-block-button__link {
 display: inline-flex;
 align-items: center;
 padding: 12px 32px;
 border-radius: 10px;
 background: var(--primary-color);
 color: #fff;
 font-family: var(--font-alt);
 font-size: 15px;
 font-weight: 600;
 letter-spacing: -0.01em;
 text-decoration: none;
 border: none;
 cursor: pointer;
 transition: background .2s, box-shadow .2s, transform .15s;
}

.wp-block-button__link:hover,
.wp-block-button .wp-element-button:hover {
 background: var(--primary-hover);
 box-shadow: 0 6px 16px rgba(9,202,143,.3);
 transform: translateY(-1px) scale(1.02);
}

/* Outline variant */
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline .wp-element-button {
 background: transparent;
 color: var(--primary-color);
 border: 1.5px solid var(--primary-color);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-element-button:hover {
 background: var(--primary-color);
 color: #fff;
}

/* CF7 Form Global Styles */
.wpcf7-form {
 display: flex;
 flex-direction: column;
 gap: 14px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form textarea,
.wpcf7-form select {
 width: 100%;
 padding: 12px 16px;
 border: 1px solid var(--border);
 border-radius: var(--radius);
 font-family: var(--font);
 font-size: 15px;
 color: var(--text);
 background: var(--bg);
 outline: none;
 transition: border-color .2s, box-shadow .2s;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
 border-color: var(--primary-color);
 box-shadow: 0 0 0 3px rgba(9,202,143,.15);
}

.wpcf7-form input[type="submit"],
.wpcf7-form button[type="submit"] {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 14px 36px;
 background: var(--primary-color);
 color: #fff;
 border: none;
 border-radius: var(--radius);
 font-family: var(--font);
 font-size: 14px;
 font-weight: 700;
 cursor: pointer;
 box-shadow: 0 2px 8px rgba(9,202,143,.2);
 transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.wpcf7-form input[type="submit"]:hover,
.wpcf7-form button[type="submit"]:hover {
 background: var(--primary-hover);
 box-shadow: 0 6px 16px rgba(9,202,143,.35);
 transform: scale(1.02);
}

.wpcf7-not-valid-tip {
 font-size: 13px;
 color: #E74C3C;
 margin-top: 4px;
}

.wpcf7-response-output {
 padding: 12px 16px;
 border-radius: var(--radius);
 font-size: 14px;
 margin: 12px 0 0;
}

.wpcf7-mail-sent-ok {
 background: rgba(9,202,143,.08);
 border: 1px solid var(--primary-color);
 color: var(--primary-color);
}

.wpcf7-validation-errors {
 background: #fff0f0;
 border: 1px solid #ffd4d4;
 color: #c0392b;
}

/* Polylang Switcher */
.pll-switcher {
 list-style: none;
 padding: 0;
 margin: 0;
 display: flex;
 align-items: center;
 gap: 8px;
}

.pll-switcher li {
 margin: 0;
}

.pll-switcher a {
 display: inline-flex;
 align-items: center;
 gap: 4px;
 padding: 4px 8px;
 border-radius: 4px;
 font-size: 13px;
 font-weight: 600;
 color: var(--text-light);
 transition: background .2s, color .2s;
}

.pll-switcher a:hover,
.pll-switcher .current-lang a {
 background: rgba(9,202,143,.08);
 color: var(--primary-color);
}

/* TablePress Styles */
.tablepress {
 width: 100%;
 border-collapse: collapse;
 margin: 16px 0;
}

.tablepress th,
.tablepress td {
 padding: 10px 14px;
 text-align: left;
 font-size: 14px;
}

.tablepress tbody td,
.tablepress tfoot th {
 border-top: none;
}

tr:not(:last-child) {
 border-bottom: 1px solid rgba(0, 189, 236, .37);
}

/* Заголовки зелёный фон Novamed */
.tablepress thead th {
 background-color: rgba(8, 202, 143, .4) !important;
 color: #05432f;
 font-weight: 700;
}

/* Колонка цены зелёный жирный */
.tablepress td.column-3 {
 color: #09CA8F;
 font-weight: 700;
}

.tablepress .even td {
 background: rgba(0, 186, 184, .03);
}

.tablepress .odd td {
 background: #fff;
}

/* Маркеры списков зелёные */
::marker {
 color: var(--primary-color, #09CA8F);
}

/* Mobile: таблица → карточки */
@media (max-width: 768px) {
 .tablepress,
 .tablepress thead,
 .tablepress tbody,
 .tablepress tr,
 .tablepress th,
 .tablepress td {
  display: block;
  width: 100%;
 }

 .tablepress thead {
  display: none;
 }

 .tablepress tr {
  margin-bottom: 12px;
  border: 1px solid var(--border, #e0e0e0);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
 }

 .tablepress td {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  border: none;
  border-bottom: 1px solid #f0f0f0;
  text-align: right;
  font-size: 14px;
 }

 .tablepress td:last-child {
  border-bottom: none;
 }

 /* Показать заголовок колонки из data-атрибута или ::before */
 .tablepress td::before {
  content: attr(data-column-title);
  font-weight: 700;
  text-align: left;
  color: #333;
  margin-right: auto;
  padding-right: 12px;
 }

 /* TablePress добавляет классы .column-1, .column-2, etc. */
 .tablepress td.column-1 {
  background: #f8fafb;
  font-weight: 600;
  text-align: left;
  font-size: 15px;
  color: #1a2332;
 }

 .tablepress td.column-1::before {
  display: none;
 }

 .tablepress .even td,
 .tablepress .odd td {
  background: transparent;
 }

 .tablepress td.column-1 {
  background: #f8fafb;
 }
}

/* ==========================================================================
 PRICE PAGES
 ========================================================================== */
.price-category {
 padding: 20px 0;
 max-width: 100%;
 overflow: hidden;
}

.price-category__title {
 font-size: 22px;
 font-weight: 700;
 padding: 10px 0;
 color: #05432f;
}

.price-table-wrap {
 padding: 4px 0 12px;
 overflow-x: auto;
 -webkit-overflow-scrolling: touch;
 max-width: 100%;
}

.price-table-wrap .tablepress {
 margin: 0;
 width: 100%;
 table-layout: auto;
}

/* Убираем лишние отступы TablePress в аккордеоне */
.accordion-body .price-table-wrap {
 margin: 0 -18px;
 padding: 8px 18px 12px;
 width: calc(100% + 36px);
}

/* TablePress внутри аккордеона компактнее */
.accordion-body .tablepress th,
.accordion-body .tablepress td {
 padding: 8px 12px;
 font-size: 14px;
 word-break: break-word;
}

/* Кнопка "Записатися" в таблице */
.accordion-body .tablepress a {
 color: #09CA8F;
 font-weight: 600;
 text-decoration: none;
}
.accordion-body .tablepress a:hover {
 text-decoration: underline;
}

/* Single price */
.price-single {
 padding: 32px 0 48px;
}

.price-single__image {
 margin: 24px 0;
 border-radius: 12px;
 overflow: hidden;
}

.price-single__image img {
 width: 100%;
 height: auto;
 display: block;
 object-fit: cover;
 max-height: 400px;
}

.price-single__excerpt {
 font-size: 16px;
 line-height: 1.7;
 color: var(--text-secondary);
 margin-bottom: 32px;
}

.price-single__table-section {
 margin-top: 32px;
}

.price-single__table-section h2 {
 font-size: 22px;
 font-weight: 700;
 margin-bottom: 16px;
}

/* Custom text blocks above/below prices */
.custom-text-prices {
 margin: 20px 0;
 font-size: 15px;
 line-height: 1.7;
 color: var(--text-secondary);
}

/* ==========================================================================
 404 PAGE
 ========================================================================== */
.error-404 {
 text-align: center;
 padding: 80px 20px;
}

.error-404__code {
 font-size: 120px;
 font-weight: 800;
 line-height: 1;
 color: var(--accent);
 opacity: .3;
 margin-bottom: 16px;
}

.error-404__title {
 font-size: 28px;
 font-weight: 700;
 margin-bottom: 12px;
}

.error-404__text {
 font-size: 16px;
 color: var(--text-light);
 margin-bottom: 24px;
 max-width: 480px;
 margin-left: auto;
 margin-right: auto;
}

.error-404 .search-form {
 max-width: 400px;
 margin: 0 auto 24px;
}

.error-404 .btn-primary {
 margin-top: 12px;
}

/* ==========================================================================
 SINGLE SALE PAGE (2-column layout)
 ========================================================================== */
.sale-single__title {
 font-size: clamp(24px, 3.5vw, 38px);
 font-weight: 800;
 line-height: 1.2;
 color: var(--text-black);
 margin: 0 0 24px;
}

.sale-single__grid {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 32px;
 align-items: start;
}

@media (max-width: 768px) {
 .sale-single__grid {
  grid-template-columns: 1fr;
  gap: 24px;
 }
}

.sale-single__media {
 position: sticky;
 top: 24px;
}

.sale-single__img-wrap {
 position: relative;
 border-radius: 12px;
 overflow: hidden;
 box-shadow: var(--shadow);
}

.sale-single__img {
 width: 100%;
 height: auto;
 display: block;
}

.sale-single__price-badge {
 position: absolute;
 top: 16px;
 right: 16px;
 background: var(--primary-color);
 color: #fff;
 font-size: 15px;
 font-weight: 800;
 padding: 8px 18px;
 border-radius: 8px;
 box-shadow: 0 4px 12px rgba(0,0,0,.15);
}

.sale-single__price-line {
 display: flex;
 align-items: baseline;
 gap: 10px;
 margin-bottom: 20px;
 padding-bottom: 16px;
 border-bottom: 1px solid var(--border);
}

.sale-single__price-label {
 font-size: 14px;
 color: var(--text-light);
}

.sale-single__price-value {
 font-size: 22px;
 font-weight: 800;
 color: var(--primary-color);
}

.sale-single__status {
 display: inline-flex;
 align-items: center;
 padding: 8px 16px;
 border-radius: 8px;
 font-size: 14px;
 font-weight: 700;
 margin-bottom: 16px;
}

.sale-single__status--expired {
 background: #fff0f0;
 color: #c0392b;
}

.sale-single__timer {
 margin-bottom: 20px;
}

.sale-single__content .entry-content {
 max-width: none;
}

/* Warning block (Увага!) in sale content */
.sale-single .entry-content blockquote,
.entry-content .wp-block-quote {
 background: #fdf8ee;
 border: 1px solid #f0e4c4;
 border-left: 4px solid #f0c14b;
 border-radius: 8px;
 padding: 20px 24px;
 margin: 24px 0;
 font-style: normal;
}

.sale-single .entry-content blockquote p:first-child strong,
.entry-content .wp-block-quote p:first-child strong {
 color: #d4930d;
 display: block;
 margin-bottom: 6px;
}

/* Sale disclaimer */
.sale-disclaimer {
 margin-top: 28px;
 padding: 16px 20px;
 background: #fef9ee;
 border: 1px solid #f0e4c4;
 border-left: 4px solid #e8b84b;
 border-radius: 8px;
 font-size: 13px;
 line-height: 1.6;
 color: #8a6d3b;
}

.sale-disclaimer p {
 margin: 0;
}

/* Equipment single */
.equipment-single {
 margin-bottom: 40px;
}

.equipment-single__img {
 margin: 0 0 28px;
 border-radius: var(--radius-card);
 overflow: hidden;
 max-width: 720px;
}

.equipment-single__img img {
 width: 100%;
 height: auto;
 display: block;
}

.equipment-single__meta {
 margin-bottom: 20px;
 font-size: 15px;
 color: var(--text-light);
}

.equipment-single .entry-thumbnail {
 margin-bottom: 28px;
 border-radius: var(--radius);
 overflow: hidden;
 max-width: 600px;
}

.equipment-single .entry-thumbnail img {
 width: 100%;
 height: auto;
 display: block;
}

.equipment-services {
 margin-top: 40px;
}

.equipment-services h2 {
 font-family: var(--font-alt);
 font-size: clamp(20px, 2.5vw, 26px);
 font-weight: 600;
 margin-bottom: 20px;
}

/* ==========================================================================
 MOBILE MENU CTA
 ========================================================================== */
.mobile-menu-cta {
 padding: 10px 24px 0;
}

.btn-primary--full {
 width: 100%;
 padding: 14px 20px;
 font-size: 16px;
 font-weight: 700;
 border-radius: 12px;
}

/* ==========================================================================
 BLOG LIST (horizontal cards: image left, text right)
 ========================================================================== */
.posts-list {
 display: flex;
 flex-direction: column;
 gap: 24px;
}

.post-card-h {
 background: #fff;
 border: 1px solid #eef1f4;
 border-radius: 12px;
 overflow: hidden;
 box-shadow: var(--shadow);
 transition: box-shadow .25s, transform .25s;
}

.post-card-h:hover {
 box-shadow: var(--shadow-hover);
 transform: translateY(-2px);
}

.post-card-h__link {
 display: grid;
 grid-template-columns: 320px 1fr;
 color: inherit;
 text-decoration: none;
 min-height: 200px;
}

.post-card-h__media {
 overflow: hidden;
 background: var(--bg-alt);
}

.post-card-h__img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
 transition: transform .3s;
}

.post-card-h:hover .post-card-h__img {
 transform: scale(1.04);
}

.post-card-h__img--placeholder {
 width: 100%;
 height: 100%;
 min-height: 200px;
 background: linear-gradient(135deg, #f2f2f2, #e9ecef);
}

.post-card-h__body {
 padding: 20px 24px;
 display: flex;
 flex-direction: column;
 justify-content: center;
}

.post-card-h__date {
 font-size: 13px;
 color: var(--text-light);
 margin-bottom: 6px;
}

.post-card-h__title {
 font-size: 20px;
 font-weight: 700;
 line-height: 1.35;
 color: var(--text-black);
 margin: 0 0 8px;
 display: -webkit-box;
 -webkit-line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

.post-card-h__excerpt {
 font-size: 14px;
 color: var(--text-light);
 line-height: 1.6;
 display: -webkit-box;
 -webkit-line-clamp: 3;
 -webkit-box-orient: vertical;
 overflow: hidden;
 margin-bottom: 12px;
}

.post-card-h__more {
 font-size: 14px;
 font-weight: 600;
 color: var(--primary-color);
 transition: color .2s;
}

.post-card-h:hover .post-card-h__more {
 color: var(--primary-hover);
}

@media (max-width: 768px) {
 .post-card-h__link {
  grid-template-columns: 1fr;
 }
 .post-card-h__media {
  aspect-ratio: 16 / 9;
 }
 .post-card-h__body {
  padding: 16px;
 }
 .post-card-h__title {
  font-size: 18px;
 }
}

/* ==========================================================================
 ENTRY META (hero block)
 ========================================================================== */
.page-hero .entry-meta,
.archive-hero .entry-meta {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 16px;
 margin-top: 12px;
 font-size: 14px;
 color: var(--text-light);
}

.entry-meta time {
 color: var(--text-light);
}

.entry-cat {
 background: rgba(9,202,143,.1);
 color: var(--primary-color);
 padding: 3px 10px;
 border-radius: 4px;
 font-size: 13px;
 font-weight: 600;
}

.entry-views {
 color: var(--text-light);
 font-size: 13px;
}

/* ==========================================================================
 SERVICES GRID POLISH
 ========================================================================== */
/* Base .services-grid defined above (line ~254) service-card styles below in SERVICE CHILD CARDS section */

/* ==========================================================================
 RELATED POSTS SECTION
 ========================================================================== */
.related-posts {
 margin-top: 48px;
 padding-top: 32px;
 border-top: 1px solid var(--border);
}

.related-posts h2 {
 font-size: 24px;
 font-weight: 800;
 margin: 0 0 20px;
 color: var(--text-black);
}

/* ==========================================================================
 ACCESSIBILITY PANEL (trigger + classes)
 ========================================================================== */
.a11y-trigger {
 /* Already defined in critical.css, extended here for component context */
}

.a11y-panel {
 position: fixed;
 right: -320px;
 top: 50%;
 transform: translateY(-50%);
 z-index: 99999;
 width: 280px;
 max-height: 80vh;
 overflow-y: auto;
 background: var(--bg);
 box-shadow: -4px 0 20px rgba(0,0,0,.12);
 border-radius: var(--radius) 0 0 var(--radius);
 padding: 24px;
 transition: right .35s cubic-bezier(.4,0,.2,1);
}

.a11y-panel.active {
 right: 0;
}

.a11y-panel__title {
 font-size: 18px;
 font-weight: 700;
 margin: 0 0 16px;
 color: var(--text);
}

.a11y-option {
 display: flex;
 align-items: center;
 gap: 12px;
 width: 100%;
 padding: 10px 14px;
 margin-bottom: 8px;
 border: 1px solid var(--border);
 border-radius: var(--radius);
 background: var(--bg);
 font-size: 14px;
 font-weight: 500;
 color: var(--text);
 cursor: pointer;
 transition: background .2s, border-color .2s;
}

.a11y-option:hover {
 background: var(--bg-alt);
 border-color: var(--primary-color);
}

.a11y-option.active {
 background: rgba(9,202,143,.08);
 border-color: var(--primary-color);
 color: var(--primary-color);
}

/* --- A11y Modes (applied on <html>) --- */
html.a11y-large-font {
 font-size: 120%;
}

html.a11y-high-contrast {
 filter: contrast(1.4);
}

html.a11y-high-contrast body {
 background: #000;
 color: #fff;
}

html.a11y-high-contrast a {
 color: #ff0;
}

html.a11y-grayscale {
 filter: grayscale(1);
}

html.a11y-line-height {
 line-height: 2;
}

html.a11y-line-height .entry-content,
html.a11y-line-height .post-card__excerpt,
html.a11y-line-height .faq-answer {
 line-height: 2.2;
}

html.a11y-letter-spacing {
 letter-spacing: 0.08em;
}

html.a11y-letter-spacing .entry-content,
html.a11y-letter-spacing .post-card__body {
 letter-spacing: 0.1em;
}

/* ==========================================================================
 MOBILE SCROLLBAR (thin green)
 ========================================================================== */
@media (max-width: 991px) {
 * {
  scrollbar-width: thin;
  scrollbar-color: #00b377 transparent;
 }

 *::-webkit-scrollbar {
  width: 5px;
 }

 *::-webkit-scrollbar-track {
  background: transparent;
 }

 *::-webkit-scrollbar-thumb {
  background: #00b377;
  border-radius: 4px;
 }
}

/* ==========================================================================
 RESPONSIVE ADJUSTMENTS
 ========================================================================== */

/* --- Tablets (768-1024) --- */
@media (max-width: 1024px) {
 .posts-grid {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
 }

 .entry-header h1 {
  font-size: 36px;
 }

 .entry-content h2 {
  font-size: 28px;
 }

 .doctors-grid {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 16px;
 }

 .tr-grid {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
 }
}

/* --- Mobile (max 599px) --- */
@media (max-width: 599px) {
 .posts-grid {
  grid-template-columns: 1fr;
 }

 .entry-header h1 {
  font-size: 28px;
  letter-spacing: 0;
 }

 .entry-content {
  font-size: 15px;
 }

 .entry-content h2 {
  font-size: 22px;
 }

 .entry-content h3 {
  font-size: 20px;
 }

 .doctors-grid {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 10px;
 }

 .doctors-grid .doctor-card {
  min-width: 260px;
  max-width: 300px;
  flex: 0 0 auto;
  scroll-snap-align: start;
 }

 .doctors-grid::-webkit-scrollbar { height: 5px; }
 .doctors-grid::-webkit-scrollbar-track { background: transparent; }
 .doctors-grid::-webkit-scrollbar-thumb { background: var(--primary-color, #09CA8F); border-radius: 6px; }

 .doctor-card-mini__img {
  width: 90px;
  height: 90px;
 }

 .sale-teasers {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 10px;
 }

 .sale-teasers .sale-card {
  min-width: 260px;
  max-width: 300px;
  flex: 0 0 auto;
  scroll-snap-align: start;
 }

 .sale-teasers::-webkit-scrollbar { height: 5px; }
 .sale-teasers::-webkit-scrollbar-track { background: transparent; }
 .sale-teasers::-webkit-scrollbar-thumb { background: var(--primary-color, #09CA8F); border-radius: 6px; }

 .tr-grid {
  grid-template-columns: 1fr;
 }

 .masonry-grid {
  columns: 1;
 }

 .toc {
  padding: 16px;
 }

 .toc__item a {
  font-size: 14px;
 }

 .pagination .page-numbers {
  min-width: 36px;
  height: 36px;
  font-size: 14px;
 }

 .error-404__code {
  font-size: 80px;
 }

 .error-404__title {
  font-size: 22px;
 }
}

/* ==========================================================================
 ACCORDION Novamed style, SEO-friendly (NO display:none)
 ========================================================================== */
.accordion {
 display: block !important;
 flex-direction: unset !important;
 margin-bottom: 8px;
}

.accordion-item {
 border: 2px solid #09CA8F;
 border-radius: 8px;
 margin-bottom: 6px;
 background: #fff;
 overflow: hidden;
}

.accordion-header {
 display: flex;
 align-items: center;
 justify-content: space-between;
 width: 100%;
 padding: 14px 20px;
 background: rgba(9, 202, 143, .05);
 border: none;
 cursor: pointer;
 font-size: 15px;
 font-weight: 700;
 color: #09CA8F;
 text-align: left;
 text-transform: uppercase;
 transition: background .2s, color .2s;
 gap: 12px;
 font-family: inherit;
 line-height: 1.4;
}

.accordion-header:hover {
 background: rgba(9, 202, 143, .12);
}

.accordion-item.active .accordion-header {
 background: #09CA8F;
 color: #fff;
}

.accordion-icon {
 flex-shrink: 0;
 transition: transform .3s ease, color .2s;
 color: #09CA8F;
}

.accordion-item.active .accordion-icon {
 transform: rotate(180deg);
 color: #fff;
}

/* SEO-friendly: max-height:0 + overflow:hidden, контент в DOM */
.accordion-body {
 max-height: 0;
 overflow: hidden;
 transition: max-height .4s ease, opacity .3s ease;
 opacity: 0;
 padding: 0 18px;
}

.accordion-item.active .accordion-body {
 opacity: 1;
 padding: 0 18px 12px;
 overflow-x: auto;
}

/* Legacy compat: .panel for old markup */
.panel {
 max-height: 0;
 overflow: hidden;
 transition: max-height .4s ease;
 padding: 0 18px;
}

.panel.show {
 max-height: 4000px;
}

.price .price-row {
 margin-bottom: 20px;
}

/* ==========================================================================
 LINK WRAPPERS (content anchor navigation)
 ========================================================================== */
.link-wrapp {
 justify-content: center;
 display: flex;
 flex-wrap: wrap;
}

.link-wrapp .link-item {
 display: flex;
 justify-content: center;
 align-items: center;
 text-align: center;
 border: solid 1px var(--primary-color);
 border-radius: 6px;
 margin: 0 10px 5px 0;
 padding: 0 5px;
 min-height: 70px;
 width: calc(30% - 0px);
 transition: background .2s, color .2s;
}

.link-item {
 min-height: 70px;
}

.link-wrapp .link-item:hover {
 background: var(--primary-color);
 color: white;
}

.link-wrapp .link-item:hover a {
 color: white;
}

@media (max-width: 1050px) {
 .link-wrapp .link-item {
  width: calc(48% - 0px);
 }
}

@media (max-width: 600px) {
 .link-wrapp .link-item {
  width: calc(98% - 0px);
 }
}

/* ==========================================================================
 STUDY TABLE (primary-color borders)
 ========================================================================== */
.study-table {
 overflow: auto;
 margin: 16px 0;
}

.study-table table {
 min-width: 600px;
 overflow: auto;
 font-size: 0.85em;
 width: 100%;
 border-collapse: collapse;
}

.study-table table,
.study-table td,
.study-table th {
 border: 1px solid var(--primary-color);
}

.study-table tbody > tr:first-child {
 background: var(--primary-color);
 color: white;
 border-color: white;
}

.study-table tbody > tr:first-child td {
 border-color: white;
 border-bottom: unset;
 vertical-align: middle;
}

.study-table tbody > tr:first-child td:first-child {
 border-left: unset;
}

.study-table tbody > tr:first-child td:last-child {
 border-right: unset;
}

/* ==========================================================================
 SERVICES LETTER LISTING (alphabetical)
 ========================================================================== */
.services-list {
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
}

.services-list_reffer {
 width: calc(33.33333% - 60px);
 display: flex;
 margin-bottom: 30px;
 align-items: flex-start;
 border: solid 1px #80808033;
 padding: 20px;
 border-radius: 10px 0;
 transition: box-shadow .2s;
}

.services-list_reffer:hover {
 box-shadow: 0 5px 10px rgb(0 42 66 / 7%);
}

@media (max-width: 1060px) {
 .services-list_reffer {
  width: calc(50% - 60px);
 }
}

@media (max-width: 767px) {
 .services-list_reffer {
  width: 100%;
 }
}

.services-list_letter {
 width: 45px;
}

.services-list_letter_blok {
 width: 45px;
 height: 45px;
 color: #00bab8;
 text-align: center;
 box-shadow: 0 5px 10px rgb(0 42 66 / 7%);
 background: var(--primary-color);
 border-radius: 50%;
 display: flex;
 align-items: center;
 justify-content: center;
 font-size: 24px;
 font-weight: bold;
}

.services-list__single {
 width: calc(100% - 60px);
 margin-left: 15px;
 margin-top: 7px;
}

.services-list__single .services-list__single.link,
.services-list__single.link {
 font-size: 1.1em;
 margin-left: 0;
 display: inline-block;
 width: 100%;
 margin: 5px 0;
 color: #606060;
 text-decoration: none;
}

.services-list__single.link:hover {
 color: var(--primary-color);
 text-decoration: underline;
}

/* ==========================================================================
 SALE FEATURE & TITLE (sale cards)
 ========================================================================== */
.sale-feature {
 color: #FF3E3E;
 font-size: 1.6em;
 text-align: center;
 font-weight: 600;
 margin-top: 0.4em;
}

.title-sale {
 color: #4D534F;
 font-size: 1.6em;
 text-align: center;
 font-weight: 600;
 line-height: 30px;
}

/* ==========================================================================
 DOCTOR DETAIL PAGE (single-doctor, single-vrachi)
 ========================================================================== */
/* 2-column grid: photo left, info right */
.doctor-single__grid {
 display: grid;
 grid-template-columns: 1fr 2fr;
 gap: 24px;
 align-items: start;
 margin-bottom: 32px;
}

@media (max-width: 992px) {
 .doctor-single__grid {
  grid-template-columns: 1fr;
 }
}

.doctor-single__photo-col {
 position: sticky;
 top: 20px;
}

@media (max-width: 992px) {
 .doctor-single__photo-col {
  position: static;
 }
}

.doctor-photo-card {
 background: #fff;
 border-radius: 12px;
 box-shadow: 0 2px 10px rgba(0,0,0,.06);
 border: 1px solid #eef1f4;
 padding: 12px;
}

.doctor-photo-card__media {
 background: #eaeef2;
 border-radius: 10px;
 display: flex;
 align-items: center;
 justify-content: center;
 overflow: hidden;
 min-height: 260px;
}

.doctor-photo-card__img {
 max-width: 100%;
 max-height: 480px;
 object-fit: contain;
}

.doctor-info-card {
 background: #fff;
 border-radius: 12px;
 box-shadow: 0 2px 10px rgba(0,0,0,.06);
 border: 1px solid #eef1f4;
 padding: 18px 20px;
}

.doctor-meta-list {
 display: flex;
 flex-direction: column;
 gap: 8px;
}

.doctor-meta-row {
 display: flex;
 gap: 8px;
 flex-wrap: wrap;
 align-items: baseline;
}

.doctor-meta-label {
 color: #6b7785;
 font-size: 14px;
 min-width: 120px;
}

.doctor-meta-value {
 color: #2c3e50;
 font-weight: 600;
 font-size: 14px;
}

.doctor-sep {
 border: 0;
 height: 1px;
 background: #eef1f4;
 margin: 16px 0 12px;
}

/* Doctor CTA button */
.doctor-cta {
 margin: 28px 0 32px;
}

.btn-primary--lg {
 padding: 14px 32px;
 font-size: 16px;
 font-weight: 700;
 border-radius: 10px;
}

.doctor-position {
 color: #00b377;
 font-size: 1.15em;
 line-height: 26px;
 margin-bottom: 8px;
 font-weight: 600;
}

.doctor-specialty {
 color: var(--primary-color);
 font-size: 1.05em;
 margin-bottom: 4px;
}

.doctor-experience {
 color: #6e6e73;
 font-size: 15px;
 margin-top: 8px;
 font-weight: 500;
}

.single-doc-page.position,
.single-doc-page.quality,
.single-doc-page.science {
 color: var(--primary-color);
 font-size: 1.15em;
 line-height: 26px;
 margin-bottom: 15px;
}

.doc-card-wrapp {
 min-height: 515px;
}

/* Doctor CTA under photo */
.doctor-single__photo-col .doctor-cta {
 margin: 16px 0 0;
 text-align: center;
}

.doctor-single__photo-col .btn-primary--lg {
 width: 100%;
}

@media (max-width: 767px) {
 .single-vrachi .entry-content {
  padding: 0;
 }
}

/* ==========================================================================
 SALE SINGLE PAGE
 ========================================================================== */
.sale-single__grid {
 display: grid;
 grid-template-columns: 1.2fr 1fr;
 gap: 28px;
 align-items: start;
 margin-bottom: 32px;
}

.sale-single__media {
 border-radius: 14px;
 overflow: hidden;
 background: #f4f6f8;
 position: relative;
}

.sale-single__media img {
 width: 100%;
 height: auto;
 display: block;
}

.sale-single__body {
 background: #fff;
 border-radius: 14px;
 padding: 20px;
 box-shadow: 0 2px 10px rgba(0,0,0,.06);
 border: 1px solid #eef1f4;
}

.sale-meta {
 margin-bottom: 16px;
}

.sale-meta__row {
 display: flex;
 gap: 8px;
 align-items: center;
 margin-bottom: 8px;
}

.sale-meta__label {
 color: #6b7785;
 font-size: 14px;
}

.sale-meta__value {
 font-weight: 600;
 font-size: 14px;
}

.sale-meta__countdown {
 display: inline-flex;
 gap: 4px;
 background: #df3535;
 color: #fff;
 border-radius: 8px;
 padding: 4px 10px;
 font-size: 13px;
 font-weight: 700;
}

/* ---- Price callout card (sale single, replaces inline sale-meta rows) ---- */
.sale-price-card {
 position: relative;
 background: #f6fbf9;
 border: 1px solid #e5efe9;
 border-left: 3px solid var(--primary-color, #09ca8f);
 border-radius: 12px;
 padding: 18px 20px 16px;
 margin: 0 0 32px;  /* bumped 22→32px so body text has breathing room */
}
/* Whatever follows the price card must have its own breathing room too 
 even if it's a paragraph with no native top margin (entry-content p:first-child). */
.sale-price-card + p,
.sale-price-card + .entry-content,
.sale-price-card + .entry-content > *:first-child {
 margin-top: 0;   /* keep first child flush the card itself provides the gap */
}

/* ---- Anti-sticky safety net -----------------------------------------------
 Any callout-style block (colored bg + border) MUST have breathing room
 before the next heading / paragraph. Targets blocks across all templates. */
.aic-mreview + h1, .aic-mreview + h2, .aic-mreview + h3, .aic-mreview + h4,
.post-disclaimer + h1, .post-disclaimer + h2, .post-disclaimer + h3,
.sale-disclaimer + h1, .sale-disclaimer + h2, .sale-disclaimer + h3,
.sale-price-card + h1, .sale-price-card + h2, .sale-price-card + h3,
.aic-disclaimer-selfmed + h1, .aic-disclaimer-selfmed + h2, .aic-disclaimer-selfmed + h3 {
 margin-top: 36px !important;
}
/* When a heading is the FIRST child of a body container it should still
 have a top margin (otherwise looks pasted onto the parent's edge). */
.sale-single__body > h2:first-child,
.sale-single__body > h3:first-child,
.entry-content > h2:first-child,
.entry-content > h3:first-child {
 margin-top: 0;   /* legit first-child keep flush by design */
}
/* Sticky title pattern: H1/H2 immediately after an image, button or grid
 block (frequent in custom templates) ensure gap. */
.entry-content > img + h2,
.entry-content > img + h3,
.entry-content > .wp-block-image + h2,
.entry-content > .wp-block-image + h3,
.entry-content > ul + h2,
.entry-content > ol + h2,
.entry-content > figure + h2,
.entry-content > figure + h3 {
 margin-top: 40px;
}
.sale-price-card__head {
 margin-bottom: 6px;
}
.sale-price-card__label {
 display: inline-block;
 font-size: 11px;
 font-weight: 600;
 letter-spacing: .08em;
 text-transform: uppercase;
 color: var(--primary-dark, #067A55);
 background: color-mix(in srgb, var(--primary-color, #09ca8f) 14%, transparent);
 padding: 3px 10px;
 border-radius: 999px;
}
.sale-price-card__value {
 font-size: clamp(26px, 3.4vw, 32px);
 font-weight: 700;
 line-height: 1.1;
 color: #1d1d1f;
 letter-spacing: -.4px;
 margin: 4px 0 10px;
}
.sale-price-card__note {
 display: inline-flex;
 align-items: center;
 gap: 6px;
 font-size: 13px;
 color: var(--ds-text-muted, #6e6e73);
 margin-bottom: 14px;
}
.sale-price-card__note svg { color: var(--primary-dark, #067A55); flex-shrink: 0; }
.sale-price-card__countdown {
 display: inline-flex;
 align-items: center;
 margin-left: 6px;
 padding: 2px 8px;
 background: color-mix(in srgb, var(--primary-color, #09ca8f) 16%, transparent);
 color: var(--primary-dark, #067A55);
 border-radius: 6px;
 font-size: 12px;
 font-weight: 700;
}
.sale-price-card__cta {
 display: inline-flex;
 align-items: center;
 gap: 8px;
 padding: 11px 22px;
 border-radius: 999px;
 font-weight: 600;
 font-size: 14.5px;
 border: 0;
 cursor: pointer;
 transition: transform .1s, box-shadow .15s;
}
.sale-price-card__cta:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(8, 171, 121, .22); }
.sale-price-card__cta svg { transition: transform .15s; }
.sale-price-card__cta:hover svg { transform: translateX(3px); }

@media (max-width: 640px) {
 .sale-price-card { padding: 14px 16px; }
 .sale-price-card__value { font-size: 26px; }
}

.sale-benefit {
 display: inline-block;
 background: #ffd400;
 color: #111;
 padding: 6px 14px;
 border-radius: 8px;
 font-weight: 700;
 font-size: 14px;
 margin-bottom: 12px;
}

.sale-price-badge {
 display: inline-block;
 background: #df3535;
 color: #fff;
 padding: 6px 14px;
 border-radius: 8px;
 font-weight: 700;
 font-size: 14px;
 margin-bottom: 12px;
}

.sale-expired {
 display: inline-block;
 background: #e74c3c;
 color: #fff;
 padding: 6px 14px;
 border-radius: 8px;
 font-weight: 700;
 font-size: 14px;
 margin-bottom: 12px;
}

.sale-warning {
 margin-top: 20px;
 padding: 14px 16px;
 background: #fff8e5;
 border: 1px solid #f5d27a;
 border-radius: 8px;
 font-size: 14px;
 line-height: 1.5;
 color: #5b4a20;
}

.sale-warning strong {
 color: #c97a00;
}

@media (max-width: 992px) {
 .sale-single__grid {
  grid-template-columns: 1fr;
 }
}

/* ==========================================================================
 SERVICE CHILD CARDS (single-service parent with children)
 ========================================================================== */
.service-card {
 background: #fff;
 border: solid 1px #8080803b;
 border-radius: 10px 0;
 overflow: hidden;
 transition: box-shadow .2s, transform .2s;
}

.service-card:hover {
 box-shadow: 0 5px 10px rgb(0 42 66 / 7%);
 transform: translateY(-2px);
}

.service-card a {
 display: block;
 color: inherit;
 text-decoration: none;
}

.service-card__media {
 aspect-ratio: 16 / 10;
 overflow: hidden;
 background: #f4f6f8;
}

.service-card__media img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 transition: transform .3s;
}

.service-card:hover .service-card__media img {
 transform: scale(1.04);
}

.service-card__body {
 padding: 16px;
}

.service-card__icon {
 width: 40px;
 height: 40px;
 margin-bottom: 8px;
}

.service-card__title {
 font-size: 18px;
 font-weight: 700;
 color: #111;
 margin: 0;
 line-height: 1.3;
}

.service-card__excerpt {
 font-size: 14px;
 color: #666;
 line-height: 1.5;
 margin-top: 6px;
 display: -webkit-box;
 -webkit-line-clamp: 3;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

/* Service detail layout (leaf service) */
.service-detail {
 margin-bottom: 32px;
}

.service-short-description {
 margin: 15px 0 20px;
 font-size: 1.05em;
 line-height: 1.6;
}

.service-parent-hero {
 margin-bottom: 24px;
 border-radius: var(--radius-card);
 overflow: hidden;
 max-width: 800px;
}

.service-parent-hero__img {
 width: 100%;
 height: auto;
 display: block;
}

.service-children-title {
 font-size: 22px;
 font-weight: 700;
 margin: 32px 0 20px;
 color: var(--text);
}

.service-card__desc {
 font-size: 13px;
 color: #777;
 line-height: 1.5;
 margin-top: 6px;
}

.service-img-detail img {
 border-radius: var(--radius);
 max-width: 400px;
}

/* Services grid for single-service children */
.single-service .services-grid {
 grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 992px) {
 .single-service .services-grid {
  grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 599px) {
 .single-service .services-grid {
  grid-template-columns: 1fr;
 }
 .service-detail-img-wrap {
  flex-direction: column;
 }
 .service-img-detail img {
  max-width: 100%;
 }
}

/* Equipment grid 2 columns */
.equipment-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 24px;
 margin: 24px 0;
}

@media (max-width: 768px) {
 .equipment-grid {
  grid-template-columns: 1fr;
  gap: 16px;
 }
}

.equipment-card {
 background: #fff;
 border: 1px solid #eef1f4;
 border-radius: 10px 0;
 overflow: hidden;
 transition: box-shadow .2s, transform .2s;
}

.equipment-card:hover {
 box-shadow: 0 5px 10px rgb(0 42 66 / 7%);
 transform: translateY(-2px);
}

.equipment-card a {
 display: block;
 text-decoration: none;
 color: inherit;
}

.equipment-card__media {
 aspect-ratio: 16/10;
 overflow: hidden;
 background: #f4f6f8;
}

.equipment-card__media img,
.equipment-card img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}

.equipment-card__body {
 padding: 16px;
}

.equipment-card__title,
.equipment-card h2,
.equipment-card h3 {
 padding: 0;
 font-size: 17px;
 font-weight: 700;
 margin: 0 0 6px;
 line-height: 1.35;
}

.equipment-card__excerpt {
 font-size: 14px;
 color: var(--text-light, #6b7785);
 line-height: 1.5;
 display: -webkit-box;
 -webkit-line-clamp: 3;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

/* Linked sections (service-prices, service-sales, etc.) */
.service-prices,
.service-sales,
.service-faqs,
.service-doctors,
.service-equipment,
.service-related-posts,
.doctor-services,
.linked-doctor,
.linked-services {
 margin: 32px 0;
}

.service-link-item {
 display: inline-block;
 padding: 8px 16px;
 margin: 4px;
 border: 1px solid var(--primary-color);
 border-radius: 6px;
 color: var(--text);
 transition: background .2s, color .2s;
 text-decoration: none;
}

.service-link-item:hover {
 background: var(--primary-color);
 color: #fff;
}

/* ==========================================================================
 MISC CUSTOMIZER STYLES
 ========================================================================== */

/* List markers */
::marker {
 color: var(--primary-color);
}

/* Linked FAQs */
.linked-faqs p {
 padding: 10px;
}

/* Footer logo adjustments */
svg.footer-logo {
 margin-left: -30px;
 margin-top: -30px;
}

@media (max-width: 1280px) {
 svg.footer-logo {
  margin-left: -16px;
  margin-top: -30px;
 }
}

@media (max-width: 1080px) {
 svg.footer-logo {
  margin-left: 0;
 }
}

/* Header socials */
.header-socials li svg {
 vertical-align: middle;
}

/* Archive description */
.archive-description {
 padding: 0;
 background-color: white;
 margin-bottom: 1.5em;
 font-size: 1.15em;
}

/* Home services section */
.home-services {
 margin: 32px 0 40px;
}

.home-services .section-title {
 font-size: clamp(22px, 3vw, 30px);
 font-weight: 800;
 color: #0f141a;
 margin: 0 0 20px;
}

.home-services .services-grid.services-grid--cols-2 {
 gap: 24px;
}

.home-services .service-card {
 border-radius: 10px 0;
 border: 1px solid #8080803b;
}

.home-services .service-card__media {
 aspect-ratio: 16 / 10;
}

/* Section title (reusable) */
.section-title {
 font-size: clamp(22px, 3vw, 30px);
 font-weight: 800;
 color: #0f141a;
 margin: 0 0 20px;
}

/* Content background */
.site-content {
 background: white;
}

/* Full width primary */
@media (min-width: 922px) {
 #primary {
  width: 100%;
 }
}

/* Kill Astra's dark above-footer / footer widget areas that may bleed through */
.ast-above-footer-wrap,
.ast-footer-overlay,
.site-below-footer-wrap,
.ast-small-footer,
.ast-above-footer,
.footer-adv,
.footer-adv-overlay,
#ast-scroll-top,
.ast-builder-footer-grid-columns {
 display: none !important;
}

/* Ensure no dark gaps between content and footer */
#page,
.site,
body,
html {
 background: #fff !important;
}

/* Kill any gap/margin between content wrapper and footer */
/* Pre-footer spacer: prevent content from butting into the green footer band.
 Override per-page if a section already has its own large bottom padding (e.g. CTA blocks). */
.site-content {
 padding-bottom: 0 !important;
 margin-bottom: 0 !important;
}
.site-main {
 padding-bottom: var(--ds-main-end-gap, 80px);
}
.home .site-main.front-page,
.site-main.no-prefooter-gap {
 padding-bottom: 0;
}
.site-footer.mips-footer {
 margin-top: 0 !important;
}
@media (max-width: 768px) {
 .site-main {
  padding-bottom: var(--ds-main-end-gap-mobile, 48px);
 }
}

/* Home primary no margin-top */
.home #primary {
 margin-top: 0;
}

/* ==========================================================================
 PRINT STYLES
 ========================================================================== */
@media print {
 /* Polish #14: page margins + URL/page-number footer.
  * 1.5cm gives enough room for hospital staff to add stamps/notes. */
 @page {
  size: A4;
  margin: 1.5cm 1.2cm;
 }

 /* Hide all interactive/decorative chrome */
 .site-header,
 .site-header-mobile,
 .main-nav,
 .site-footer,
 .a11y-trigger,
 .a11y-trigger-inline,
 .a11y-trigger-menu,
 .a11y-panel,
 .mobile-menu-panel,
 .mobile-menu-overlay,
 .mobile-search,
 .breadcrumbs,
 .pagination,
 .btn-primary,
 .promo-grid,
 .sale-teasers,
 .search-form,
 .footer-socials,
 .aic-popup,
 .aic-popup__overlay,
 .aic-cb-wrap,
 .aic-cb-form,
 .aic-cookie-banner,
 .aic-cookie-settings,
 .mips-side-cta,
 .cb-trigger,
 .mayo-sidebar__pdf,
 .share-buttons,
 .reviews-form,
 .clinic-map,
 .promo-shape,
 .video-placeholder,
 iframe[src*="youtube"],
 iframe[src*="vimeo"],
 iframe[src*="google.com/maps"],
 .skip-link {
  display: none !important;
 }

 body {
  font-size: 12pt;
  color: #000;
  background: #fff;
  font-family: Georgia, 'Times New Roman', serif;
  line-height: 1.5;
 }

 h1, h2, h3, h4 {
  color: #000;
  page-break-after: avoid;
 }

 h1 { font-size: 22pt; }
 h2 { font-size: 16pt; margin-top: 18pt; }
 h3 { font-size: 13pt; }

 .entry-content,
 .prose,
 .prep-content,
 .aic-patients__body {
  max-width: 100%;
  color: #000;
 }

 .entry-content a,
 .prose a,
 .prep-content a {
  color: #000;
  text-decoration: underline;
 }

 /* External links: print URL after; internal links: just the path */
 .entry-content a[href^="http"]::after,
 .prose a[href^="http"]::after,
 .prep-content a[href^="http"]::after {
  content: ' (' attr(href) ')';
  font-size: 9pt;
  color: #555;
  word-break: break-all;
 }

 /* Skip URL-print for anchors and tel/mailto */
 .entry-content a[href^="#"]::after,
 .entry-content a[href^="tel:"]::after,
 .entry-content a[href^="mailto:"]::after { content: ''; }

 img {
  max-width: 100% !important;
  page-break-inside: avoid;
 }

 /* Page-break hygiene for medical prep lists/steps */
 ul, ol, table, blockquote, figure, .wp-block-table, .prep-step {
  page-break-inside: avoid;
 }

 /* Ink-friendly muted accents */
 :root {
  --primary-color: #000;
  --primary-dark: #000;
  --primary-hover: #000;
 }
}

/* ==========================================================================
 EQUIPMENT SINGLE - HERO
 ========================================================================== */
.eq-hero {
 position: relative;
 max-height: 400px;
 overflow: hidden;
 background: #1a2332;
 background-size: cover;
 background-position: center;
 display: flex;
 align-items: flex-end;
}

.eq-hero__overlay {
 position: absolute;
 inset: 0;
 background: linear-gradient(to top, rgba(0,0,0,.65) 0%, rgba(0,0,0,.15) 60%, transparent 100%);
}

.eq-hero__inner {
 position: relative;
 z-index: 2;
 padding-top: 120px;
 padding-bottom: 32px;
}

.eq-hero__inner .breadcrumbs,
.eq-hero__inner .breadcrumbs a,
.eq-hero__inner .breadcrumbs span {
 color: rgba(255,255,255,.75);
}

.eq-hero__inner .breadcrumbs a:hover {
 color: #fff;
}

.eq-hero__title {
 color: #fff;
 font-size: clamp(26px, 4vw, 42px);
 font-weight: 800;
 margin: 12px 0 0;
 text-shadow: 0 2px 12px rgba(0,0,0,.3);
}

/* Equipment single content tables (specs) */
.equipment-single .entry-content table {
 width: 100%;
 border-collapse: collapse;
 margin: 24px 0;
 border-radius: var(--radius, 7px);
 overflow: hidden;
 font-size: 15px;
}

.equipment-single .entry-content table th,
.equipment-single .entry-content table td {
 padding: 12px 16px;
 text-align: left;
 border-bottom: 1px solid var(--border, #e8e8e8);
}

.equipment-single .entry-content table th {
 background: var(--bg-alt, #f8f9fa);
 font-weight: 700;
 color: var(--text-black, #1a1a1a);
 white-space: nowrap;
 width: 40%;
}

.equipment-single .entry-content table td {
 color: var(--text, #4b4f58);
}

.equipment-single .entry-content table tr:last-child th,
.equipment-single .entry-content table tr:last-child td {
 border-bottom: none;
}

.equipment-single .entry-content table tr:hover td,
.equipment-single .entry-content table tr:hover th {
 background: var(--teal-light, #E8F8F2);
}

/* CTA button wrap */
.eq-cta-wrap,
.treatment-cta-wrap {
 margin: 36px 0;
 text-align: center;
}

.eq-cta-btn,
.treatment-cta-btn {
 display: inline-flex;
 align-items: center;
 gap: 10px;
 font-size: 17px;
 padding: 14px 32px;
}

/* ==========================================================================
 EQUIPMENT ARCHIVE - 3 COLUMN GRID
 ========================================================================== */
.equipment-grid--3col {
 grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 991px) {
 .equipment-grid--3col {
  grid-template-columns: repeat(2, 1fr);
 }
}

@media (max-width: 599px) {
 .equipment-grid--3col {
  grid-template-columns: 1fr;
 }
}

.equipment-card__media--ph {
 display: flex;
 align-items: center;
 justify-content: center;
 background: #f4f6f8;
 aspect-ratio: 16/10;
}

.equipment-card__more {
 display: inline-block;
 margin-top: 10px;
 font-size: 14px;
 font-weight: 700;
 color: var(--primary-color, #09CA8F);
 transition: color .2s;
}

.equipment-card:hover .equipment-card__more {
 color: var(--primary-hover, #07a775);
}

.equipment-card__media img {
 transition: transform .35s ease;
}

.equipment-card:hover .equipment-card__media img {
 transform: scale(1.05);
}

/* ==========================================================================
 EQUIPMENT SHOWCASE - [equipment_showcase] shortcode
 ========================================================================== */
.eq-showcase {
 margin: 24px 0;
 overflow: hidden;
}

.eq-showcase__track {
 display: flex;
 gap: 20px;
 overflow-x: auto;
 scroll-snap-type: x mandatory;
 -webkit-overflow-scrolling: touch;
 padding: 8px 4px 16px;
 scrollbar-width: thin;
 scrollbar-color: var(--primary-color, #09CA8F) transparent;
}

.eq-showcase__track::-webkit-scrollbar {
 height: 6px;
}

.eq-showcase__track::-webkit-scrollbar-track {
 background: transparent;
}

.eq-showcase__track::-webkit-scrollbar-thumb {
 background: var(--primary-color, #09CA8F);
 border-radius: 3px;
}

.eq-showcase__card {
 flex: 0 0 280px;
 scroll-snap-align: start;
 background: #fff;
 border-radius: 12px;
 overflow: hidden;
 box-shadow: 0 2px 8px rgba(0,0,0,.06);
 transition: box-shadow .25s, transform .25s;
}

.eq-showcase__card:hover {
 box-shadow: 0 6px 20px rgba(0,0,0,.1);
 transform: translateY(-3px);
}

.eq-showcase__link {
 display: block;
 text-decoration: none;
 color: inherit;
}

.eq-showcase__media {
 aspect-ratio: 4/3;
 overflow: hidden;
 background: #f4f6f8;
}

.eq-showcase__img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 transition: transform .35s ease;
}

.eq-showcase__card:hover .eq-showcase__img {
 transform: scale(1.05);
}

.eq-showcase__img--ph {
 display: flex;
 align-items: center;
 justify-content: center;
 object-fit: unset;
}

.eq-showcase__body {
 padding: 14px 16px 18px;
}

.eq-showcase__title {
 font-size: 16px;
 font-weight: 700;
 margin: 0 0 4px;
 line-height: 1.3;
 color: var(--text-black, #1a1a1a);
 display: -webkit-box;
 -webkit-line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

.eq-showcase__desc {
 font-size: 13px;
 color: var(--text-light, #6b7785);
 line-height: 1.45;
 margin: 0;
 display: -webkit-box;
 -webkit-line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

@media (max-width: 599px) {
 .eq-showcase__card {
  flex: 0 0 240px;
 }
}

/* ==========================================================================
 TREATMENT SINGLE - POLISHED
 ========================================================================== */
.treatment-single {
 margin-bottom: 40px;
}

.treatment-single .entry-thumbnail {
 margin-bottom: 28px;
 border-radius: var(--radius, 7px);
 overflow: hidden;
}

.treatment-single .entry-thumbnail img {
 width: 100%;
 height: auto;
 display: block;
}

.treatment-section {
 margin-top: 40px;
 padding-top: 32px;
 border-top: 1px solid var(--border, #eee);
}

.treatment-section h2 {
 font-family: var(--font-alt, var(--font));
 font-size: clamp(20px, 2.5vw, 26px);
 font-weight: 700;
 margin-bottom: 20px;
 color: var(--text-black, #1a1a1a);
}

/* TOC sub-item indent (treatment page) */
.toc__item--sub {
 padding-left: 20px;
}

.toc__item--sub a {
 font-size: 14px;
}

/* Treatment single layout */
.treatment-single .single-layout {
 display: grid;
 grid-template-columns: 1fr 260px;
 gap: 40px;
 align-items: start;
}

@media (max-width: 991px) {
 .treatment-single .single-layout {
  grid-template-columns: 1fr;
 }
 .treatment-single .toc-sidebar {
  display: none;
 }
}

/* ==========================================================================
 FRONT PAGE - Section layout
 ========================================================================== */

.fp-section {
 padding: 96px 0;
}

.fp-section--alt {
 background: var(--bg-alt, #FAFAFA);
}

.fp-section__heading {
 font-family: var(--font-alt, 'Inter', sans-serif);
 font-size: clamp(22px, 3vw, 32px);
 font-weight: 700;
 color: var(--text-black, #1A1A1A);
 margin: 0 0 32px;
 display: flex;
 align-items: center;
 gap: 16px;
}

.fp-section__heading::after {
 content: '';
 flex: 1;
 height: 2px;
 background: linear-gradient(90deg, var(--primary-color, #09CA8F) 0%, transparent 100%);
 border-radius: 1px;
}

.fp-section__footer {
 margin-top: 24px;
 text-align: right;
}

.fp-link-all {
 display: inline-flex;
 align-items: center;
 gap: 4px;
 font-size: 15px;
 font-weight: 600;
 color: var(--primary-color, #09CA8F);
 transition: color 0.2s ease, gap 0.2s ease;
}

.fp-link-all:hover {
 color: var(--primary-hover, #08AB79);
 gap: 8px;
}

/* --- CTA Block --- */
.fp-cta {
 background: linear-gradient(135deg, #f0faf6 0%, #e8f8f2 50%, #dff5ee 100%);
 text-align: center;
}

.fp-cta__inner {
 max-width: 560px;
 margin: 0 auto;
}

.fp-cta__title {
 font-family: var(--font-alt, 'Inter', sans-serif);
 font-size: clamp(24px, 3.5vw, 36px);
 font-weight: 700;
 color: var(--text-black, #1A1A1A);
 margin: 0 0 12px;
}

.fp-cta__text {
 font-size: 16px;
 line-height: 1.6;
 color: var(--text, #4B4F58);
 margin: 0 0 24px;
}

.fp-cta__btn {
 padding: 14px 32px;
 font-size: 17px;
 font-weight: 600;
 border-radius: 10px;
}

.fp-cta__phone {
 margin-top: 16px;
 font-size: 14px;
 color: var(--text-light, #999);
}

.fp-cta__phone a {
 font-weight: 700;
 font-size: 16px;
 color: var(--text-dark, #3A3A3A);
 transition: color 0.2s;
}

.fp-cta__phone a:hover {
 color: var(--primary-color, #09CA8F);
}

/* --- Fade-in-on-scroll animation --- */
.fade-in-on-scroll {
 opacity: 0;
 transform: translateY(24px);
 transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in-on-scroll--visible {
 opacity: 1;
 transform: translateY(0);
}

/* --- Mobile spacing --- */
@media (max-width: 991px) {
 .fp-section {
  padding: 56px 0;
 }

 .fp-section__heading {
  margin-bottom: 24px;
 }
}


/* ==========================================================================
 EQUIPMENT CARDS - Horizontal scroll (homepage)
 ========================================================================== */

.equipment-scroll {
 display: flex;
 gap: 20px;
 overflow-x: auto;
 scroll-snap-type: x mandatory;
 -webkit-overflow-scrolling: touch;
 scrollbar-width: thin;
 scrollbar-color: var(--primary-color, #09CA8F) transparent;
 padding-bottom: 8px;
}

.equipment-scroll::-webkit-scrollbar {
 height: 4px;
}

.equipment-scroll::-webkit-scrollbar-track {
 background: transparent;
}

.equipment-scroll::-webkit-scrollbar-thumb {
 background: var(--primary-color, #09CA8F);
 border-radius: 2px;
}

.equipment-card {
 flex: 0 0 280px;
 scroll-snap-align: start;
 background: #fff;
 border-radius: var(--radius, 8px);
 overflow: hidden;
 box-shadow: var(--shadow, 0 4px 14px rgba(0,0,0,.08));
 transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.equipment-card:hover {
 box-shadow: var(--shadow-hover, 0 8px 24px rgba(0,0,0,.08));
 transform: translateY(-4px);
}

.equipment-card__link {
 display: block;
 text-decoration: none;
 color: inherit;
}

.equipment-card__media {
 position: relative;
 aspect-ratio: 4 / 3;
 overflow: hidden;
 background: var(--bg-alt, #FAFAFA);
}

.equipment-card__img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 transition: transform 0.4s ease;
}

.equipment-card:hover .equipment-card__img {
 transform: scale(1.04);
}

.equipment-card__img--placeholder {
 width: 100%;
 height: 100%;
 background: linear-gradient(135deg, #f0f7f4 0%, #e8f0ed 100%);
}

.equipment-card__body {
 padding: 16px;
}

.equipment-card__title {
 font-size: 16px;
 font-weight: 700;
 color: var(--text-dark, #3A3A3A);
 margin: 0 0 6px;
 line-height: 1.3;
}

.equipment-card__desc {
 font-size: 13px;
 line-height: 1.5;
 color: var(--text-light, #999);
 margin: 0;
 display: -webkit-box;
 -webkit-line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

@media (max-width: 640px) {
 .equipment-card {
  flex: 0 0 240px;
 }
}


/* ==========================================================================
 FRONT PAGE - Equipment Grid (2 columns, card style)
 ========================================================================== */

.fp-equip-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 24px;
}

.fp-equip-card {
 background: #fff;
 border: 1px solid #e9edf2;
 border-radius: var(--radius-card, 10px 0 10px 0);
 overflow: hidden;
 transition: box-shadow .25s, border-color .25s, transform .25s;
}

.fp-equip-card:hover {
 border-color: var(--primary-color, #09CA8F);
 box-shadow: 0 6px 24px rgba(9,202,143,.12);
 transform: translateY(-3px);
}

.fp-equip-card__link {
 display: flex;
 flex-direction: row;
 height: 100%;
 text-decoration: none;
 color: inherit;
}

.fp-equip-card__media {
 width: 240px;
 min-height: 180px;
 flex-shrink: 0;
 overflow: hidden;
 background: var(--bg-alt, #fafafa);
}

.fp-equip-card__img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
 transition: transform .4s ease;
}

.fp-equip-card:hover .fp-equip-card__img {
 transform: scale(1.04);
}

.fp-equip-card__img--ph {
 background: linear-gradient(135deg, #E8F8F2, #d8efe6);
}

.fp-equip-card__body {
 padding: 20px 24px;
 display: flex;
 flex-direction: column;
 flex: 1;
 justify-content: center;
}

.fp-equip-card__title {
 margin: 0 0 8px;
 font-size: 18px;
 font-weight: 700;
 color: #1a1a1a;
 line-height: 1.3;
}

.fp-equip-card__desc {
 font-size: 14px;
 line-height: 1.6;
 color: var(--text, #4B4F58);
 margin: 0 0 12px;
 display: -webkit-box;
 -webkit-line-clamp: 3;
 -webkit-box-orient: vertical;
 overflow: hidden;
 flex: 1;
}

.fp-equip-card__more {
 font-size: 14px;
 font-weight: 600;
 color: var(--primary-color, #09CA8F);
 transition: color .2s;
}

.fp-equip-card:hover .fp-equip-card__more {
 color: var(--primary-hover, #08AB79);
}

@media (max-width: 768px) {
 .fp-equip-grid {
  grid-template-columns: 1fr;
  gap: 16px;
 }
 .fp-equip-card__link {
  flex-direction: column;
 }
 .fp-equip-card__media {
  width: 100%;
  aspect-ratio: 16/9;
  min-height: auto;
  max-height: none;
 }
}


/* ==========================================================================
 FP DOCTORS SCROLL (горизонтальний скрол як акції)
 ========================================================================== */

.fp-doctors-scroll {
 display: flex;
 gap: 20px;
 overflow-x: auto;
 padding-bottom: 12px;
 scroll-snap-type: x mandatory;
 -webkit-overflow-scrolling: touch;
}

.fp-doctors-scroll .doctor-card {
 min-width: 220px;
 max-width: 260px;
 flex: 0 0 auto;
 scroll-snap-align: start;
}

/* Тонкий скролбар */
.fp-doctors-scroll::-webkit-scrollbar { height: 6px; }
.fp-doctors-scroll::-webkit-scrollbar-track { background: transparent; }
.fp-doctors-scroll::-webkit-scrollbar-thumb { background: var(--primary-color, #09CA8F); border-radius: 6px; }
.fp-doctors-scroll { scrollbar-color: var(--primary-color, #09CA8F) transparent; scrollbar-width: thin; }

@media (max-width: 768px) {
 .fp-doctors-scroll .doctor-card {
  min-width: 280px;
  max-width: 320px;
 }
}


/* ==========================================================================
 FP POSTS SCROLL (горизонтальний скрол статей)
 ========================================================================== */
.fp-posts-scroll {
 display: flex;
 gap: 20px;
 overflow-x: auto;
 padding-bottom: 12px;
 scroll-snap-type: x mandatory;
 -webkit-overflow-scrolling: touch;
}

.fp-posts-scroll .post-card {
 min-width: 260px;
 max-width: 300px;
 flex: 0 0 auto;
 scroll-snap-align: start;
}

.fp-posts-scroll::-webkit-scrollbar { height: 6px; }
.fp-posts-scroll::-webkit-scrollbar-track { background: transparent; }
.fp-posts-scroll::-webkit-scrollbar-thumb { background: var(--primary-color, #09CA8F); border-radius: 6px; }
.fp-posts-scroll { scrollbar-color: var(--primary-color, #09CA8F) transparent; scrollbar-width: thin; }

@media (max-width: 768px) {
 .fp-posts-scroll .post-card {
  min-width: 240px;
  max-width: 280px;
 }
}


/* ==========================================================================
 SEARCH RESULTS PAGE (grouped)
 ========================================================================== */
.search-results-count {
 font-size: 15px;
 color: var(--text-light);
 margin-top: 6px;
}

.search-results-form {
 max-width: 720px;
 margin: 24px 0 32px;
}

.search-form--page {
 position: relative;
 display: flex;
 align-items: center;
}
.search-form--page .search-form__input {
 flex: 1;
 padding: 14px 56px 14px 22px;
 font-size: 16px;
 border-radius: 12px;
 border: 2px solid var(--primary-color, #09CA8F);
 outline: none;
 transition: box-shadow .15s;
}
.search-form--page .search-form__input:focus {
 box-shadow: 0 0 0 4px rgba(9,202,143,.18);
}
.search-form--page .search-form__btn {
 position: absolute;
 right: 8px;
 top: 50%;
 transform: translateY(-50%);
 background: transparent;
 border: 0;
 padding: 8px;
 cursor: pointer;
 color: var(--primary-dark, #067A55);
}
.search-form--page .smart-search-dd {
 top: calc(100% + 6px);
 left: 0;
 right: 0;
}

.search-group {
 margin-bottom: 36px;
}

.search-group__title {
 font-size: 20px;
 font-weight: 800;
 color: var(--text-dark);
 margin: 0 0 16px;
 padding-bottom: 8px;
 border-bottom: 2px solid var(--primary-color);
 display: inline-block;
}

.search-group__count {
 font-size: 14px;
 font-weight: 500;
 color: var(--text-light);
}

/* Search list (services, prices) */
.search-list {
 display: flex;
 flex-direction: column;
 gap: 2px;
 background: #fff;
 border-radius: 12px;
 border: 1px solid #eef1f4;
 overflow: hidden;
}

.search-list__item {
 display: flex;
 align-items: center;
 gap: 12px;
 padding: 12px 16px;
 text-decoration: none !important;
 color: var(--text-dark);
 transition: background .15s;
 border-bottom: 1px solid #f5f7fa;
}

.search-list__item:last-child {
 border-bottom: none;
}

.search-list__item:hover {
 background: rgba(9,202,143,.04);
}

.search-list__thumb {
 width: 44px;
 height: 44px;
 border-radius: 8px;
 object-fit: cover;
 flex-shrink: 0;
}

.search-list__info {
 flex: 1;
 min-width: 0;
 display: flex;
 flex-direction: column;
}

.search-list__name {
 font-size: 15px;
 font-weight: 600;
 line-height: 1.3;
}

.search-list__parent {
 font-size: 12px;
 color: var(--text-light);
 margin-top: 2px;
}

.search-list__arrow {
 flex-shrink: 0;
 color: var(--text-light);
 transition: color .15s, transform .15s;
}

.search-list__item:hover .search-list__arrow {
 color: var(--primary-color);
 transform: translateX(2px);
}

/* Empty state */
.search-empty {
 text-align: center;
 padding: 60px 20px;
}

.search-empty svg {
 margin-bottom: 16px;
}

.search-empty p {
 font-size: 18px;
 color: var(--text);
 margin: 0 0 8px;
}

.search-empty__hint {
 font-size: 14px !important;
 color: var(--text-light) !important;
 margin-bottom: 20px !important;
}

@media (max-width: 599px) {
 .search-group__title { font-size: 17px; }
 .search-results-form { margin: 16px 0 24px; }
}


/* ==========================================================================
 FP NOTIFY (home page notification banner)
 ========================================================================== */
.fp-notify {
 margin: 20px 0 24px;
 border-radius: 16px;
 overflow: hidden;
 position: relative;
}

.fp-notify__inner {
 display: flex;
 align-items: center;
 gap: 32px;
 position: relative;
}

.fp-notify__content {
 flex: 1;
 min-width: 0;
}

.fp-notify__heading {
 display: flex;
 align-items: center;
 gap: 12px;
 margin-bottom: 10px;
}

.fp-notify__icon {
 width: 32px;
 height: 32px;
 flex-shrink: 0;
 display: inline-flex;
 align-items: center;
 justify-content: center;
}

.fp-notify__icon svg {
 width: 28px;
 height: 28px;
}

.fp-notify__title {
 font-size: 22px;
 font-weight: 800;
 margin: 0;
 line-height: 1.3;
}

.fp-notify__text {
 font-size: 15px;
 line-height: 1.65;
 opacity: .88;
}

.fp-notify__text p { margin: 0 0 6px; }
.fp-notify__text p:last-child { margin: 0; }
.fp-notify__text ul,
.fp-notify__text ol {
 margin: 8px 0;
 padding-left: 20px;
}
.fp-notify__text li { margin-bottom: 4px; }
.fp-notify__text strong { font-weight: 700; }
.fp-notify__text a { text-decoration: underline; text-underline-offset: 2px; }

/* Media (image) */
.fp-notify__media {
 flex: 0 0 200px;
 max-width: 200px;
}

.fp-notify__media img {
 width: 100%;
 height: auto;
 aspect-ratio: 650 / 450;
 border-radius: 12px;
 display: block;
}

/* --- Style: Info (teal) --- */
.fp-notify--info .fp-notify__inner {
 /* background and border removed стилі тепер на .fp-notify (single-wrap) */
}
.fp-notify--info .fp-notify__icon { color: #09CA8F; }
.fp-notify--info .fp-notify__title { color: #008786; }
.fp-notify--info .fp-notify__text { color: #3A3A3A; }
.fp-notify--info .fp-notify__text a { color: #008786; }

/* --- Style: Success (green) --- */
.fp-notify--success .fp-notify__inner { /* bg+border removed */ }
.fp-notify--success .fp-notify__icon { color: #10B981; }
.fp-notify--success .fp-notify__title { color: #065F46; }
.fp-notify--success .fp-notify__text { color: #3A3A3A; }
.fp-notify--success .fp-notify__text a { color: #059669; }

/* --- Style: Fire (orange) --- */
.fp-notify--fire .fp-notify__inner { /* bg+border removed */ }
.fp-notify--fire .fp-notify__icon { color: #F59E0B; }
.fp-notify--fire .fp-notify__title { color: #92400E; }
.fp-notify--fire .fp-notify__text { color: #3A3A3A; }
.fp-notify--fire .fp-notify__text a { color: #D97706; }

/* --- Style: Alert (red) --- */
.fp-notify--alert .fp-notify__inner { /* bg+border removed */ }
.fp-notify--alert .fp-notify__icon { color: #EF4444; }
.fp-notify--alert .fp-notify__title { color: #991B1B; }
.fp-notify--alert .fp-notify__text { color: #3A3A3A; }
.fp-notify--alert .fp-notify__text a { color: #DC2626; }

/* --- Style: Promo (gradient) --- */
.fp-notify--promo .fp-notify__inner { /* bg+border removed */ }
.fp-notify--promo .fp-notify__icon { color: #fff; }
.fp-notify--promo .fp-notify__title { color: #fff; }
.fp-notify--promo .fp-notify__text { color: rgba(255,255,255,.9); }
.fp-notify--promo .fp-notify__text a { color: #fff; }

/* Fade-in animation */
.fp-notify__text {
 animation: fpNotifyFadeUp .6s ease-out both;
 animation-delay: .15s;
}
.fp-notify__heading {
 animation: fpNotifyFadeUp .5s ease-out both;
}
.fp-notify__media {
 animation: fpNotifyFadeUp .6s ease-out both;
 animation-delay: .25s;
}

@keyframes fpNotifyFadeUp {
 from { opacity: 0; transform: translateY(12px); }
 to { opacity: 1; transform: translateY(0); }
}

/* Mobile */
@media (max-width: 599px) {
 .fp-notify { margin: 12px 0 16px; }
 .fp-notify__inner {
  flex-direction: column;
  padding: 20px;
  gap: 16px;
 }
 .fp-notify__media {
  flex: 0 0 auto;
  max-width: 100%;
 }
 .fp-notify__title { font-size: 18px; }
 .fp-notify__icon svg { width: 24px; height: 24px; }
}


/* ==========================================================================
 PREFERS REDUCED MOTION
 ========================================================================== */
@media (prefers-reduced-motion: reduce) {
 *,
 *::before,
 *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
 }

 .fade-in-on-scroll {
  opacity: 1;
  transform: none;
 }
}


/* ==========================================================================
 VACANCY / CAREERS
 ========================================================================== */

/* --- Why NOVAMED section --- */
.vacancy-why { margin: 48px 0; }
.vacancy-why__grid {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: 24px;
 margin-top: 24px;
}
.vacancy-why__card {
 background: #fff;
 border-radius: 16px;
 padding: 32px 24px;
 text-align: center;
 box-shadow: 0 2px 12px rgba(0,0,0,.06);
 transition: transform .2s ease, box-shadow .2s ease;
}
.vacancy-why__card:hover {
 transform: translateY(-4px);
 box-shadow: 0 8px 24px rgba(9,202,143,.12);
}
.vacancy-why__icon {
 margin-bottom: 16px;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 72px;
 height: 72px;
 margin-left: auto;
 margin-right: auto;
 background: rgba(9,202,143,.08);
 border-radius: 50%;
}
.vacancy-why__title {
 font-size: 17px;
 font-weight: 700;
 margin-bottom: 8px;
 color: #1a1a2e;
}
.vacancy-why__text {
 font-size: 14px;
 color: #666;
 line-height: 1.5;
 margin: 0;
}

/* --- Filter buttons --- */
.vacancy-filter {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin: 32px 0 24px;
}
.vacancy-filter__btn {
 display: inline-flex;
 align-items: center;
 gap: 6px;
 padding: 10px 20px;
 border: 1.5px solid #e0e0e0;
 border-radius: 999px;
 background: #fff;
 font-size: 14px;
 font-weight: 500;
 color: #444;
 cursor: pointer;
 transition: all .2s ease;
}
.vacancy-filter__btn:hover {
 border-color: var(--primary-color);
 color: var(--primary-color);
}
.vacancy-filter__btn--active {
 background: var(--primary-color);
 border-color: var(--primary-color);
 color: #fff;
}
.vacancy-filter__btn--active:hover {
 background: var(--primary-hover);
 border-color: var(--primary-hover);
 color: #fff;
}
.vacancy-filter__count {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 22px;
 height: 22px;
 padding: 0 6px;
 border-radius: 11px;
 background: rgba(0,0,0,.08);
 font-size: 12px;
 font-weight: 600;
}
.vacancy-filter__btn--active .vacancy-filter__count {
 background: rgba(255,255,255,.25);
}

/* --- Vacancy grid --- */
.vacancy-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 24px;
 margin-bottom: 48px;
}

/* --- Vacancy card --- */
.vacancy-card {
 background: #fff;
 border-radius: 16px;
 padding: 28px;
 box-shadow: 0 2px 12px rgba(0,0,0,.06);
 display: flex;
 flex-direction: column;
 transition: transform .2s ease, box-shadow .2s ease;
}
.vacancy-card:hover {
 transform: translateY(-3px);
 box-shadow: 0 8px 24px rgba(9,202,143,.1);
}
.vacancy-card[data-hidden="true"] {
 display: none;
}
.vacancy-card__header {
 display: flex;
 align-items: flex-start;
 justify-content: space-between;
 gap: 12px;
 margin-bottom: 16px;
}
.vacancy-card__title {
 font-size: 18px;
 font-weight: 700;
 margin: 0;
 line-height: 1.35;
}
.vacancy-card__title a {
 color: #1a1a2e;
 text-decoration: none;
}
.vacancy-card__title a:hover {
 color: var(--primary-color);
}
.vacancy-card__meta {
 display: flex;
 flex-wrap: wrap;
 gap: 16px;
 margin-bottom: 12px;
}
.vacancy-card__meta-item {
 display: inline-flex;
 align-items: center;
 gap: 5px;
 font-size: 13px;
 color: #666;
}
.vacancy-card__meta-item svg {
 flex-shrink: 0;
 color: #6f767e;
}
.vacancy-card__meta-item--salary {
 font-weight: 600;
 color: var(--primary-color);
}
.vacancy-card__meta-item--salary svg {
 color: var(--primary-color);
}
.vacancy-card__excerpt {
 font-size: 14px;
 color: #555;
 line-height: 1.5;
 margin-bottom: 16px;
 flex-grow: 1;
}
.vacancy-card__footer {
 margin-top: auto;
}

/* --- Vacancy badge --- */
.vacancy-badge {
 display: inline-flex;
 align-items: center;
 gap: 4px;
 padding: 4px 12px;
 border-radius: 999px;
 font-size: 12px;
 font-weight: 600;
 white-space: nowrap;
}
.vacancy-badge--dept {
 background: rgba(9,202,143,.1);
 color: #07a06e;
}
.vacancy-badge--type {
 background: #eef4ff;
 color: #3b6ce7;
}
.vacancy-badge--location {
 background: #f5f5f5;
 color: #666;
}
.vacancy-badge--closed {
 background: #ffeaea;
 color: #d32f2f;
}

/* --- Vacancy single --- */
.vacancy-single { margin-bottom: 48px; }
.vacancy-single__badges {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 margin-bottom: 24px;
}
.vacancy-single__grid {
 display: grid;
 grid-template-columns: 1fr 360px;
 gap: 40px;
 align-items: start;
}
.vacancy-single__content {}
.vacancy-single__salary,
.vacancy-single__experience {
 display: flex;
 align-items: center;
 gap: 8px;
 padding: 16px 20px;
 background: #f8fafb;
 border-radius: 12px;
 margin-bottom: 16px;
}
.vacancy-single__salary-label,
.vacancy-single__exp-label {
 font-size: 14px;
 color: #666;
}
.vacancy-single__salary-value {
 font-size: 22px;
 font-weight: 700;
 color: var(--primary-color);
}
.vacancy-single__exp-value {
 font-size: 16px;
 font-weight: 600;
 color: #1a1a2e;
}

/* --- Vacancy checklist --- */
.vacancy-checklist {
 margin: 32px 0;
}
.vacancy-checklist h2 {
 font-size: 20px;
 margin-bottom: 16px;
}
.vacancy-checklist__list {
 list-style: none;
 padding: 0;
 margin: 0;
}
.vacancy-checklist__item {
 display: flex;
 align-items: flex-start;
 gap: 10px;
 padding: 10px 0;
 font-size: 15px;
 color: #333;
 line-height: 1.5;
 border-bottom: 1px solid #f0f0f0;
}
.vacancy-checklist__item:last-child { border-bottom: none; }
.vacancy-checklist__icon {
 flex-shrink: 0;
 margin-top: 2px;
}

/* --- Vacancy apply card (sidebar) --- */
.vacancy-apply-card {
 background: #fff;
 border-radius: 16px;
 padding: 28px;
 box-shadow: 0 2px 16px rgba(0,0,0,.08);
 position: sticky;
 top: 100px;
}
.vacancy-apply-card__title {
 font-size: 18px;
 font-weight: 700;
 margin: 0 0 8px;
 color: #1a1a2e;
}
.vacancy-apply-card__text {
 font-size: 14px;
 color: #666;
 margin: 0 0 20px;
}

/* --- Vacancy CTA --- */
.vacancy-cta {
 margin: 48px 0;
}
.vacancy-cta__inner {
 background: linear-gradient(135deg, #f0fdf7 0%, #ecfdf5 100%);
 border: 1px solid rgba(9,202,143,.15);
 border-radius: 20px;
 padding: 48px;
 text-align: center;
}
.vacancy-cta__title {
 font-size: 28px;
 font-weight: 700;
 color: #1a1a2e;
 margin: 0 0 12px;
}
.vacancy-cta__text {
 font-size: 16px;
 color: #555;
 margin: 0 0 28px;
 max-width: 560px;
 margin-left: auto;
 margin-right: auto;
}
.vacancy-cta__form {
 max-width: 500px;
 margin: 0 auto;
}

/* --- Vacancy empty --- */
.vacancy-empty {
 text-align: center;
 padding: 48px 24px;
 color: #666;
 font-size: 16px;
}

/* --- Vacancy related --- */
.vacancy-related {
 margin-top: 48px;
 padding-top: 32px;
 border-top: 1px solid #eee;
}
.vacancy-related h2 {
 margin-bottom: 24px;
}
.vacancy-grid--related {
 margin-bottom: 0;
}

/* --- Responsive: Vacancy --- */
@media (max-width: 991px) {
 .vacancy-why__grid {
  grid-template-columns: repeat(2, 1fr);
 }
 .vacancy-single__grid {
  grid-template-columns: 1fr;
 }
 .vacancy-apply-card {
  position: static;
 }
}

@media (max-width: 767px) {
 .vacancy-why__grid {
  grid-template-columns: 1fr;
  gap: 16px;
 }
 .vacancy-why__card { padding: 24px 20px; }
 .vacancy-grid {
  grid-template-columns: 1fr;
  gap: 16px;
 }
 .vacancy-card { padding: 20px; }
 .vacancy-card__header { flex-direction: column; gap: 8px; }
 .vacancy-cta__inner { padding: 28px 20px; }
 .vacancy-cta__title { font-size: 22px; }
 .vacancy-single__salary-value { font-size: 18px; }
 .vacancy-filter { gap: 8px; }
 .vacancy-filter__btn { padding: 8px 14px; font-size: 13px; }
}


/* ==========================================================================
 DOCUMENTS
 ========================================================================== */

/* --- Document nav --- */
.document-nav {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin: 32px 0 24px;
}
.document-nav__btn {
 display: inline-block;
 padding: 10px 20px;
 border: 1.5px solid #e0e0e0;
 border-radius: 999px;
 font-size: 14px;
 font-weight: 500;
 color: #444;
 text-decoration: none;
 transition: all .2s ease;
}
.document-nav__btn:hover {
 border-color: var(--primary-color);
 color: var(--primary-color);
}

/* --- Document section --- */
.document-section {
 margin-bottom: 40px;
}
.document-section__title {
 font-size: 22px;
 font-weight: 700;
 margin-bottom: 20px;
 padding-bottom: 12px;
 border-bottom: 2px solid var(--primary-color);
 display: inline-block;
}

/* --- Document grid --- */
.document-grid {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 20px;
}

/* --- Document card --- */
.document-card {
 display: flex;
 align-items: center;
 gap: 16px;
 background: #fff;
 border-radius: 12px;
 padding: 20px;
 box-shadow: 0 2px 8px rgba(0,0,0,.05);
 transition: transform .2s ease, box-shadow .2s ease;
}
.document-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 6px 16px rgba(9,202,143,.1);
}
.document-card__icon {
 flex-shrink: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 64px;
 height: 64px;
 background: rgba(9,202,143,.06);
 border-radius: 12px;
}
.document-card__body { flex: 1; min-width: 0; }
.document-card__title {
 font-size: 15px;
 font-weight: 600;
 margin: 0 0 6px;
 line-height: 1.35;
}
.document-card__title a {
 color: #1a1a2e;
 text-decoration: none;
}
.document-card__title a:hover {
 color: var(--primary-color);
}
.document-card__meta {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 font-size: 12px;
 color: #888;
}
.document-card__type {
 background: rgba(9,202,143,.1);
 color: #07a06e;
 padding: 2px 8px;
 border-radius: 4px;
 font-weight: 500;
}
.document-card__download {
 flex-shrink: 0;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 border-radius: 50%;
 background: var(--primary-color);
 color: #fff;
 transition: background .2s ease;
}
.document-card__download:hover {
 background: var(--primary-hover);
}

/* --- Document single --- */
.document-single { margin-bottom: 48px; }
.document-single__meta {
 display: flex;
 flex-wrap: wrap;
 gap: 24px;
 padding: 20px 24px;
 background: #f8fafb;
 border-radius: 12px;
 margin-bottom: 24px;
}
.document-single__meta-item {
 display: flex;
 align-items: center;
 gap: 6px;
}
.document-single__meta-label {
 font-size: 14px;
 color: #888;
}
.document-single__meta-value {
 font-size: 14px;
 font-weight: 600;
 color: #1a1a2e;
}
.document-single__actions {
 margin-bottom: 24px;
}
.document-single__actions .btn-primary {
 display: inline-flex;
 align-items: center;
 gap: 8px;
}

/* --- Document viewer --- */
.document-viewer {
 margin: 24px 0 32px;
 border-radius: 12px;
 overflow: hidden;
 border: 1px solid #e0e0e0;
}
.document-viewer object {
 display: block;
}

/* --- Document related --- */
.document-related {
 margin-top: 48px;
 padding-top: 32px;
 border-top: 1px solid #eee;
}
.document-related h2 {
 margin-bottom: 24px;
}

/* --- Responsive: Documents --- */
@media (max-width: 767px) {
 .document-grid {
  grid-template-columns: 1fr;
  gap: 12px;
 }
 .document-card { padding: 16px; gap: 12px; }
 .document-card__icon { width: 48px; height: 48px; }
 .document-card__icon svg { width: 32px; height: 32px; }
 .document-single__meta { flex-direction: column; gap: 12px; }
 .document-viewer object { height: 500px; }
}

/* ==========================================================================
 E-E-A-T: AUTHOR BOX & MEDICAL REVIEWER BADGE
 ========================================================================== */

.author-box {
 display: flex;
 gap: 20px;
 align-items: flex-start;
 padding: 24px;
 margin-top: 40px;
 background: var(--aic-color-surface, #f8fafb);
 border: 1px solid var(--aic-color-border, #e2e8f0);
 border-radius: 12px;
 border-left: 4px solid var(--primary-color, #0aa674);
}

.author-box__photo {
 flex-shrink: 0;
}

.author-box__img {
 width: 80px;
 height: 80px;
 border-radius: 50%;
 object-fit: cover;
 display: block;
}

.author-box__img--placeholder {
 width: 80px;
 height: 80px;
 border-radius: 50%;
 background: var(--primary-color, #0aa674);
 color: #fff;
 display: flex;
 align-items: center;
 justify-content: center;
 font-size: 28px;
 font-weight: 700;
 text-decoration: none;
}

.author-box__info {
 flex: 1;
 min-width: 0;
}

.author-box__name {
 margin: 6px 0 4px;
 font-size: 18px;
 font-weight: 700;
 line-height: 1.3;
}

.author-box__name a {
 color: var(--aic-color-heading, #1a2332);
 text-decoration: none;
}

.author-box__name a:hover {
 color: var(--primary-color, #0aa674);
}

.author-box__position {
 font-size: 14px;
 color: var(--aic-color-muted, #5b6770);
 margin-bottom: 2px;
}

.author-box__specialty {
 font-size: 13px;
 color: var(--aic-color-muted, #5b6770);
}

.author-box__experience {
 font-size: 13px;
 color: var(--aic-color-muted, #5b6770);
 margin-top: 2px;
}

.author-box__reviewed {
 font-size: 12px;
 color: var(--aic-color-muted, #8896a4);
 margin-top: 6px;
}

.author-box__bio {
 font-size: 14px;
 color: var(--aic-color-text, #333);
 line-height: 1.5;
 margin-top: 4px;
}

.author-box__link {
 display: inline-block;
 margin-top: 8px;
 font-size: 14px;
 font-weight: 600;
 color: var(--primary-color, #0aa674);
 text-decoration: none;
}

.author-box__link:hover {
 text-decoration: underline;
}

/* Medical Reviewer Badge */
.medical-reviewer-badge {
 display: inline-block;
 padding: 3px 10px;
 font-size: 11px;
 font-weight: 700;
 text-transform: uppercase;
 letter-spacing: 0.05em;
 color: #fff;
 background: #16a34a;
 border-radius: 4px;
 line-height: 1.5;
}

.medical-reviewer-badge--author {
 background: var(--primary-color, #0aa674);
}

/* ==========================================================================
 FAQ ARCHIVE
 ========================================================================== */
.faq-filter { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 24px; }
.faq-filter__btn { padding:8px 18px; border:1px solid #e0e0e0; border-radius:20px; background:#fff; cursor:pointer; font-size:14px; font-weight:500; transition:all .2s; display:inline-flex; align-items:center; gap:6px; }
.faq-filter__btn:hover, .faq-filter__btn--active { background:var(--primary-color); color:#fff; border-color:var(--primary-color); }
.faq-filter__count { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; padding:0 6px; border-radius:11px; background:rgba(0,0,0,.08); font-size:12px; font-weight:600; }
.faq-filter__btn--active .faq-filter__count { background:rgba(255,255,255,.25); }

.faq-search { margin:0 0 32px; }
.faq-search__input { width:100%; padding:14px 20px; border:2px solid #e8f3ed; border-radius:12px; font-size:15px; outline:none; transition:border-color .2s; }
.faq-search__input:focus { border-color:var(--primary-color); }

.faq-group { margin:0 0 40px; }
.faq-group__title { font-size:22px; font-weight:700; margin:0 0 16px; padding-bottom:12px; border-bottom:2px solid var(--primary-color); display:inline-block; }

.faq-accordion { display:flex; flex-direction:column; gap:8px; }
.faq-item { border:1px solid #e8f3ed; border-radius:10px; overflow:hidden; transition:border-color .2s; }
.faq-item[open] { border-color:var(--primary-color); }
.faq-item__question { padding:18px 20px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:12px; font-weight:600; font-size:15px; color:#222; list-style:none; }
.faq-item__question::-webkit-details-marker { display:none; }
.faq-item__question::marker { display:none; content:''; }
.faq-item__icon { flex-shrink:0; transition:transform .2s; color:var(--primary-color); }
.faq-item[open] .faq-item__icon { transform:rotate(180deg); }
.faq-item__answer { padding:0 20px 18px; color:#555; line-height:1.7; font-size:14px; }
.faq-item__answer p { margin:0 0 8px; }
.faq-item__answer p:last-child { margin:0; }

.faq-cta { text-align:center; padding:48px 20px; background:linear-gradient(135deg,#f0faf7,#f8fffe); border-radius:16px; margin:40px 0; }
.faq-cta h2 { margin:0 0 8px; }
.faq-cta p { color:#666; margin:0 0 20px; }

.faq-group.hidden { display:none; }
.faq-item.hidden { display:none; }

@media (max-width:767px) {
 .faq-filter { gap:6px; }
 .faq-filter__btn { padding:6px 14px; font-size:13px; }
 .faq-item__question { padding:14px 16px; font-size:14px; }
 .faq-item__answer { padding:0 16px 14px; font-size:13px; }
 .faq-cta { padding:32px 16px; }
 .faq-group__title { font-size:19px; }
}

/* --- Responsive: Author Box --- */
@media (max-width: 576px) {
 .author-box {
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
  padding: 20px 16px;
 }
 .author-box__img,
 .author-box__img--placeholder {
  width: 64px;
  height: 64px;
 }
}

/* ==========================================================================
 Legal Compliance ЗУ "Про рекламу" ст.21 disclaimer block
 Used on sale/promo pages and footer. CSS class: .aic-disclaimer-selfmed
 ========================================================================== */
.aic-disclaimer-selfmed {
 display: flex;
 align-items: flex-start;
 gap: 8px;
 background: #f3f4f6;
 border-left: 3px solid #9ca3af;
 border-radius: 0 6px 6px 0;
 padding: 10px 14px;
 margin: 16px 0;
 font-size: 12px;
 color: #6b7280;
 line-height: 1.55;
 /* Visible width >= 15% of parent per ст.21 requirements */
 min-width: 15%;
}
.aic-disclaimer-selfmed svg {
 flex-shrink: 0;
 margin-top: 1px;
 color: #9ca3af;
}
.aic-disclaimer-selfmed span {
 flex: 1;
}


/* ==============================================
 * Non-critical styles (moved from critical.css)
 * ============================================== */

/* --- Equipment Showcase (single-service) --- */
.equipment-showcase {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 16px;
}
.equipment-showcase__card {
  display: flex;
  gap: 24px;
  padding: 20px;
  background: linear-gradient(135deg, #f0faf7 0%, #f8fffe 100%);
  border: 1px solid #e0f2ec;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  transition: transform .2s, box-shadow .2s;
  align-items: center;
}
.equipment-showcase__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(9, 202, 143, 0.12);
  border-color: var(--primary-color);
}
.equipment-showcase__media {
  flex-shrink: 0;
  width: 200px;
  height: 150px;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.equipment-showcase__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8px;
}
.equipment-showcase__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.equipment-showcase__title {
  font-size: 18px;
  font-weight: 700;
  color: #222;
  margin: 0;
}
.equipment-showcase__desc {
  font-size: 14px;
  color: #666;
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.equipment-showcase__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--primary-color);
  margin-top: auto;
}
.equipment-showcase__card:hover .equipment-showcase__link {
  text-decoration: underline;
}
@media (max-width: 767px) {
  .equipment-showcase__card {
    flex-direction: column;
    align-items: stretch;
  }
  .equipment-showcase__media {
    width: 100%;
    height: 180px;
  }
}

/* --- Direction Cards (service subcategories) --- */
.direction-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin: 20px 0 32px;
}
.direction-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  background: #fff;
  border: 1px solid #e8f5ef;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  transition: all .25s ease;
  position: relative;
}
.direction-card:hover {
  border-color: var(--primary-color);
  box-shadow: 0 6px 20px rgba(9, 202, 143, 0.12);
  transform: translateY(-2px);
}
.direction-card__icon {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #e8f9f2 0%, #f0fdf8 100%);
  border-radius: 12px;
}
.direction-card__icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}
.direction-card__content {
  flex: 1;
  min-width: 0;
}
.direction-card__title {
  font-size: 15px;
  font-weight: 700;
  color: #222;
  margin: 0 0 4px;
  line-height: 1.3;
}
.direction-card:hover .direction-card__title {
  color: var(--primary-color);
}
.direction-card__desc {
  font-size: 13px;
  color: #888;
  margin: 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.direction-card__arrow {
  flex-shrink: 0;
  opacity: 0;
  transform: translateX(-4px);
  transition: all .25s ease;
}
.direction-card:hover .direction-card__arrow {
  opacity: 1;
  transform: translateX(0);
}
@media (max-width: 767px) {
  .direction-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .direction-card {
    padding: 16px;
  }
  .direction-card__icon {
    width: 44px;
    height: 44px;
  }
  .direction-card__arrow {
    opacity: 1;
  }
}

/* ==========================================================================
  CITY POPUP MODAL
  ========================================================================== */

.city-popup-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
  color: inherit;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background .2s;
  white-space: nowrap;
}
.city-popup-trigger:hover {
  background: rgba(9, 202, 143, .08);
}
.city-popup-trigger--topbar {
  font-size: 13px;
  padding: 2px 6px;
}

.city-popup-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s, visibility .25s;
}
.city-popup-overlay--open {
  opacity: 1;
  visibility: visible;
}

.city-popup {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,.2);
  width: 90%;
  max-width: 520px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  transform: translateY(20px) scale(.97);
  transition: transform .3s cubic-bezier(.22,.68,0,1.1);
  overflow: hidden;
}
.city-popup-overlay--open .city-popup {
  transform: translateY(0) scale(1);
}

.city-popup__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 12px;
}
.city-popup__header h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: var(--heading-color, #1a1a1a);
}
.city-popup__close {
  width: 36px;
  height: 36px;
  border: none;
  background: #f5f5f5;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666;
  transition: background .2s, color .2s;
}
.city-popup__close:hover {
  background: #e8e8e8;
  color: #333;
}

.city-popup__search {
  margin: 0 24px 12px;
  padding: 10px 14px;
  border: 1.5px solid #e0e0e0;
  border-radius: 10px;
  font-size: 15px;
  outline: none;
  transition: border-color .2s;
  width: calc(100% - 48px);
}
.city-popup__search:focus {
  border-color: var(--primary-color, #09CA8F);
}

.city-popup__list {
  overflow-y: auto;
  padding: 0 16px 16px;
  flex: 1;
}
.city-popup__item {
  display: block;
  padding: 14px 16px;
  border-radius: 12px;
  text-decoration: none;
  color: var(--text-color, #333);
  transition: background .15s;
  margin-bottom: 4px;
}
.city-popup__item:hover {
  background: #f7faf9;
}
.city-popup__item--active {
  background: rgba(9, 202, 143, .06);
  border: 1.5px solid rgba(9, 202, 143, .25);
}
.city-popup__item--active:hover {
  background: rgba(9, 202, 143, .1);
}

.city-popup__city-name {
  font-weight: 600;
  font-size: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--heading-color, #1a1a1a);
}
.city-popup__city-name svg {
  flex-shrink: 0;
  stroke: var(--primary-color, #09CA8F);
}
.city-popup__badge {
  font-size: 11px;
  font-weight: 600;
  background: var(--primary-color, #09CA8F);
  color: #fff;
  padding: 2px 8px;
  border-radius: 20px;
  margin-left: auto;
}
.city-popup__city-info {
  font-size: 13px;
  color: #777;
  margin-top: 4px;
  padding-left: 24px;
}
.city-popup__city-phone {
  font-size: 13px;
  color: var(--primary-color, #09CA8F);
  font-weight: 500;
  margin-top: 2px;
  padding-left: 24px;
}

@media (max-width: 600px) {
  .city-popup {
    width: 100%;
    max-width: 100%;
    max-height: 100vh;
    border-radius: 0;
    height: 100%;
  }
  .city-popup__header {
    padding: 16px 16px 10px;
  }
  .city-popup__search {
    margin: 0 16px 10px;
    width: calc(100% - 32px);
  }
  .city-popup__list {
    padding: 0 8px 8px;
  }
}



/* === Single post: share buttons ============================== */
.entry-share {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--novamed-line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.entry-share__label {
  font-weight: 600;
  color: var(--novamed-text);
  font-size: 14px;
}
.entry-share__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.entry-share__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--novamed-line);
  border-radius: 999px;
  color: var(--novamed-text);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s, transform .15s;
}
.entry-share__btn:hover {
  background: var(--novamed-info-bg);
  border-color: var(--novamed-primary);
  color: var(--novamed-primary-deep);
  transform: translateY(-1px);
}
.entry-share__btn--fb:hover { background: #1877f2; color: #fff; border-color: #1877f2; }
.entry-share__btn--tg:hover { background: #229ED9; color: #fff; border-color: #229ED9; }
.entry-share__btn--vb:hover { background: #7360F2; color: #fff; border-color: #7360F2; }
.entry-share__btn--wa:hover { background: #25D366; color: #fff; border-color: #25D366; }
.entry-share__btn--x:hover { background: #000;  color: #fff; border-color: #000;  }
.entry-share__btn.is-copied { background: var(--novamed-success-bg); border-color: var(--novamed-success); color: var(--novamed-success); }
@media (max-width: 480px) {
  .entry-share { gap: 10px; }
  .entry-share__btn { padding: 7px 11px; font-size: 12px; }
}

/* === btn-primary text safety: завжди білий, без underline ====== */
.btn-primary,
.btn-primary:link,
.btn-primary:visited,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-primary:active {
  color: #fff !important;
  text-decoration: none !important;
  border-bottom: none !important;
}
.btn-primary:hover,
.btn-primary:focus-visible {
  background: var(--primary-hover, #08AB79) !important;
}
.btn-primary > * { color: inherit !important; }

/* === Doctors archive mobile: column, без горизонтального скрола ============ */
@media (max-width: 599px) {
  body.post-type-archive-doctor .doctors-grid,
  body.post-type-archive-vrachi .doctors-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    overflow-x: visible !important;
    scroll-snap-type: none !important;
    padding-bottom: 0 !important;
  }
  body.post-type-archive-doctor .doctors-grid .doctor-card,
  body.post-type-archive-vrachi .doctors-grid .doctor-card {
    min-width: 0 !important;
    max-width: 100% !important;
    flex: initial !important;
    scroll-snap-align: none !important;
    width: 100%;
  }
}

/* === Post disclaimer (заміна author-box) ====================== */
.post-disclaimer {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin: 32px 0 24px;
  padding: 18px 22px;
  background: var(--novamed-info-bg, #E8F8F2);
  border: 1px solid var(--novamed-info, #008786);
  border-left-width: 4px;
  border-radius: 12px;
  color: var(--novamed-text, #4B4F58);
  font-size: 14.5px;
  line-height: 1.55;
}
.post-disclaimer__icon {
  flex: 0 0 auto;
  color: var(--novamed-primary-deep, #008786);
  margin-top: 2px;
}
.post-disclaimer__body { flex: 1; min-width: 0; }
.post-disclaimer__title {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 700;
  color: var(--novamed-primary-deep, #008786);
}
.post-disclaimer p { margin: 0 0 8px; }
.post-disclaimer__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  margin-top: 10px !important;
}
.post-disclaimer__links strong { color: var(--novamed-text, #4B4F58); margin-right: 4px; }
.post-disclaimer__links a {
  color: var(--novamed-primary-deep, #008786);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
}
.post-disclaimer__links a:hover { color: var(--novamed-primary, #09CA8F); }
@media (max-width: 600px) {
  .post-disclaimer { flex-direction: column; gap: 8px; padding: 16px; }
  .post-disclaimer__icon { margin-top: 0; }
  .post-disclaimer__title { font-size: 15px; }
}

/* ===== Footer row layout (was missing - phone/icon/schedule lines) ===== */
.footer-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 6px 0;
  font-size: 14px;
  line-height: 1.4;
  color: #334155;
}
.footer-row svg { flex-shrink: 0; color: var(--primary-color, #09CA8F); }
.footer-row a { color: inherit; text-decoration: none; transition: color .15s; }
.footer-row a:hover { color: var(--primary-color, #09CA8F); }
.footer-row--muted { color: #64748b; }
.footer-row--muted svg { color: #94a3b8; }
.footer-route-link {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  color: var(--primary-color, #09CA8F);
  text-decoration: none;
  vertical-align: middle;
}
.footer-route-link:hover { color: var(--primary-hover, #08AB79); }

/* ===== Footer socials (was missing - icon row) ===== */
.footer-socials {
  display: flex;
  list-style: none;
  gap: 10px;
  padding: 0;
  margin: 14px 0 0;
}
.footer-socials li { padding: 0; }
.footer-socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(9, 202, 143, .08);
  color: var(--primary-color, #09CA8F);
  transition: background .15s, color .15s, transform .15s;
}
.footer-socials a:hover {
  background: var(--primary-color, #09CA8F);
  color: #fff;
  transform: translateY(-1px);
}

/* ===== Footer CTA button + brand + app-promo ===== */
.footer-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 22px;
  background: var(--primary-color, #09CA8F);
  color: #fff;
  border-radius: 999px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  margin: 12px 0 8px;
  transition: background .15s, transform .15s;
}
.footer-cta:hover { background: var(--primary-hover, #08AB79); transform: translateY(-1px); color: #fff; }
.footer-brand-logo { display: inline-block; }
.footer-brand-logo img { display: block; max-width: 140px; height: auto; }
.f-col .tagline { font-size: 13px; color: #64748b; margin: 10px 0; line-height: 1.5; }

.app-promo { margin-top: 18px; padding: 14px; background: #f1f5f9; border-radius: 12px; }
.app-promo h4 { font-size: 14px; font-weight: 600; margin: 0 0 10px; color: #0f172a; }
.app-promo__desc { font-size: 12px; color: #64748b; margin: 10px 0 0; line-height: 1.5; }
.app-promo__desc a { color: var(--primary-color, #09CA8F); text-decoration: none; }
.app-promo__desc a:hover { color: var(--primary-hover, #08AB79); }
.app-promo .store-badges { display: flex; flex-direction: column; gap: 8px; }
.app-promo .store-badge img { display: block; width: 100%; max-width: 150px; height: auto; }

/* ===== City popup overlay (was visible by default - missing CSS) ===== */
.city-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .55);
  z-index: 9990;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  transition: opacity .2s;
}
.city-popup-overlay.is-active,
.city-popup-overlay.active,
.city-popup-overlay--open {
  display: flex;
  opacity: 1;
}
.city-popup {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  max-width: 480px;
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
  position: relative;
}
.city-popup__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.city-popup__title { font-size: 20px; font-weight: 700; color: #0f172a; }
.city-popup__close {
  background: none;
  border: none;
  font-size: 24px;
  cursor: pointer;
  color: #94a3b8;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s;
}
.city-popup__close:hover { background: #f1f5f9; color: #0f172a; }
.city-popup-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(9, 202, 143, .08);
  border: 1px solid rgba(9, 202, 143, .35);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 700;
  /* WCAG AA: #067A55 on #f0faf7 = 5.35:1 (passes 4.5:1) */
  color: var(--primary-dark, #067A55);
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.city-popup-trigger:hover { background: rgba(9, 202, 143, .15); border-color: var(--primary-dark, #067A55); }
.city-popup-trigger svg { color: var(--primary-dark, #067A55); }

/* ===== Footer legal nav (Privacy / Offer / Consent / Complaints / License) ===== */
.footer-legal-nav {
  width: 100%;
  padding: 12px 0;
  border-top: 1px solid rgba(15, 23, 42, .08);
}
.footer-legal-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 14px;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
}
.footer-legal-list > li {
  margin: 0;
  padding: 0;
}
.footer-legal-list > li.sep {
  color: #cbd5e1;
  user-select: none;
  font-weight: 300;
}
.footer-legal-list a,
.footer-legal-list button.a11y-trigger-inline {
  color: #64748b;
  text-decoration: none;
  background: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: color .15s;
}
.footer-legal-list a:hover,
.footer-legal-list button.a11y-trigger-inline:hover {
  color: var(--primary-dark, #067A55);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 640px) {
  .footer-legal-list { gap: 4px 10px; font-size: 12.5px; }
  .footer-legal-list > li.sep { display: none; }
}
