/*
 * AISureCare layout refresh (theme 0.3.0, October 2026).
 * Loaded after style.css. Tighter spacing, pictures beside the page titles, more
 * buttons in the middle of pages, and the parts used by the redesigned Home page.
 * Brand rules: teal acts, blue informs; borders, not shadows; 8px corners.
 */

/* ---------- less empty space ---------- */
.k-section {
  padding-block: 64px;
}
@media (max-width: 1024px) {
  .k-section { padding-block: 52px; }
}
@media (max-width: 640px) {
  .k-section { padding-block: 40px; }
}
.k-hero-grid {
  padding-block: 48px;
}
@media (min-width: 768px) {
  .k-hero-grid { padding-block: 56px; }
}
.k-hero .k-h-hero {
  margin-top: 16px;
  font-size: clamp(36px, 4.2vw, 56px);
}
.k-section-head {
  margin-bottom: 28px;
}
.k-section-head .k-h-section {
  max-width: 30ch;
}
@media (min-width: 768px) {
  .k-split-narrow-left {
    grid-template-columns: 0.8fr 1.2fr;
    gap: 56px;
  }
  .k-split-even {
    gap: 48px;
  }
}
.k-h-section {
  font-size: clamp(28px, 3vw, 38px);
}

/* ---------- header: second button ---------- */
.k-header-call {
  display: none;
  align-items: center;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid #4f7299;
  border-radius: 8px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  margin-left: auto;
  margin-right: -12px;
}
.k-header-call:hover {
  border-color: #fff;
  color: #fff;
}
.k-header-call--mobile {
  display: flex;
  justify-content: center;
  margin: 12px 0 0;
}
@media (min-width: 1180px) {
  .k-header-call:not(.k-header-call--mobile) { display: inline-flex; }
}

/* ---------- a picture beside the page title ---------- */
@media (min-width: 900px) {
  .k-hero-has-visual {
    grid-template-columns: 1.1fr 0.9fr;
    gap: 56px;
  }
}
.k-hero-visual {
  margin: 0;
  background: #e9f0f8;
  border-radius: 16px;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.k-hero-visual svg {
  display: block;
  width: 100%;
  height: auto;
  max-height: 340px;
}
@media (max-width: 899px) {
  .k-hero-visual { max-width: 520px; }
  .k-hero-visual svg { max-height: 240px; }
}

/* ---------- buttons in the middle of pages ---------- */
.k-midcta {
  margin-top: 28px;
  padding: 18px 22px;
  border: 1px solid #c6e6e1;
  background: #eaf6f4;
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  align-items: center;
  justify-content: space-between;
}
.k-midcta p {
  margin: 0;
  color: #0b4f49;
  max-width: 640px;
}
.k-midcta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  align-items: center;
}

/* ---------- parts used by the redesigned Home page (k2-) ---------- */
.k2 a { text-decoration: none; }
.k2-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  box-sizing: border-box;
  padding: 12px 22px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  background: #0d7368;
  color: #fff !important;
  border: 1.5px solid #0d7368;
  transition: background 160ms, border-color 160ms;
}
.k2-btn:hover { background: #0b5f57; border-color: #0b5f57; }
.k2-btn--ghost {
  background: transparent;
  color: #0d7368 !important;
}
.k2-btn--ghost:hover { background: #eaf6f4; border-color: #0d7368; }
.k2-btn svg { width: 18px; height: 18px; flex: none; }
.k2-link { font-weight: 700; color: #0d7368 !important; }
.k2-link:hover { color: #0b5f57 !important; text-decoration: underline !important; }
.k2-card {
  background: #fdfcfa;
  border: 1px solid #e6dfd6;
  border-radius: 12px;
}
.k2-pathcard {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  color: #231f26 !important;
  border-width: 1.5px;
  transition: border-color 160ms;
}
.k2-pathcard:hover { border-color: #0d7368; }
.k2-pathcard:focus-visible { outline: 3px solid #0670a8; outline-offset: 3px; }
.k2 details summary { list-style: none; cursor: pointer; }
.k2 details summary::-webkit-details-marker { display: none; }
.k2 details[open] .k2-plus { transform: rotate(45deg); }
.k2-plus { display: inline-block; transition: transform 160ms; }
.k2 h1, .k2 h2, .k2 h3, .k2 h4 { font-family: var(--k-font); }
@media (max-width: 640px) {
  .k2-h1 { font-size: 38px !important; }
  .k2-h2 { font-size: 28px !important; }
  .k2-pad { padding-left: 0 !important; padding-right: 0 !important; }
}

/* subscription cards: stack the card's parts instead of squeezing them into one row */
.k-offer-card-top {
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
  margin-bottom: 0;
}
.k-offer-card { border-radius: 12px; }
.k-offer-card .k-h-card { max-width: none; }

/* service detail tables: shorter rows */
.k-fields { border-radius: 12px; }
.k-field { padding-block: 18px; }
@media (min-width: 768px) {
  .k-field { grid-template-columns: 190px 1fr; gap: 32px; }
}
.k-field h3 { color: var(--k-heading); }
.k-field-body { line-height: 1.65; }
.k-field-body p + p { margin-top: 10px; }
.k-checklist li { padding-block: 3px; }

/* question lists: heading above, questions in two columns, no lonely heading column */
.k-split-narrow-left:has(> .k-faq) {
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 900px) {
  .k-split-narrow-left > .k-faq {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 40px;
    align-items: start;
  }
}

/* screenings: PHI notice, confirmation, and the suggested next 90 days */
.k-phi {
  margin: 16px 0 20px;
  padding: 14px 16px;
  border: 1px solid #c6e6e1;
  border-radius: 8px;
  background: #eaf6f4;
  color: #0b4f49;
  font-size: 15px;
  line-height: 1.55;
}
.k-phi p { margin: 0; }
.k-phi-row { margin-top: 8px; }
.k-phi-row.is-invalid .k-as-check { outline: 2px solid var(--k-error); outline-offset: 4px; border-radius: 4px; }
.k-as-path {
  list-style: none;
  margin: 8px 0 24px;
  padding: 0;
  display: grid;
  gap: 8px;
}
.k-as-path li {
  padding: 12px 16px;
  border: 1px solid var(--k-line-2);
  border-radius: 8px;
  background: var(--k-ground-3);
  font-size: 15px;
  line-height: 1.55;
}
.k-as-path strong { color: var(--k-heading); }
.k-as-bottom { margin: 0 0 20px; font-size: 15px; line-height: 1.6; }
/* the PHI confirmation sits in a form row but reads like the opt-in checkbox */
.k-form-row.k-phi-row label.k-as-check {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--k-ink);
  line-height: 1.55;
}

/* screen-reader-only text, such as "(opens in a new tab)" */
.k-sr {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}
/* first and last name side by side on wider screens */
.k-name-pair { display: grid; gap: 0 16px; }
@media (min-width: 560px) {
  .k-name-pair { grid-template-columns: 1fr 1fr; }
}
.k-as-prio-unsure { margin-top: 6px; font-size: 15px; color: #0b4f49; }
/* the purpose line under each screening title */
.k-intro-heart {
  margin: 12px 0 0;
  font-size: 17px;
  line-height: 1.55;
  font-weight: 600;
  color: var(--k-heading);
  max-width: 640px;
}
