/* Carenova site-wide visual theme.
   The Framer exports carry two design generations: the shared Carenova shell
   and an older blue-gray/green palette. These overrides map the old tokens to
   the current brand palette so every page reads as one site. */

/* The shared shell sets display type in Rethink Sans. Older exports only ship
   Inter Display, so declare the same family here and remap those presets. */
@font-face {
  font-family: "Rethink Sans";
  src: url("https://fonts.gstatic.com/s/rethinksans/v7/AMODz4SDuXOMCPfdoglY9JQuWHBGG0X45DmqkmFRCEvmma-aua4.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: "Rethink Sans";
  src: url("https://fonts.gstatic.com/s/rethinksans/v7/AMODz4SDuXOMCPfdoglY9JQuWHBGG0X45DmqklNRCEvmma-aua4.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}

@font-face {
  font-family: "Rethink Sans";
  src: url("https://fonts.gstatic.com/s/rethinksans/v7/AMODz4SDuXOMCPfdoglY9JQuWHBGG0X45DmqkoZWCEvmma-aua4.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 700;
}

@font-face {
  font-family: "Rethink Sans";
  src: url("https://fonts.gstatic.com/s/rethinksans/v7/AMOFz4SDuXOMCPfdoglY9JQEUUK5wyyTfpeth6kS4A3smI2fqa7iVQ.woff2") format("woff2");
  font-display: swap;
  font-style: italic;
  font-weight: 400;
}

@font-face {
  font-family: "Rethink Sans";
  src: url("https://fonts.gstatic.com/s/rethinksans/v7/AMOFz4SDuXOMCPfdoglY9JQEUUK5wyyTfpeth6kS0g3smI2fqa7iVQ.woff2") format("woff2");
  font-display: swap;
  font-style: italic;
  font-weight: 500;
}

@font-face {
  font-family: "Rethink Sans";
  src: url("https://fonts.gstatic.com/s/rethinksans/v7/AMOFz4SDuXOMCPfdoglY9JQEUUK5wyyTfpeth6kSBwrsmI2fqa7iVQ.woff2") format("woff2");
  font-display: swap;
  font-style: italic;
  font-weight: 700;
}

@font-face {
  font-family: "Rethink Sans Placeholder";
  src: local("Arial");
  ascent-override: 94.29%;
  descent-override: 29.47%;
  line-gap-override: 0%;
  size-adjust: 105.21%;
}

:root {
  --cv-ink: #17302a;
  --cv-bg: #eeece5;
  --cv-white: #ffffff;
  --cv-sage: #bfceb7;
  --cv-card: #ffffff;
  --cv-line: #e5e3da;
  --cv-muted: #707371;
  --cv-font-display: "Rethink Sans", "Inter", sans-serif;
  --cv-font-body: "Inter", "Inter Placeholder", sans-serif;
}

/* Remap every Inter Display / Inter Tight display preset to the brand family. */
:is(
  .framer-styles-preset-1a1unal,
  .framer-styles-preset-1b1gv0m,
  .framer-styles-preset-1uqw219,
  .framer-styles-preset-1v8d3n5,
  .framer-styles-preset-1y9mvyn,
  .framer-styles-preset-2fq0b3,
  .framer-styles-preset-2n5gst,
  .framer-styles-preset-dmr5rz,
  .framer-styles-preset-l5l557,
  .framer-styles-preset-naqf3x,
  .framer-styles-preset-urc9ik,
  .framer-styles-preset-xp2ilm,
  .framer-styles-preset-z77rkk
),
:is(
  .framer-styles-preset-1a1unal,
  .framer-styles-preset-1b1gv0m,
  .framer-styles-preset-1uqw219,
  .framer-styles-preset-1v8d3n5,
  .framer-styles-preset-1y9mvyn,
  .framer-styles-preset-2fq0b3,
  .framer-styles-preset-2n5gst,
  .framer-styles-preset-dmr5rz,
  .framer-styles-preset-l5l557,
  .framer-styles-preset-naqf3x,
  .framer-styles-preset-urc9ik,
  .framer-styles-preset-xp2ilm,
  .framer-styles-preset-z77rkk
) *,
[style*="Inter Display"],
[style*="Inter Tight"] {
  --framer-font-family: var(--cv-font-display) !important;
  --framer-font-family-bold: var(--cv-font-display) !important;
  --framer-font-family-italic: var(--cv-font-display) !important;
  --framer-font-family-bold-italic: var(--cv-font-display) !important;
  font-family: var(--cv-font-display) !important;
}

/* Form controls are UI text, so keep them on the body family. */
[class*="framer-form-input"] {
  font-family: var(--cv-font-body) !important;
}

html,
body,
#main {
  background-color: var(--cv-bg);
}

body {
  color: var(--cv-ink);

  /* Legacy navy -> brand ink */
  --token-483661e7-8cff-48dd-a7a4-7c39683e9e0c: var(--cv-ink);
  --token-499fc22b-1950-41f7-8a94-990355d46b97: #17302a1a;
  --token-45497e52-0106-484e-a0ae-e03b9ce83b8c: #17302a99;

  /* Legacy gray page surface -> warm brand background */
  --token-2a0218e0-3c28-46ea-88d1-dfa580c98561: var(--cv-bg);

  /* Legacy off-white -> clean white */
  --token-8a5b6cbc-a8f7-47fa-a2ee-de8e24c617e5: var(--cv-white);
  --token-a9836f70-23aa-4e3c-91d9-9f03ff8541ad: #ffffff14;
  --token-e35dc6b7-b16b-4feb-8fcd-f2a2d8b827f7: #ffffff26;
  --token-fb3d1fa1-167c-4150-8df5-a6886ab9d8fb: var(--cv-white);

  /* Legacy greens -> brand deep/muted greens */
  --token-96d2126b-216c-4f33-8155-cb005bea73ff: #1e3b3d;
  --token-b8cfcb84-9efe-403f-afef-0a2096c40220: #445152;
  --token-31570f06-b3f8-41ce-a539-b403b1a8445b: #1e3b3d0a;
  --token-16880d38-1caa-4957-a06f-ac223209b561: #e4ebdd;

  /* Legacy lime/blue accents -> brand yellow/ink */
  --token-ded71902-cc35-4d64-bb7e-5e0f29daf659: #eede96;
  --token-8c60b031-18b9-4bcc-9862-41a1b4aeb16b: var(--cv-ink);
  --token-b32df407-a8e5-4b62-bb0a-ea11181e0ed6: #445152;
  --token-2a9d9003-6077-4c48-89bc-49734b39a56f: var(--cv-ink);
  --token-4ca91dd6-8586-4d96-9be1-27caf77702e8: #1e3b3d;
  --token-764fb876-7ffd-4c7a-b144-281ad005821b: #1e3b3d;
  --token-ff8554ae-9e3e-4e30-b466-9a2cb6fb3153: #e4ebdde0;
  --token-b8a5ea64-a5ed-4ff9-832e-2c55f4d33787: #e4ebdde0;
  --token-7875d4c5-9c90-4799-aefd-5fe679febb68: var(--cv-bg);
  --token-78238c39-898a-4407-9ec1-3339edcb31b1: var(--cv-bg);
  --token-de74afd1-c524-4669-853d-5a632abe38b5: var(--cv-bg);

  /* Legacy separators -> brand line color */
  --token-3c3fe636-51a6-4f4e-ba82-dd3baf54a196: #e5e3da6e;
  --token-b84d5cf4-1ea6-4533-a22d-fa26a1f56dd8: #e5e3da6e;
  --token-34388307-efad-4b99-a0d5-3df9341d14da: #e5e3da6e;
  --token-6960a364-3f4e-4693-a0aa-cd717bd6f16d: #e5e3da6e;
}

/* The shared navbar keeps one surface and one active-tab treatment on every page. */
[data-framer-name="Nav"] {
  background-color: var(--cv-card) !important;
}

[data-framer-name="Nav"] a[data-framer-page-link-current="true"] {
  background-color: var(--cv-sage) !important;
  color: rgba(23, 48, 42, 0.8) !important;
  border-radius: 100px;
}

[data-framer-name="Nav"] a[data-framer-page-link-current="true"] * {
  color: rgba(23, 48, 42, 0.8) !important;
}

/* Keep the shared footer surface identical even when a page wrapper changes. */
.framer-1yp1uqd-container .framer-sig09w {
  background: linear-gradient(126deg, var(--cv-ink) 0%, #162d27 100%) !important;
}

/* Remove the template author credit from every footer variant. */
.framer-8m4sbe {
  display: none !important;
}

/* Let the first page-title block clear the floating navbar at every width. */
#main > div > div[style*="display:contents"] > .framer-a5t2i6,
#main > div > div[style*="display:contents"] > section[data-framer-name="About-page-Title"] {
  padding-top: 100px;
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  #main > div > div[style*="display:contents"] > .framer-a5t2i6,
  #main > div > div[style*="display:contents"] > section[data-framer-name="About-page-Title"] {
    padding-top: 92px;
  }
}

@media (max-width: 809.98px) {
  #main > div > div[style*="display:contents"] > .framer-a5t2i6,
  #main > div > div[style*="display:contents"] > section[data-framer-name="About-page-Title"] {
    padding-top: 94px;
  }
}

/* Remove unverified template locations and pharmacy-licence cards. */
section[data-cv-fake-locations],
section[data-cv-fake-licenses] {
  display: none !important;
}

/* Verified replacement for the template's US licence grid. */
.cv-license-note-section {
  display: block !important;
  background: var(--cv-bg);
  color: var(--cv-ink);
}

.cv-license-note {
  box-sizing: border-box;
  max-width: 760px;
  margin: 0 auto;
  padding: 96px 24px;
  text-align: center;
  font-family: "Rethink Sans", "Inter", sans-serif;
}

.cv-license-note h2 {
  margin: 0 0 20px;
  font-size: clamp(34px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--cv-ink);
}

.cv-license-note p {
  max-width: 610px;
  margin: 0 auto 30px;
  color: var(--cv-muted);
  font-size: 16px;
  line-height: 1.65;
}

.cv-license-note a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 24px;
  border-radius: 100px;
  background: var(--cv-ink);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}

.cv-license-note a:hover {
  background: #1e3b3d;
}

/* Verified contact panel in place of the template's US location cards. */
.cv-location-note-section {
  display: block !important;
  margin: 0 auto;
  border-radius: 32px;
  overflow: hidden;
  background: var(--cv-white);
  color: var(--cv-ink);
}

.cv-location-note {
  box-sizing: border-box;
  max-width: 860px;
  margin: 0 auto;
  padding: 80px 24px;
  text-align: center;
  font-family: "Rethink Sans", "Inter", sans-serif;
}

.cv-location-note h2 {
  margin: 0 0 18px;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--cv-ink);
}

.cv-location-note p {
  max-width: 650px;
  margin: 0 auto 28px;
  color: var(--cv-muted);
  font-size: 16px;
  line-height: 1.65;
}

.cv-location-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.cv-location-actions a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  border-radius: 100px;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}

.cv-location-actions .cv-primary {
  background: var(--cv-ink);
  color: #fff;
}

.cv-location-actions .cv-secondary {
  border: 1px solid rgba(23, 48, 42, 0.2);
  color: var(--cv-ink);
  background: transparent;
}

@media (max-width: 809px) {
  .cv-license-note,
  .cv-location-note {
    padding: 72px 20px;
  }
}

/* The homepage reuses the service-page title block; keep its scale on an h2. */
.framer-a5t2i6 h2 {
  margin: 0;
  font-family: var(--cv-font-display);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: .99;
  font-size: clamp(35px, 5.3vw, 76px);
  text-align: center;
  color: var(--cv-ink);
}

/* --- contact page ------------------------------------------------------- */

.cv-contact-main {
  box-sizing: border-box;
  width: 100%;
  max-width: 1220px;
  margin: 0 auto;
  padding: 150px 24px 96px;
  color: var(--cv-ink);
  font-family: var(--cv-font-body);
}

.cv-contact-hero {
  max-width: 760px;
  margin: 0 auto 56px;
  text-align: center;
}

.cv-contact-kicker {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(23, 48, 42, .62);
}

.cv-contact-hero h1 {
  margin: 0;
  font-family: var(--cv-font-display);
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -.03em;
}

.cv-contact-lede {
  max-width: 580px;
  margin: 20px auto 0;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(23, 48, 42, .72);
}

.cv-contact-quick {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 26px;
}

.cv-contact-panel {
  display: grid;
  grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(23, 48, 42, .1);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 60px -36px rgba(23, 48, 42, .28);
}

.cv-contact-aside {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 42px 34px;
  background: var(--cv-ink);
  color: var(--cv-white);
}

.cv-contact-aside-kicker {
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .62);
}

.cv-contact-aside h2 {
  margin: 0;
  font-family: var(--cv-font-display);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.02em;
}

.cv-contact-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.cv-contact-list li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, .16);
}

.cv-contact-list li > span {
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .56);
}

.cv-contact-list a,
.cv-contact-list p {
  margin: 0;
  font-size: 16px;
  line-height: 1.45;
  color: var(--cv-white);
  text-decoration: none;
}

.cv-contact-list a {
  width: fit-content;
  min-height: 28px;
  border-bottom: 1px solid rgba(255, 255, 255, .3);
}

.cv-contact-list a:hover {
  border-bottom-color: var(--cv-white);
}

.cv-contact-list small {
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .62);
}

.cv-contact-list .cv-contact-directions {
  margin-top: 4px;
  border-bottom: 0;
  font-size: 14px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.cv-contact-emergency {
  margin: auto 0 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, .16);
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .7);
}

.cv-contact-form {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 44px 42px;
  background: transparent;
}

.cv-contact-form-head h2 {
  margin: 0;
  font-family: var(--cv-font-display);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.02em;
}

.cv-contact-form-head p {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(23, 48, 42, .66);
}

.cv-contact-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 18px;
}

.cv-contact-field-full {
  grid-column: 1 / -1;
}

.cv-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.cv-field > span {
  font-size: 13px;
  font-weight: 500;
  color: rgba(23, 48, 42, .74);
}

.cv-field input,
.cv-field select,
.cv-field textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  border: 1px solid rgba(23, 48, 42, .18);
  border-radius: 10px;
  background: #fff;
  color: var(--cv-ink);
  font-family: var(--cv-font-body);
  font-size: 15px;
  line-height: 1.45;
}

.cv-field textarea {
  min-height: 126px;
  resize: vertical;
}

.cv-field input:focus-visible,
.cv-field select:focus-visible,
.cv-field textarea:focus-visible {
  outline: 2px solid var(--cv-ink);
  outline-offset: 2px;
  border-color: transparent;
}

.cv-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 44px;
  padding: 2px 0;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(23, 48, 42, .74);
}

.cv-check input {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--cv-ink);
}

.cv-contact-submit {
  align-self: flex-start;
  min-height: 48px;
  padding: 0 26px;
}

.cv-contact-note {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.6;
  color: rgba(23, 48, 42, .56);
}

@media (max-width: 960px) {
  .cv-contact-main {
    padding: 120px 20px 72px;
  }

  .cv-contact-panel {
    grid-template-columns: minmax(0, 1fr);
  }

  .cv-contact-aside {
    padding: 34px 28px;
  }
}

/* Between 810px and 1360px the header menu and the call number overlapped.
   The number stays in the footer and contact page; drop it from this band. */
@media (min-width: 810px) and (max-width: 1359.98px) {
  nav a[href^="tel:"] {
    display: none !important;
  }
}

/* Nav text links and the phone line were 20–32px tall. Inline-flex gives
   them a full 44px hit area without changing the floating pill. */
nav a.framer-styles-preset-1biggcl,
nav a[href^="tel:"] {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 44px;
}

@media (max-width: 640px) {
  .cv-contact-hero {
    margin-bottom: 34px;
  }

  .cv-contact-quick .cv-btn {
    width: 100%;
    justify-content: center;
  }

  .cv-contact-form {
    padding: 30px 22px;
  }

  .cv-contact-fields {
    grid-template-columns: minmax(0, 1fr);
  }

  .cv-field input,
  .cv-field select,
  .cv-field textarea {
    font-size: 16px;
  }
}


/* Lummi care-section photography: keep the stat text readable over the photo. */
.cv-care-dim {
  opacity: .55;
}

/* Soft cream fade keeps the care heading legible over the consultation photo. */
.framer-113xuny::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(238, 236, 229, .96) 0%, rgba(238, 236, 229, .82) 22%, rgba(238, 236, 229, .34) 48%, rgba(238, 236, 229, 0) 70%);
  pointer-events: none;
}

/* The tablet/phone page-title band sat 2px under the floating navbar on
   service.html. Give it the same 100px clearance as desktop. */
@media (max-width: 1199.98px) {
  .framer-a8Bm2.framer-56bos4 .framer-a5t2i6 {
    padding-top: 100px !important;
  }
}

/* Phone form controls: 16px avoids iOS focus zoom, and the minimum height
   keeps text fields and selects at a comfortable touch size. */
@media (max-width: 809.98px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  select,
  textarea {
    font-size: 16px !important;
  }

  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  select {
    min-height: 44px;
  }
}

/* Framer button labels ship in a fixed 24px "Wrap" with overflow:hidden and a
   22px top padding. The remapped display font is taller than the original, so
   the label is clipped ("Request a Quote", "Get a Service Now", etc.). Let the
   wrap size to its text and centre it inside the button. */
.framer-14n2o11 {
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* The "Why choose" cards carry a fixed 424px decorative image that overflows
   the ~350px mobile card and clips the card copy. Scale it to the card width
   on phones/tablets so the card text stays readable. */
@media (max-width: 809.98px) {
  .framer-19c84lg {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Keep media inside cards from pushing their containers past the viewport on
   small screens (a common source of "text cut off" on mobile). */
@media (max-width: 809.98px) {
  img,
  video {
    max-width: 100%;
  }
}

/* About page "How we work" card: the original pale-yellow gradient sat under
   white text at ~1.6:1. Keep the brand feel but hold a dark base so the
   heading, label and body copy stay readable at every size. */
.framer-1py5953 {
  background-image: linear-gradient(-19deg, #17302a 0%, #3f6455 100%) !important;
}

/* About page order CTA card: same pale gradient under white text (~1.6:1).
   Darken the base so the heading and button stay legible. */
.framer-DeCZv .framer-5v2ep3,
.framer-DeCZv .framer-1769fhe {
  background: linear-gradient(153deg, #17302a 0%, #3f6455 100%) !important;
}

/* Framer "appear" leftovers: these blocks ship with an inline
   `opacity:0; transform:translateX(...)` that only the Framer runtime clears.
   With the static export they never animate in, so the About intro pair and the
   testimonial slider stayed invisible and off-canvas at every width. */
[style*="will-change:transform"][style*="opacity:0"] {
  opacity: 1 !important;
  transform: none !important;
}

/* "Partner-led" card: body copy was inheriting ink on a dark green card. */
.framer-pu5a40 .framer-text {
  color: #f5f7eb !important;
}

/* Drug-licence hero: the panel is the dark brand gradient, but the heading and
   intro paragraph were inheriting ink, so the whole hero read as an empty
   block (at every width). Lighten the copy that sits on that panel. */
.framer-cv2isd h1 {
  color: #f5f7eb !important;
}

.framer-cv2isd .framer-51numb .framer-text {
  color: rgba(245, 247, 235, 0.84) !important;
}

/* About hero eyebrow: a baked translateY(33px) pushed the "Core / Healthcare
   Partner" pill row into the headline on small screens. */
@media (max-width: 809px) {
  .framer-1xnl6my {
    transform: none !important;
  }
}

/* About hero "Beds" card: the dark title/subtitle floats over a bright photo.
   The card already ships an empty "Overlay" layer - give it a light wash. */
.framer-jseatd {
  background-image:
    linear-gradient(
      158deg,
      rgba(245, 247, 235, 0.88) 0%,
      rgba(245, 247, 235, 0.62) 26%,
      rgba(245, 247, 235, 0.18) 48%,
      rgba(245, 247, 235, 0) 66%
    ),
    linear-gradient(
      0deg,
      rgba(245, 247, 235, 0.9) 0%,
      rgba(245, 247, 235, 0.5) 14%,
      rgba(245, 247, 235, 0) 30%
    ) !important;
  pointer-events: none;
}
