/* KWNY Two Clinics widget — every rule is scoped to .kwny-loc, nothing else on the site is touched. */

.kwny-loc{
  --kl-green: var(--e-global-color-primary,   #035E39);
  --kl-deep:  var(--e-global-color-5aa2f98,   #023822);
  --kl-ink:   var(--e-global-color-secondary, #00140E);
  --kl-body:  var(--e-global-color-7eb3ab0,   #4B5A50);
  --kl-bg:    #E8EFE9;                 /* mint band */
  --kl-card:  #FFFFFF;
  --kl-pill:  #DCE7DF;
  --kl-line:  #E2EAE4;
  --kl-serif: var(--e-global-typography-primary-font-family, "Test Financier"), Georgia, serif;
  --kl-sans:  var(--e-global-typography-text-font-family, "Inter"), Arial, sans-serif;

  display: block;
  background-color: var(--kl-bg);
  padding: 76px 0;
  font-family: var(--kl-sans);
  box-sizing: border-box;
}

/* full-width breakout (switch in the widget) — scrollbar-safe */
.kwny-loc-full-yes .kwny-loc{
  width: calc(100vw - var(--kwny-sb, 0px));
  max-width: calc(100vw - var(--kwny-sb, 0px));
  margin-left: calc(50% - 50vw + (var(--kwny-sb, 0px) / 2));
  margin-right: calc(50% - 50vw + (var(--kwny-sb, 0px) / 2));
}
.kwny-loc *,
.kwny-loc *::before,
.kwny-loc *::after{ box-sizing: border-box; }

.kwny-loc .kwny-loc__inner{
  display: block;                 /* never inherit a flex/grid row from the theme or container */
  float: none;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
/* if a parent ever turns this into a flex/grid row, each block still takes a full row */
.kwny-loc .kwny-loc__title,
.kwny-loc .kwny-loc__sub,
.kwny-loc .kwny-loc__grid,
.kwny-loc .kwny-loc__note{
  width: 100%;
  flex: 0 0 100%;
  grid-column: 1 / -1;
}

/* ---------- heading ---------- */
.kwny-loc .kwny-loc__title{
  margin: 0 0 12px;
  padding: 0;
  text-align: center;
  font-family: var(--kl-serif);
  font-weight: 400;
  font-size: var(--e-global-typography-1179395-font-size, clamp(1.875rem, 1.5865rem + 1.2821vw, 3.125rem));
  line-height: 1.3em;
  letter-spacing: -0.01em;
  color: var(--kl-ink);
}
.kwny-loc .kwny-loc__title em{ font-style: italic; color: var(--kl-green); }
.kwny-loc .kwny-loc__sub{
  margin: 0 auto 40px;
  padding: 0;
  max-width: 70ch;
  text-align: center;
  font-size: var(--e-global-typography-text-font-size, clamp(1rem, .9712rem + .1282vw, 1.125rem));
  line-height: 1.65;
  color: var(--kl-body);
}

/* ---------- cards ---------- */
.kwny-loc__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.kwny-loc__card{
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  border-radius: 12px;
  background-color: var(--kl-card);
  overflow: hidden;
}
.kwny-loc__card::before,
.kwny-loc__card::marker{ content: none; }

/* photo */
.kwny-loc__media{
  margin: 0;
  aspect-ratio: 16 / 10;
  background-color: #E4E9E8;
}
.kwny-loc__media img{
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
  object-fit: cover;
}

.kwny-loc__body{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 28px 28px 30px;
}

.kwny-loc .kwny-loc__name{
  margin: 0 0 12px;
  padding: 0;
  font-family: var(--kl-serif);
  font-weight: 400;
  font-size: clamp(1.25rem, 1.1923rem + .2564vw, 1.5rem);
  line-height: 1.3;
  color: var(--kl-ink);
}
.kwny-loc__pill{
  display: inline-block;
  align-self: flex-start;
  margin: 0 0 18px;
  padding: 5px 12px;
  border-radius: 999px;
  background-color: var(--kl-pill);
  font-size: .8125rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--kl-deep);
}

.kwny-loc .kwny-loc__addr{
  margin: 0 0 16px;
  font-style: normal;
  font-size: clamp(1rem, .9856rem + .0641vw, 1.0625rem);
  font-weight: 500;
  line-height: 1.55;
  color: var(--kl-ink);
}
.kwny-loc .kwny-loc__transit{
  margin: 0 0 16px;
  font-size: clamp(.9375rem, .9231rem + .0641vw, 1rem);
  line-height: 1.6;
  color: var(--kl-body);
}
.kwny-loc .kwny-loc__serving{
  margin: 0 0 22px;
  font-size: clamp(.9375rem, .9231rem + .0641vw, 1rem);
  font-weight: 600;
  line-height: 1.55;
  color: var(--kl-ink);
}

/* ---------- buttons ---------- */
.kwny-loc__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid var(--kl-line);
}
.kwny-loc .kwny-loc__btn{
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 50px;
  padding: 13px 20px;
  border: 1px solid var(--kl-deep);
  border-radius: 999px;
  font-family: var(--kl-sans);
  font-size: clamp(.9375rem, .9231rem + .0641vw, 1rem);
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.kwny-loc .kwny-loc__btn--primary{ background-color: var(--kl-deep); color: #FFFFFF; }
.kwny-loc .kwny-loc__btn--primary:hover,
.kwny-loc .kwny-loc__btn--primary:focus{ background-color: var(--kl-green); border-color: var(--kl-green); color: #FFFFFF; }
.kwny-loc .kwny-loc__btn--ghost{ background-color: #FFFFFF; color: var(--kl-deep); }
.kwny-loc .kwny-loc__btn--ghost:hover,
.kwny-loc .kwny-loc__btn--ghost:focus{ background-color: #EAF2EE; color: var(--kl-deep); }
.kwny-loc .kwny-loc__btn:focus-visible{ outline: 2px solid var(--kl-deep); outline-offset: 3px; }
.kwny-loc .kwny-loc__btn svg{ width: 17px; height: 17px; flex: none; }

/* ---------- closing note ---------- */
.kwny-loc .kwny-loc__note{
  margin: 32px auto 0;
  padding: 0;
  max-width: 78ch;
  text-align: center;
  font-size: clamp(.9375rem, .9231rem + .0641vw, 1rem);
  line-height: 1.7;
  color: var(--kl-body);
}

/* ---------- tablet ---------- */
@media (max-width: 1024px){
  .kwny-loc{ padding: 60px 0; }
  .kwny-loc__grid{ gap: 22px; }
  .kwny-loc__body{ padding: 24px 22px 26px; }
}

/* ---------- mobile ---------- */
@media (max-width: 767px){
  .kwny-loc{ padding: 44px 0; }
  .kwny-loc__inner{ padding: 0 16px; }
  .kwny-loc .kwny-loc__sub{ margin-bottom: 26px; }
  .kwny-loc__grid{ grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .kwny-loc__media{ aspect-ratio: 16 / 9; }
  .kwny-loc__body{ padding: 22px 18px 24px; }
  .kwny-loc__actions{ flex-direction: column; }
  .kwny-loc .kwny-loc__btn{ width: 100%; flex: none; }
  .kwny-loc .kwny-loc__note{ margin-top: 24px; text-align: left; }
}

@media (prefers-reduced-motion: reduce){
  .kwny-loc .kwny-loc__btn{ transition: none; }
}

/* columns come from the widget's Columns control */
.kwny-loc .kwny-loc__grid{ grid-template-columns: repeat(var(--kl-cols, 2), minmax(0, 1fr)); }
@media (max-width: 1024px){ .kwny-loc .kwny-loc__grid{ grid-template-columns: repeat(var(--kl-cols-t, var(--kl-cols, 2)), minmax(0, 1fr)); } }
@media (max-width: 767px){  .kwny-loc .kwny-loc__grid{ grid-template-columns: repeat(var(--kl-cols-m, 1), minmax(0, 1fr)); } }
