/* Component internals only. Section spacing remains native SP Page Builder. */
.kg-doctor-directory,.kg-reviews-carousel { --kg-ink:#173e60; --kg-muted:#496c85; --kg-blue:#009fcc; --kg-border:#cde5f5; color:var(--kg-ink); min-width:0; }
.kg-doctor-directory *, .kg-reviews-carousel * { box-sizing:border-box; }
.kg-doctor-directory [hidden],.kg-reviews-carousel [hidden] { display:none!important; }
.kg-doctor-directory .kg-directory-filters { display:grid; grid-template-columns:1fr 1fr auto; gap:18px; align-items:end; margin-bottom:28px; }
.kg-doctor-directory label { display:block; font-weight:600; }
.kg-doctor-directory select { display:block; width:100%; max-width:100%; min-height:48px; margin-top:8px; padding:12px 36px 12px 14px; background:#fff; color:var(--kg-ink); border:1px solid var(--kg-border); border-radius:10px; font:inherit; text-overflow:ellipsis; }
.kg-doctor-directory [data-count] { color:var(--kg-muted); margin:0 0 24px; }
.kg-doctor-directory .kg-doctor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:28px; row-gap:36px; align-items:stretch; }
.kg-doctor-directory [data-doctor-card] { min-width:0; position:relative; margin-top:76px; padding:0 28px 28px; background:#fff; border:1px solid #e4eff7; border-radius:16px; box-shadow:0 16px 40px #173e6009; display:flex; flex-direction:column; }
.kg-doctor-directory .kg-doctor-portrait { display:block; width:min(180px,78%); aspect-ratio:1; object-fit:cover; object-position:center 18%; border-radius:50%; margin:-76px auto 24px; background:#e0f1fb; }
.kg-doctor-directory .kg-doctor-placeholder { display:grid; place-items:center; color:#496c85; font-size:48px; font-weight:600; border:1px solid #cde5f5; }
.kg-doctor-directory .kg-doctor-name { font-size:clamp(20px,1.5vw,24px); line-height:1.3; margin:0 0 12px; overflow-wrap:anywhere; hyphens:none; }
.kg-doctor-directory .kg-doctor-specialty { margin:0 0 16px; color:var(--kg-muted); line-height:1.5; }
.kg-doctor-directory .kg-doctor-address { margin:0 0 24px; line-height:1.5; font-style:normal; overflow-wrap:anywhere; }
.kg-doctor-directory .kg-doctor-link { margin-top:auto; align-self:flex-start; }
.kg-doctor-directory .kg-directory-more { margin-top:30px; text-align:center; }
.kg-doctor-directory .kg-filter-reset,.kg-reviews-carousel .kg-review-arrow { min-width:44px; min-height:44px; border:1px solid var(--kg-border); border-radius:10px; color:var(--kg-ink); background:#fff; padding:10px 16px; font:inherit; cursor:pointer; }
.kg-doctor-directory :is(a,button,select):focus-visible,.kg-reviews-carousel :is(a,button,summary,[tabindex]):focus-visible { outline:3px solid #00678b; outline-offset:4px; }
.kg-reviews-carousel .kg-reviews-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 48px)/3); gap:24px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scroll-padding-inline:2px; padding:6px 2px 18px; scrollbar-width:thin; }
.kg-reviews-carousel .kg-review-slide { min-width:0; scroll-snap-align:start; padding:28px; border:1px solid var(--kg-border); border-radius:16px; background:#fff; overflow-wrap:anywhere; align-self:start; }
.kg-reviews-carousel blockquote { margin:16px 0; border:0; padding:0; font:inherit; color:var(--kg-ink); }
.kg-reviews-carousel .kg-review-author { margin:0; font-size:20px; font-weight:700; }
.kg-reviews-carousel .kg-review-source { color:#006d97; text-decoration:underline; }
.kg-reviews-carousel summary { color:#006d97; cursor:pointer; padding-block:8px; }
.kg-reviews-carousel .kg-review-controls { display:flex; justify-content:flex-end; gap:12px; margin-top:16px; }
.kg-reviews-carousel .kg-review-arrow:disabled { opacity:.4; cursor:default; }
@media(max-width:991px) { .kg-doctor-directory .kg-doctor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .kg-reviews-carousel .kg-reviews-track { grid-auto-columns:calc((100% - 24px)/2); } }
@media(max-width:600px) { .kg-doctor-directory .kg-directory-filters { grid-template-columns:1fr; gap:16px; } .kg-doctor-directory .kg-doctor-grid { grid-template-columns:minmax(0,1fr); } .kg-doctor-directory [data-doctor-card] { padding-inline:24px; } .kg-reviews-carousel .kg-reviews-track { grid-auto-columns:92%; gap:16px; } .kg-reviews-carousel .kg-review-slide { padding:24px; } }
@media(prefers-reduced-motion:reduce) { .kg-reviews-carousel .kg-reviews-track { scroll-behavior:auto; } }
