@charset "UTF-8";
/* custom.CSS is compiled from custom.SCSS; make edits to the SCSS file */
/*
 * GLOBAL/DEFAULT
*/
/*img:is([sizes="auto" i], [sizes^="auto," i]) {
	contain-intrinsic-size: revert;
}*/
* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
html {
  /*.wpb_text_column a:not(.w-btn) {
		text-decoration: underline;
	}
	&.no-touch a[href^="tel:"]:not(.w-btn) {
		cursor: text;
		pointer-events: none;
	}*/
}
html body {
  font-size: 1rem;
}
html body #pojo-a11y-toolbar {
  bottom: 1.5rem;
  top: auto !important;
}
html body #pojo-a11y-toolbar .pojo-a11y-toolbar-toggle {
  bottom: 0;
}
html body #pojo-a11y-toolbar:not(.pojo-a11y-toolbar-open) .pojo-a11y-toolbar-toggle {
  left: calc(100% + 1.5rem);
}
html address {
  font-style: normal;
}
html iframe, html img {
  vertical-align: middle;
}
html .lorem {
  background-color: red;
}
html a[href^="tel:"] {
  white-space: nowrap;
}
html a[href^="mailto:"] {
  word-break: break-word;
  color: inherit;
}
html .wpb_text_column + .w-separator.with_line {
  margin-top: -1.5rem;
}
html .l-main .w-image:not(:last-child), html .l-main .w-tabs:not(:last-child), html .l-main .w-video:not(:last-child), html .l-main .g-cols.vc_inner:not(:last-child), html .l-footer .w-image:not(:last-child), html .l-footer .w-tabs:not(:last-child), html .l-footer .w-video:not(:last-child), html .l-footer .g-cols.vc_inner:not(:last-child) {
  margin-bottom: 1.5rem;
}
@media screen and (max-width: 767px) {
  html .l-main .w-btn-wrapper, html .l-footer .w-btn-wrapper {
    display: block;
    margin: 1rem 0 !important;
    text-align: center;
  }
  html .l-main .w-btn-wrapper.align_left, html .l-main .w-btn-wrapper.align_right, html .l-footer .w-btn-wrapper.align_left, html .l-footer .w-btn-wrapper.align_right {
    display: block;
    float: none;
  }
}
@media screen and (max-width: 600px) {
  html .l-main .w-btn-wrapper .w-btn, html .l-footer .w-btn-wrapper .w-btn {
    width: 100%;
  }
}
html .l-main .w-image > a, html .l-footer .w-image > a {
  display: inline-block;
}
html .l-main .w-hwrapper:not([class*="usg_"]) > div, html .l-footer .w-hwrapper:not([class*="usg_"]) > div {
  margin: 0.6rem;
}
.l-main > .wpb-content-wrapper:first-of-type > .l-section:first-child .l-section-h {
  padding-top: var(--header-height);
}
.l-main > .wpb-content-wrapper:first-of-type > .l-section:first-child .l-section-img, .l-main > .wpb-content-wrapper:first-of-type > .l-section:first-child .l-section-overlay {
  top: var(--header-height);
}
[class*="ul-styled"] ul {
  margin-left: 0;
  list-style-type: none;
}
[class*="ul-styled"] ul > li {
  position: relative;
  padding-left: 1.75em;
}
[class*="ul-styled"] ul > li:before {
  font-family: fontawesome;
  font-weight: 900;
  position: absolute;
  left: 0;
  color: var(--color-content-primary);
}
.ul-styled-arrow ul > li:before {
  content: "";
}
.ul-styled-check ul > li:before {
  content: "";
}
.gform_wrapper {
  /* CUSTOM RADIO/CHECKBOX BUTTONS */
}
.gform_wrapper .wpcf7-form-control-wrap {
  text-align: center;
}
.gform_wrapper .gform_validation_errors > h2.gform_submission_error {
  font-size: inherit !important;
  font-family: inherit;
}
.gform_wrapper .gform_fields {
  grid-row-gap: 1.5rem !important;
}
.gform_wrapper .gform_heading {
  display: none;
}
.gform_wrapper textarea {
  resize: none;
}
.gform_wrapper .gfield {
  vertical-align: top;
}
.gform_wrapper .gform_footer input[type="submit"] {
  width: 100%;
}
.gform_wrapper input[type="text"], .gform_wrapper input[type="radio"], .gform_wrapper textarea, .gform_wrapper select {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -o-appearance: none;
  appearance: none;
}
.gform_wrapper select::-ms-expand {
  display: none;
}
.gform_wrapper .gfield_radio > [class^="gchoice"], .gform_wrapper .gfield_checkbox > [class^="gchoice"] {
  display: inline-block;
  padding: 0;
  margin-left: 0.75em;
  margin-right: 0.75em;
  line-height: 1.2;
}
@media screen and (max-width: 479px) {
  .gform_wrapper .gfield_radio > [class^="gchoice"], .gform_wrapper .gfield_checkbox > [class^="gchoice"] {
    width: initial !important;
    margin-left: 0.75em !important;
    margin-right: 0.75em !important;
  }
}
.gform_wrapper .gfield_radio input[type="radio"], .gform_wrapper .gfield_radio input[type="checkbox"], .gform_wrapper .gfield_checkbox input[type="radio"], .gform_wrapper .gfield_checkbox input[type="checkbox"] {
  display: none;
}
.gform_wrapper .gfield_radio input[type="radio"] + label, .gform_wrapper .gfield_radio input[type="checkbox"] + label, .gform_wrapper .gfield_checkbox input[type="radio"] + label, .gform_wrapper .gfield_checkbox input[type="checkbox"] + label {
  display: inline-block;
  width: 100%;
  min-width: fit-content;
  font-weight: 400;
  padding: 0.25em 0 0.25em 1.5em;
  position: relative;
}
.gform_wrapper .gfield_radio input[type="radio"] + label:before, .gform_wrapper .gfield_radio input[type="checkbox"] + label:before, .gform_wrapper .gfield_checkbox input[type="radio"] + label:before, .gform_wrapper .gfield_checkbox input[type="checkbox"] + label:before {
  content: "";
  font: normal 300 1em/1 FontAwesome;
  margin-right: 0.3em;
  position: absolute;
  left: 0;
  color: #600;
}
.gform_wrapper .gfield_radio input[type="radio"]:checked + label, .gform_wrapper .gfield_radio input[type="checkbox"]:checked + label, .gform_wrapper .gfield_checkbox input[type="radio"]:checked + label, .gform_wrapper .gfield_checkbox input[type="checkbox"]:checked + label {
  color: #600;
}
.gform_wrapper .gfield_radio input[type="radio"]:checked + label:before, .gform_wrapper .gfield_radio input[type="checkbox"]:checked + label:before, .gform_wrapper .gfield_checkbox input[type="radio"]:checked + label:before, .gform_wrapper .gfield_checkbox input[type="checkbox"]:checked + label:before {
  content: "";
  font-weight: 900;
}
.gform_wrapper .gfield_radio input[type="radio"]:checked + label:before {
  content: "";
  font-weight: 900;
}
.gform_wrapper .gfield_checkbox input[type="checkbox"]:checked + label:before {
  content: "";
  font-weight: 900;
}
::-webkit-input-placeholder {
  opacity: 1;
}
::-moz-placeholder {
  opacity: 1;
}
:-ms-input-placeholder {
  opacity: 1;
}
::-ms-input-placeholder {
  opacity: 1;
}
::placeholder {
  opacity: 1;
}
.hours-table {
  width: 100%;
}
.hours-table .row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.hours-table:not(:last-child) {
  margin-bottom: 2.5rem;
}
.larger-text {
  font-size: 1.25rem;
}
.adaptive-grid {
  /* fill row with as many columns as possible with columns having a minimum 16em width */
  display: -ms-grid;
  display: grid;
  gap: min(2.5vw, 2.5rem);
  grid-template-columns: repeat(auto-fit, minmax(16em, 1fr));
}
.adaptive-grid > div {
  margin: 0 !important;
}
.adaptive-grid img {
  border-radius: 1rem;
  aspect-ratio: 1.113;
  -o-object-fit: cover;
  object-fit: cover;
}
.adaptive-grid .w-vwrapper .wpb_text_column {
  padding: 0 1rem;
}
.dynamic-faq {
  --site-content-width: 1128px;
}
.l-header {
  /*-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);

	.l-subheader.at_middle {
		background: rgba(white, .8);
	}
	.w-socials {
		font-size: clamp(1.25rem, 2vw, 2rem);
		line-height: 1;
		color: var(--color-content-primary);

		.w-socials-item-link {
			min-width: 1em;
			line-height: 1.2;
		}
	}*/
  /*&.sticky {
	.w-vwrapper>*:not(:last-child) {
	margin-bottom: 0;
}
	.w-vwrapper > *:not(.w-hwrapper) {
	display: none;
}
}*/
}
.l-header .w-nav .w-nav-anchor.level_1 {
  font-size: clamp(1rem, 1.25vw, 1.25rem);
  font-weight: 500;
}
.l-header .w-nav .w-nav-arrow:before {
  font-weight: 300;
}
.l-header .w-nav.type_mobile {
  margin-left: 0;
}
.l-header .w-nav.type_desktop .mobile-only, .l-header .w-nav.type_desktop .w-nav-anchor.w-btn {
  display: none;
}
.l-header .w-nav.type_desktop .hover_underline .current-menu-item .w-nav-title:after, .l-header .w-nav.type_desktop .hover_underline .current-menu-ancestor .w-nav-title:after {
  bottom: -2px !important;
  opacity: 1 !important;
}
.l-header .w-nav.type_desktop .w-nav-anchor:not(.level_1) {
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
.l-header .w-nav .w-nav-control {
  color: var(--color-content-primary);
}
.l-header .w-nav .w-nav-control > span {
  font-size: 1rem;
  text-transform: uppercase;
}
.l-header .w-nav .w-nav-control .w-nav-icon div, .l-header .w-nav .w-nav-control .w-nav-icon div:before, .l-header .w-nav .w-nav-control .w-nav-icon div:after {
  right: 0;
  border-radius: 5em;
}
.l-header .w-nav .w-nav-control:not(.active) .w-nav-icon div:before {
  width: 75%;
}
.l-header .w-nav .w-nav-control:not(.active) .w-nav-icon div:after {
  width: 55%;
}
@media screen and (max-width: 767px) {
  .l-header .w-nav-control > span {
    display: none;
  }
  .l-header .appt-btn {
    padding: 0;
    width: 100%;
    line-height: inherit !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    background: transparent;
    color: var(--color-header-top-text) !important;
  }
  .l-header .appt-btn:before {
    border-color: transparent;
  }
}
[class*="masthead"] h1 .small {
  display: block;
  font-size: max(1.25rem, 0.42em);
  /*font-weight: 500;
			font-style: italic;
			margin-top: .75em;*/
}
@media screen and (max-width: 767px) {
  [class*="masthead"] .l-section-img {
    top: var(--header-height);
  }
}
[class*="--content"] h1 {
  font-size: var(--h2-font-size);
}
[class*="--content"] h2 {
  font-size: var(--h3-font-size);
}
[class*="--content"] h3 {
  font-size: var(--h4-font-size);
}
[class*="--content"] h2, [class*="--content"] h3, [class*="--content"] h4 {
  text-align: left;
}
[class*="--content"] .w-image.align_left, [class*="--content"] .w-image.align_right {
  max-width: 35%;
}
@media screen and (max-width: 600px) {
  [class*="--content"] .w-image.align_left, [class*="--content"] .w-image.align_right {
    max-width: 100%;
    float: none;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }
}
[class*="--content"] .w-btn-wrapper:not(:last-child), [class*="--content"] .w-tabs.accordion:not(:last-child), [class*="--content"] .w-video:not(:last-child), [class*="--content"] .g-cols.wpb_row:not(:last-child), [class*="--content"] .post_image:not(:last-child) {
  margin-bottom: 3rem;
}
[class*="--content"] .post_content:not(:last-child) {
  margin-bottom: 1.5rem;
}
[class*="--content"] table {
  display: block;
  overflow-x: auto;
  -webkit-box-shadow: 0 1rem 1rem 0 rgba(0, 0, 0, 0.1);
  box-shadow: 0 1rem 1rem 0 rgba(0, 0, 0, 0.1);
}
[class*="--content"] table tbody {
  display: block;
  min-width: 40rem;
}
@media screen and (min-width: 768px) {
  [class*="--content"] img.alignright, [class*="--content"] img.alignleft {
    max-width: 35%;
  }
}
@media screen and (max-width: 767px) {
  [class*="--content"] img.alignright, [class*="--content"] img.alignleft {
    margin-left: auto;
    margin-right: auto;
  }
}
/* 
 * BLOG GRID/LIST
 * will probably need to change the .layout_182 class
*/
.layout_182 .w-grid-item:not(:last-child) {
  border-bottom: 1px solid #ccc;
  padding-bottom: 2rem;
}
.layout_182 .post_title {
  font-size: clamp(1.25em, 2vw, 1.5em);
  margin-bottom: 0.25em !important;
  text-align: left;
}
.layout_182 .post_date {
  font-size: 0.75em;
  margin-bottom: 1.25em;
}
.layout_182 .post_content {
  margin-bottom: 1em;
}
/* BLOG POST */
.blog--content .post_image {
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .blog--content .post_image {
    float: right;
    max-width: 35%;
    margin-left: 2rem;
  }
}
.blog--content .post_title {
  margin-bottom: 0.25em;
}
.blog--content .post_date {
  font-size: 1rem;
  display: block;
  position: relative;
}
.blog--content .post_date i {
  position: absolute;
  left: 0;
  top: 0;
}
.blog--content .post_content {
  margin-bottom: 1.5rem;
}
[class*="--sidebar"] {
  font-size: 1rem;
}
[class*="--sidebar"] > .vc_column-inner > .wpb_wrapper > div:not(:last-child) {
  margin-bottom: 1.5rem;
}
[class*="--sidebar"] h2, [class*="--sidebar"] .widgettitle {
  font-family: inherit;
  font-size: 1.25em;
  text-transform: uppercase;
}
[class*="--sidebar"] h2, [class*="--sidebar"] h3, [class*="--sidebar"] h4, [class*="--sidebar"] a {
  color: inherit;
}
[class*="--sidebar"] .page-list {
  margin-left: 0;
  list-style-type: none;
  border-left: 1px solid var(--color-content-border);
  font-size: 1em;
}
[class*="--sidebar"] .page-list li {
  padding: 0.4em 1.2em;
  margin: 0;
  border-bottom: 1px solid var(--color-content-border);
}
[class*="--sidebar"] .page-list li.current_page_item > a {
  font-weight: 400;
  color: var(--color-content-link);
}
[class*="--sidebar"] .siblings-page-list:not(:last-child) {
  margin-bottom: 0;
}
[class*="--sidebar"] .siblings-page-list:not(:last-child) .page_item:not(.current_page_item) {
  display: none;
}
[class*="--sidebar"] .siblings-page-list:not(:last-child) .current_page_item {
  cursor: text;
  background-color: rgba(0, 0, 0, 0.05);
}
[class*="--sidebar"] .siblings-page-list:not(:last-child) .current_page_item:before {
  display: none;
}
[class*="--sidebar"] .siblings-page-list:not(:last-child) .current_page_item a {
  pointer-events: none;
}
[class*="--sidebar"] [class*="ul-styled"] ul > li:before {
  color: inherit;
}
[class*="--sidebar"] .hours-table {
  max-width: 15em;
}
.no-touch [class*="--sidebar"] a:hover {
  color: var(--color-content-link);
}
.internal--tabs {
  font-size: 1rem;
}
.internal--tabs .w-tabs.accordion {
  background: white;
  border-radius: 0.75rem;
  overflow: hidden;
  -webkit-box-shadow: 0 1rem 1rem 0 rgba(0, 0, 0, 0.1);
  box-shadow: 0 1rem 1rem 0 rgba(0, 0, 0, 0.1);
}
.internal--tabs .w-tabs.accordion .w-tabs-section {
  margin-bottom: 0;
}
.internal--tabs .w-tabs.accordion .w-tabs-section:first-child {
  border-top-width: 0;
}
.internal--tabs .w-tabs.accordion .w-tabs-section:last-child {
  border-bottom-width: 0;
}
.internal--tabs .w-tabs.accordion .w-tabs-section-title {
  font-size: 1rem !important;
}
.internal--tabs .w-tabs:not(.accordion) .w-tabs-section-content {
  background: white;
  background: linear-gradient(180deg, var(--color-content-bg-alt), var(--color-content-bg));
  padding: 1.5rem;
  border-radius: 0 0 0.75rem 0.75rem !important;
  overflow: hidden;
  -webkit-box-shadow: 0 1rem 1rem 0 rgba(0, 0, 0, 0.1);
  box-shadow: 0 1rem 1rem 0 rgba(0, 0, 0, 0.1);
}
.internal--tabs .w-tabs:not(.accordion) .media .w-tabs-section-content {
  padding: 0;
}
.internal--tabs .siblings-page-list:not(:last-child) {
  margin-bottom: 0;
}
.internal--tabs .siblings-page-list:not(:last-child) .page_item:not(.current_page_item) {
  display: none;
}
.internal--tabs .siblings-page-list:not(:last-child) .current_page_item {
  cursor: text;
  padding-left: 0;
}
.internal--tabs .siblings-page-list:not(:last-child) .current_page_item:before {
  display: none;
}
.internal--tabs .siblings-page-list:not(:last-child) .current_page_item a {
  pointer-events: none;
  font-family: var(--h1-font-family);
  font-size: var(--h5-font-size, inherit);
  font-weight: var(--h5-font-weight, inherit);
  text-transform: uppercase;
}
.internal--tabs .siblings-page-list:not(:last-child) .current_page_item a:after {
  content: ":";
}
.copyright {
  text-align: center;
  font-size: 0.75em;
  padding-top: 1em;
  padding-bottom: 1em;
}
/* ==========================================================================
   Carefree Smiles — brand tokens + Home (Figma ivory / gold / charcoal)
   Added 2026-09-12 — do not pull gold-site schema/NAP into these rules
   ========================================================================== */
:root {
  --cf-ivory: #faf8f0;
  --cf-ivory-deep: #e9e0bf;
  --cf-gold: #cfbb74;
  --cf-gold-hover: #a38c38;
  --cf-charcoal: #151515;
  --cf-charcoal-soft: #6b6b6b;
  /* Soft brand overrides (keep theme structure; tint accents) */
  --color-content-primary: #cfbb74;
  --color-content-secondary: #151515;
  --color-content-link: #a38c38;
  --color-content-link-hover: #151515;
  --color-content-heading: #151515;
  --color-content-bg-alt: #faf8f0;
  --color-alt-content-bg: #faf8f0;
  --color-alt-content-heading: #151515;
  --color-alt-content-primary: #cfbb74;
  --color-alt-content-secondary: #151515;
  --color-header-middle-text-hover: #cfbb74;
  --color-footer-link: #cfbb74;
}
/* Home hero */
.cf-home-hero {
  background-color: #151515 !important;
  color: #faf8f0;
}
.cf-home-hero .l-section-h {
  padding-top: calc(var(--header-height, 5rem) + 3rem);
  padding-bottom: 4rem;
}
.cf-home-hero .cf-eyebrow {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.75rem;
  opacity: 0.85;
  margin-bottom: 1rem;
}
.cf-home-hero h1 {
  color: #faf8f0 !important;
  font-family: var(--h1-font-family, Georgia, "Times New Roman", serif);
  font-weight: 500;
  line-height: 1.15;
  margin: 0 0 1rem;
}
.cf-home-hero .cf-hero-aside p {
  color: rgba(247, 243, 236, 0.92);
  font-size: 1.05rem;
  line-height: 1.55;
}
.cf-home-hero .w-btn, .cf-home-hero .cf-btn-gold .w-btn, .cf-home-hero a.w-btn {
  background-color: #cfbb74 !important;
  border-color: #cfbb74 !important;
  color: #151515 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}
.cf-home-hero .w-btn:hover, .cf-home-hero .cf-btn-gold .w-btn:hover, .cf-home-hero a.w-btn:hover {
  background-color: #a38c38 !important;
  border-color: #a38c38 !important;
  color: #151515 !important;
}
.cf-home-hero .cf-btn-outline .w-btn, .cf-home-hero .w-btn.style_outline, .cf-home-hero a.w-btn.style_2 {
  background-color: transparent !important;
  border: 1px solid rgba(247, 243, 236, 0.65) !important;
  color: #faf8f0 !important;
}
.cf-home-hero .cf-btn-outline .w-btn:hover, .cf-home-hero .w-btn.style_outline:hover, .cf-home-hero a.w-btn.style_2:hover {
  border-color: #cfbb74 !important;
  color: #cfbb74 !important;
}
.cf-services-ribbon {
  background-color: #faf8f0 !important;
}
.cf-services-ribbon .cf-ribbon-text p {
  text-align: center;
  color: #cfbb74;
  font-family: var(--h1-font-family, Georgia, serif);
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  margin: 0.35rem 0;
}
.cf-btn-gold .w-btn, .l-main .cf-btn-gold .w-btn {
  background-color: #cfbb74 !important;
  border-color: #cfbb74 !important;
  color: #151515 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}
.cf-btn-gold .w-btn:hover, .l-main .cf-btn-gold .w-btn:hover {
  background-color: #a38c38 !important;
  border-color: #a38c38 !important;
}
.cf-service-cards .cf-card h3, .cf-resource-cards .wpb_text_column h3 {
  color: #151515;
  font-family: var(--h1-font-family, Georgia, serif);
}
.cf-cta-band h2, .cf-cta-band p, .cf-cta-band a {
  color: inherit;
}
.cf-cta-band a[href^="tel:"] {
  color: #faf8f0;
  font-weight: 600;
}
/* Soften purple leftovers on buttons sitewide toward gold */
.w-btn.color_primary, .w-btn.style_solid.color_primary {
  background-color: #cfbb74;
  border-color: #cfbb74;
  color: #151515;
}
/* ==========================================================================
   Carefree header chrome 2026-09-14 — php-assets tokens (sand/beige/gold/ink)
   SCSS plugin only; no child-theme PHP edits. No gold-site NAP/schema.
   ========================================================================== */
:root {
  --cf-sand: #faf8f0;
  --cf-beige: #e9e0bf;
  --cf-gold-dark: #a38c38;
  --cf-ink: #151515;
  --color-header-top-bg: #cfbb74;
  --color-header-top-text: #151515;
  --color-header-middle-bg: #faf8f0;
  --color-header-middle-text: #151515;
  --color-header-middle-text-hover: #a38c38;
}
.l-header {
  background-color: #faf8f0;
}
.l-subheader.at_top {
  background-color: #cfbb74 !important;
  color: #151515 !important;
}
.l-subheader.at_middle {
  background-color: #faf8f0 !important;
}
.cf-topbar, .l-subheader.at_top .w-text {
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 500;
  color: #151515 !important;
}
.cf-header-phone, .l-subheader .w-text.phone a {
  color: #151515 !important;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.cf-header-phone:hover, .l-subheader .w-text.phone a:hover {
  color: #a38c38 !important;
}
.cf-header-cta {
  background-color: #cfbb74;
  border: 1px solid #cfbb74;
  padding: 0.55rem 1.1rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  font-size: 0.8rem;
  color: #151515 !important;
}
.cf-header-cta a {
  color: #151515 !important;
}
.cf-header-cta:hover {
  background-color: #a38c38;
  border-color: #a38c38;
  color: #fff !important;
}
.cf-header-cta:hover a {
  color: #fff !important;
}
.cf-wordmark img, .l-subheader .w-image.logo img {
  max-height: 64px;
  width: auto;
}
.cf-primary-nav .w-nav-item > a, .l-subheader .w-nav-item > a {
  color: #151515;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.82rem;
  font-weight: 500;
}
.cf-primary-nav .w-nav-item > a:hover, .l-subheader .w-nav-item.current-menu-item > a, .l-subheader .w-nav-item > a:hover {
  color: #a38c38;
}
.w-nav-list.level_2 {
  background: #faf8f0;
  border: 1px solid #e9e0bf;
}
.w-nav-list.level_2 a {
  color: #151515;
}
.w-nav-list.level_2 a:hover {
  color: #a38c38;
}
/* === CAREFREE FIGMA PATTERNS 2026-09-14 === */
.cf-gold {
  color: #cfbb74 !important;
}
.l-header .l-subheader.at_middle {
  background-color: #faf8f0 !important;
}
.l-header .cf-primary-nav .w-nav-item > a, .l-header .cf-primary-nav .menu-item > a, .l-header .cf-nav-caps .w-nav-item > a, .l-header .cf-nav-caps .menu-item > a {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  font-weight: 500;
  color: #151515;
}
.l-header .cf-header-phone {
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #151515 !important;
  white-space: nowrap;
}
.l-header .cf-header-phone a {
  color: inherit;
}
.l-header .cf-header-cta {
  display: inline-block;
  background: #cfbb74 !important;
  color: #151515 !important;
  padding: 0.65em 1.15em;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  font-weight: 600;
  border-radius: 0;
  line-height: 1.2;
}
.l-header .cf-header-cta a, .l-header .cf-header-cta .w-text-value {
  color: #151515 !important;
}
.l-header .cf-header-cta:hover {
  background: #a38c38 !important;
}
.l-header .cf-mountain-logo img {
  max-height: 56px;
  width: auto;
}
.cf-hero {
  min-height: 62vh;
}
.cf-hero .cf-eyebrow p, .cf-hero .cf-eyebrow {
  color: rgba(250, 248, 240, 0.9);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.75rem;
  margin-bottom: 0.75rem;
}
.cf-hero .cf-hero-h1 h1, .cf-hero .cf-hero-h1 .w-page-title {
  font-family: Fraunces, Georgia, serif !important;
  font-weight: 400;
  color: #fff !important;
  font-size: clamp(2.2rem, 4.5vw, 3.75rem);
  line-height: 1.15;
  margin: 0;
}
.cf-hero .cf-hero-h1--center h1 {
  text-align: center;
}
.cf-hero .cf-hero-lede p, .cf-hero .cf-hero-aside p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 1.05rem;
  line-height: 1.55;
}
.cf-hero .cf-hero-sub p {
  color: rgba(255, 255, 255, 0.9);
  text-align: center;
  margin: 0.5rem 0 1.25rem;
}
.cf-hero--home {
  padding-bottom: 4rem !important;
}
.cf-hero--interior {
  min-height: 48vh;
  text-align: center;
}
.cf-btn-gold .w-btn, .l-main .cf-btn-gold .w-btn {
  background: #cfbb74 !important;
  border-color: #cfbb74 !important;
  color: #151515 !important;
  border-radius: 0 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}
.cf-btn-gold .w-btn:hover, .l-main .cf-btn-gold .w-btn:hover {
  background: #a38c38 !important;
  border-color: #a38c38 !important;
  color: #151515 !important;
}
.cf-btn-outline .w-btn {
  background: transparent !important;
  border: 1px solid #cfbb74 !important;
  color: #151515 !important;
  border-radius: 0 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.cf-btn-outline .w-btn:hover {
  background: #cfbb74 !important;
  color: #151515 !important;
}
.cf-ribbon {
  background: #faf8f0 !important;
  padding: 0.85rem 1rem !important;
}
.cf-ribbon .cf-ribbon-text p {
  text-align: center;
  color: #cfbb74;
  font-family: Fraunces, Georgia, serif;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  margin: 0;
}
.cf-split {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}
.cf-split .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif !important;
  font-weight: 400;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: #151515;
  line-height: 1.2;
}
.cf-split .cf-split-img img {
  border-radius: 0;
}
.cf-doctor-grid, .cf-service-cards, .cf-tech-grid, .cf-contact-split {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}
.cf-collage-inset {
  margin-top: -3rem;
  margin-right: 1rem;
  position: relative;
  z-index: 2;
  max-width: 55%;
  margin-left: auto;
  box-shadow: 0 12px 40px rgba(21, 21, 21, 0.18);
}
.cf-cta-band {
  padding: 3.5rem 1rem !important;
  text-align: center;
}
.cf-contact-form .w-form-row input, .cf-contact-form .w-form-row textarea {
  border-radius: 0;
  border-color: #e9e0bf;
}
/* === CAREFREE FOLLOW-UP 2026-09-14: hero void + header crowding === */
.cf-hero {
  background-color: #151515 !important;
  position: relative;
}
.cf-hero > .l-section-img, .cf-hero > .l-section-overlay {
  top: 0 !important;
}
.cf-hero--interior {
  min-height: 56vh;
}
.l-main > .wpb-content-wrapper:first-of-type > .l-section.cf-hero:first-child > .l-section-h {
  padding-top: calc(var(--header-height, 5rem) + 2rem);
}
@media (max-width: 1399px) {
  .l-header .cf-header-phone {
    display: none !important;
  }
}
@media (max-width: 1439px) {
  .l-header .w-nav .menu-item > a[href*="/contact-us/"] .w-nav-title {
    font-size: 0 !important;
    letter-spacing: 0 !important;
  }
  .l-header .w-nav .menu-item > a[href*="/contact-us/"] .w-nav-title::before {
    content: "CONTACT";
    font-size: var(--cf-nav-fs);
    letter-spacing: 0.1em;
    font-weight: 500;
  }
}
.l-header .purple, .demo-purple {
  color: inherit !important;
}
/* ==========================================================================
   Carefree — hero gutter + marquee band   (added 2026-09-14, ported from
   the carefreephp reference build: .marquee / hero shell)
   ========================================================================== */
/* Full-width hero rows were bleeding text to the viewport edge. */
.cf-hero > .l-section-h, .cf-hero .l-section-h {
  padding-left: clamp(1.25rem, 5vw, 6.75rem) !important;
  padding-right: clamp(1.25rem, 5vw, 6.75rem) !important;
}
/* Scrolling services band (replaces the static dot-separated ribbon). */
.cf-marquee {
  background: #faf8f0 !important;
  border-top: 1px solid #a38c38;
  border-bottom: 1px solid #a38c38;
  overflow: hidden !important;
  padding: 1.4rem 0 !important;
}
.cf-marquee > .l-section-h {
  max-width: 100% !important;
  padding: 0 !important;
}
.cf-marquee .vc_column-inner, .cf-marquee .wpb_wrapper {
  padding: 0 !important;
}
.cf-marquee .cf-marquee__track {
  display: flex;
  width: max-content;
  animation: cf-marquee 46s linear infinite;
}
.cf-marquee .cf-marquee__group {
  display: flex;
  align-items: center;
  gap: 4rem;
  padding: 0 4rem 0 0;
  margin: 0;
  list-style: none;
}
.cf-marquee .cf-marquee__group li {
  font-family: Fraunces, Georgia, serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.35rem, 1.9vw, 2.25rem);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #a38c38;
  white-space: nowrap;
  margin: 0;
  padding: 0;
}
.cf-marquee .cf-marquee__group li:before {
  content: none !important;
}
.cf-marquee .cf-marquee__group .cf-marquee__star {
  font-style: normal;
  font-size: 1.125rem;
}
@keyframes cf-marquee {
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .cf-marquee .cf-marquee__track {
    animation: none;
  }
  .cf-marquee {
    display: flex;
    justify-content: center;
  }
}
/* ==========================================================================
   Carefree — numbered section pattern + Philosophy row   (2026-09-14)
   Ported from the carefreephp reference: .sec-index / .intro
   ========================================================================== */
.cf-section {
  padding-top: clamp(3.5rem, 6vw, 7.5rem) !important;
  padding-bottom: clamp(3.5rem, 6vw, 7.5rem) !important;
}
/* Eyebrow stacked over an oversized display numeral. */
.cf-secindex {
  opacity: 0.5;
}
.cf-secindex .cf-eyebrow-sm {
  font-family: "DM Sans", Montserrat, sans-serif;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  color: #6b6b6b;
  margin: 0 0 0.75rem;
}
.cf-secindex .cf-secnum {
  font-family: Fraunces, Georgia, serif;
  font-weight: 300;
  font-size: clamp(3.5rem, 7vw, 7.5rem);
  line-height: 1;
  color: #bebebe;
  opacity: 0.55;
  margin: 0;
}
.cf-intro {
  background: #faf8f0;
}
.cf-intro .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(2rem, 3.4vw, 3.75rem);
  line-height: 1.08;
  color: #151515;
  margin: 0;
}
.cf-intro .cf-h2 h2 em {
  font-style: italic;
  font-weight: 400;
}
.cf-intro .cf-prose p {
  color: #151515;
  line-height: 1.6;
}
.cf-intro .cf-prose p + p {
  margin-top: 1.25rem;
}
.cf-intro .cf-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
}
/* The oversized numeral is decorative — drop it before it crowds the copy. */
@media (max-width: 1200px) {
  .cf-secindex .cf-secnum {
    display: none;
  }
}
/* ==========================================================================
   Carefree — outline button + Services list   (2026-09-14)
   Ported from carefreephp: .btn--secondary / .services / .service
   ========================================================================== */
/* The design's secondary button is a gold hairline on transparent, not a beige fill. */
.cf-btn-outline.w-btn, a.w-btn.cf-btn-outline {
  background: transparent !important;
  color: #151515 !important;
  border: 1px solid #cfbb74 !important;
}
.cf-btn-outline.w-btn:hover, .cf-btn-outline.w-btn:focus-visible, a.w-btn.cf-btn-outline:hover, a.w-btn.cf-btn-outline:focus-visible {
  background: #cfbb74 !important;
  color: #151515 !important;
}
.cf-services {
  background: #fafafa;
}
.cf-services .cf-services-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: 2.5rem;
}
.cf-services .cf-services-head .cf-secindex {
  text-align: right;
}
/* One bordered row per treatment: number + title, copy, hairline rule. */
.cf-service {
  background: rgba(255, 255, 255, 0.55);
  border-top: 1px solid #a38c38;
  border-bottom: 1px solid #a38c38;
  margin-top: -1px !important;
  padding: 1.5rem !important;
  transition: background 0.3s ease;
}
.cf-service:hover {
  background: rgba(255, 255, 255, 0.95);
}
.cf-service .vc_column-inner, .cf-service .wpb_wrapper {
  padding: 0 !important;
}
.cf-service .cf-service__num p {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #a38c38;
  margin: 0;
}
.cf-service .cf-service__title h3 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.4rem, 2.2vw, 2.4rem);
  line-height: 1.1;
  color: #151515;
  margin: 0;
}
.cf-service .cf-service__title h3 sup {
  font-size: 0.45em;
  vertical-align: super;
}
.cf-service .cf-service__copy p {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #6b6b6b;
  margin: 0;
}
@media (max-width: 767px) {
  .cf-services .cf-services-head {
    flex-direction: column;
  }
  .cf-service {
    padding: 1.25rem 0 !important;
  }
}
/* Service titles are links; keep them ink and let the row carry the hover. */
.cf-service .cf-service__title h3 a {
  color: #151515 !important;
  text-decoration: none;
  transition: color 0.25s ease;
}
.cf-service:hover .cf-service__title h3 a {
  color: #a38c38 !important;
}
/* Right-align the eyebrow + numeral against the section heading. */
.cf-services .cf-services-head .cf-secindex, .cf-services .cf-services-head .cf-secindex p {
  text-align: right !important;
}
.cf-services .cf-services-head .cf-secnum {
  line-height: 0.9;
}
/* Impreza's .g-cols already sizes and gutters the columns; adding our own gap
   pushed two 50% columns past 100% and wrapped them. Let the theme own it. */
.cf-services .cf-services-head {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  align-items: flex-end !important;
}
/* ==========================================================================
   Carefree — split / testimonial / doctors / affiliations   (2026-09-14)
   Ported from carefreephp: .split, .testimonial, .team, .doctor, .affiliations
   ========================================================================== */
/* --- Split: copy beside a full-bleed image ------------------------------ */
.cf-splitrow {
  padding: 0 !important;
}
.cf-splitrow > .l-section-h {
  max-width: 100% !important;
  padding: 0 !important;
}
.cf-splitrow .cf-split-copy > .vc_column-inner {
  padding: clamp(3rem, 5vw, 6rem) clamp(1.5rem, 4vw, 5rem) !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
.cf-splitrow .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.9rem, 3vw, 3.25rem);
  line-height: 1.1;
  color: #151515;
  margin: 0 0 1.25rem;
}
.cf-splitrow .cf-h2 h2 em {
  font-style: italic;
}
.cf-splitrow p {
  line-height: 1.6;
  color: #151515;
}
.cf-splitrow .cf-split-media > .vc_column-inner {
  padding: 0 !important;
}
.cf-splitrow .cf-split-media img {
  width: 100%;
  height: 100%;
  min-height: clamp(20rem, 41vw, 44rem);
  object-fit: cover;
  display: block;
}
.cf-splitrow .cf-split-media .w-image {
  height: 100%;
}
.cf-splitrow--gradient {
  background: linear-gradient(to bottom, #f2f2f2 52%, #ffffff 58%, #e9e9e9);
}
/* --- Testimonial over a washed-out photo -------------------------------- */
.cf-testimonial {
  position: relative;
  isolation: isolate;
  padding: clamp(4rem, 8vw, 9rem) clamp(1.25rem, 5vw, 6rem) !important;
  background-size: cover !important;
  background-position: center !important;
}
.cf-testimonial:before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.8);
  z-index: 0;
}
.cf-testimonial > .l-section-h {
  position: relative;
  z-index: 1;
}
.cf-testimonial .cf-quote p {
  font-family: Fraunces, Georgia, serif;
  font-weight: 300;
  font-style: italic;
  font-size: clamp(1.25rem, 2.2vw, 2.25rem);
  line-height: 1.25;
  letter-spacing: -0.01em;
  text-align: center;
  color: #151515;
  max-width: 52.5rem;
  margin: 0 auto;
  text-wrap: pretty;
}
.cf-testimonial .cf-quote em {
  font-weight: 500;
  font-style: italic;
}
/* --- Doctors grid ------------------------------------------------------- */
.cf-team-intro .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(2rem, 3.4vw, 3.75rem);
  line-height: 1.08;
  color: #151515;
  margin: 0;
}
.cf-team-intro .cf-h2 h2 em {
  font-style: italic;
}
.cf-team-intro .cf-team-note p {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: #151515;
  margin: 0;
}
.cf-doctors .cf-doctor > .vc_column-inner {
  background: #fff;
  box-shadow: 0 0 80px rgba(0, 0, 0, 0.1);
  padding: 0 !important;
  height: 100%;
}
.cf-doctors .cf-doctor img {
  width: 100%;
  aspect-ratio: 0.8666666667;
  object-fit: cover;
  display: block;
}
.cf-doctors .cf-doctor-name {
  padding: 1.5rem;
  border-bottom: 2px solid #e9e0bf;
}
.cf-doctors .cf-doctor-name h3 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.15rem, 1.6vw, 1.75rem);
  line-height: 1;
  color: #6b6b6b;
  margin: 0;
}
.cf-doctors .cf-doctor-name h3 em {
  font-style: italic;
  color: #151515;
}
/* --- Accreditation logo row --------------------------------------------- */
.cf-affiliations {
  background: #fff;
  padding: clamp(2rem, 4vw, 4rem) clamp(1.5rem, 6vw, 8rem) !important;
}
.cf-affiliations .wpb_wrapper {
  padding: 0 !important;
}
.cf-affiliations img {
  width: auto !important;
  height: clamp(2.25rem, 3.6vw, 4.3rem);
  object-fit: contain;
  mix-blend-mode: multiply;
  opacity: 0.85;
}
.cf-affiliations .w-image {
  text-align: center;
}
@media (max-width: 767px) {
  .cf-splitrow .cf-split-media img {
    min-height: 16rem;
  }
}
/* ==========================================================================
   Carefree — 06 Patient resources   (2026-09-14)  ported from .resources/.rcard
   ========================================================================== */
.cf-resources {
  background: #fff;
}
.cf-resources .cf-resources-intro {
  padding-bottom: 2.5rem;
}
.cf-resources .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(2rem, 3.4vw, 3.75rem);
  line-height: 1.08;
  color: #151515;
  margin: 0;
}
.cf-resources .cf-h2 h2 em {
  font-style: italic;
}
.cf-resources .cf-secindex {
  text-align: right;
}
.cf-resources .cf-secindex p {
  text-align: right;
}
/* Each card is an inner row carrying its own background image. */
.cf-rcard {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex !important;
  min-height: 17.5rem;
  margin-bottom: 0.5rem !important;
  background-size: cover !important;
  background-position: center !important;
}
.cf-rcard > .l-section-h, .cf-rcard .vc_column-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 100%;
}
.cf-rcard .vc_column-inner {
  padding: 1.5rem !important;
}
.cf-rcard h3 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.3rem, 2vw, 2.1rem);
  line-height: 1.05;
  color: #fff;
  margin: 0;
}
.cf-rcard h3 a {
  color: #fff !important;
  text-decoration: none;
}
.cf-rcard h3 a:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.cf-rcard h3 sup {
  font-size: 0.55em;
  vertical-align: super;
}
.cf-rcard .cf-rcard-eyebrow {
  font-style: italic;
  color: #cfbb74;
  display: block;
}
.cf-rcard p {
  color: #fff;
  font-size: 0.95rem;
  margin: 0.75rem 0 0;
}
.cf-rcard--feature {
  /* Must equal two stacked tiles PLUS the 8px gap between them, or it ends
	   8px short of the column beside it. Derived so it tracks the tile height. */
  min-height: calc(17.5rem * 2 + 0.5rem);
}
.cf-rcard--feature h3 {
  font-size: clamp(1.8rem, 3vw, 3rem);
}
/* Starburst badge on the featured promo. */
.cf-rbadge {
  position: absolute;
  top: -2rem;
  right: -3rem;
  width: clamp(12rem, 18vw, 21rem);
  aspect-ratio: 1;
  z-index: 2;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.cf-rbadge img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.cf-rbadge .cf-rbadge__back {
  transform: rotate(-15deg) scale(0.94);
}
.cf-rbadge span {
  position: relative;
  font-family: Fraunces, Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.75rem, 3.2vw, 3.75rem);
  line-height: 0.8;
  letter-spacing: -0.06em;
  text-align: center;
  color: #fff;
  transform: translateY(-6%);
}
@media (max-width: 767px) {
  .cf-rcard--feature {
    min-height: 22rem;
  }
  .cf-rbadge {
    width: 11rem;
    right: -2rem;
  }
}
/* vc_row_inner gets no .l-section-img from Impreza, so the card background is a
   real us_image pinned behind the content instead of a CSS background. */
.cf-rcard .cf-rcard-bg {
  position: absolute !important;
  inset: 0;
  z-index: 0;
  margin: 0 !important;
}
.cf-rcard .cf-rcard-bg .w-image-h, .cf-rcard .cf-rcard-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cf-rcard:after {
  z-index: 1;
}
.cf-rcard .vc_column-inner {
  z-index: 2;
}
.cf-rcard .cf-rbadge {
  z-index: 3;
}
/* ==========================================================================
   Carefree — Contact split ("Start Here")   (2026-09-14)
   ========================================================================== */
.cf-contact {
  background: #faf8f0;
  padding: clamp(3.5rem, 6vw, 7rem) clamp(1.5rem, 5vw, 6.5rem) !important;
  /* Hairline between the two halves, as in the design. */
  /* Impreza's cform, restyled to the design's bordered fields. */
}
.cf-contact .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.9rem, 3.2vw, 3.4rem);
  line-height: 1.1;
  color: #151515;
  margin: 0 0 1.25rem;
}
.cf-contact .cf-h2 h2 em {
  font-style: italic;
}
.cf-contact p {
  line-height: 1.6;
  color: #151515;
}
.cf-contact .cf-contact-form-col > .vc_column-inner {
  border-left: 1px solid rgba(21, 21, 21, 0.12);
  padding-left: clamp(1.5rem, 4vw, 4.5rem) !important;
}
.cf-contact .cf-nap {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(21, 21, 21, 0.12);
}
.cf-contact .cf-nap dl {
  margin: 0;
}
.cf-contact .cf-nap dt {
  font-family: "DM Sans", Montserrat, sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6b6b6b;
  margin-bottom: 0.65rem;
}
.cf-contact .cf-nap dd {
  margin: 0 0 0.2rem;
  font-size: 0.95rem;
  color: #151515;
  display: flex;
  gap: 1.5rem;
  justify-content: space-between;
}
.cf-contact .cf-nap a {
  color: #a38c38;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.cf-contact .cf-contact-form input[type="text"], .cf-contact .cf-contact-form input[type="email"], .cf-contact .cf-contact-form input[type="tel"], .cf-contact .cf-contact-form select, .cf-contact .cf-contact-form textarea {
  background: transparent;
  border: 1px solid #a38c38;
  border-radius: 0;
  padding: 0.85rem 1rem;
  font-size: 0.95rem;
  color: #151515;
  width: 100%;
}
.cf-contact .cf-contact-form textarea {
  min-height: 8rem;
}
@media (max-width: 767px) {
  .cf-contact .cf-contact-form-col > .vc_column-inner {
    border-left: 0;
    padding-left: 0 !important;
    margin-top: 2.5rem;
  }
}
/* Form labels: small uppercase caps above each field, as in the design. */
.cf-contact .cf-contact-form .w-form-row-label span {
  font-family: "DM Sans", Montserrat, sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6b6b6b;
}
.cf-contact .cf-contact-form .w-form-row {
  margin-bottom: 1rem;
}
.cf-contact .cf-contact-form .w-form-row.for_agreement span, .cf-contact .cf-contact-form .w-form-row.for_agreement label {
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.8rem;
}
.cf-contact .cf-contact-form .w-btn {
  margin-top: 0.5rem;
}
/* ==========================================================================
   Carefree — light footer   (2026-09-14)   block "Carefree Footer"
   ========================================================================== */
.cf-footer {
  background: #fff;
  padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 5vw, 6.75rem) !important;
}
.cf-footer .cf-foot-logo {
  margin-bottom: 1.25rem;
}
.cf-footer .cf-foot-logo img {
  max-width: 230px;
  height: auto;
}
.cf-footer .cf-foot-nap p {
  font-size: 0.9rem;
  line-height: 1.6;
  color: #151515;
  margin: 0 0 1.5rem;
}
.cf-footer .cf-foot-col h4 {
  font-family: "DM Sans", Montserrat, sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #151515;
  margin: 0 0 1.4rem;
}
.cf-footer .cf-foot-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cf-footer .cf-foot-col li {
  margin: 0 0 0.85rem;
}
.cf-footer .cf-foot-col a {
  font-size: 0.9rem;
  color: #a38c38;
  text-decoration: none;
  transition: color 0.2s ease;
}
.cf-footer .cf-foot-col a:hover {
  color: #151515;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.cf-footer-base {
  background: #fff;
  border-top: 1px solid #e6e2d4;
  padding: 1.25rem clamp(1.5rem, 5vw, 6.75rem) !important;
}
.cf-footer-base p {
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6b6b6b;
  margin: 0;
}
.cf-footer-base .cf-foot-legal p {
  text-align: right;
}
.cf-footer-base .cf-foot-legal a {
  color: #6b6b6b;
  margin-left: 1.75rem;
  text-decoration: none;
}
.cf-footer-base .cf-foot-legal a:hover {
  color: #151515;
}
@media (max-width: 767px) {
  .cf-footer-base .cf-foot-legal p {
    text-align: left;
    margin-top: 0.75rem;
  }
  .cf-footer-base .cf-foot-legal a {
    margin: 0 1.5rem 0 0;
  }
}
/* ==========================================================================
   Carefree — logo lockup, translucent nav, hero H1 colour split  (2026-09-14)
   Ported from carefreephp: .logo / .nav / .h1
   ========================================================================== */
/* Stacked logo: real Figma mark over the wordmark as live text. */
.cf-logo-stack {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0 !important;
}
.cf-logo-text {
  display: block;
  text-align: center;
  margin-top: -0.2em;
  line-height: 1;
}
.cf-logo-text .cf-logo-name {
  display: block;
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1;
  color: #151515;
}
.cf-logo-text .cf-logo-sub {
  display: block;
  font-family: Montserrat, "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #a38c38;
  margin-top: 0.35em;
}
/* Translucent nav bar with a backdrop blur, as in the design. */
.l-header .l-subheader.at_middle, .l-header.shadow_none .l-subheader.at_middle {
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
  border-bottom: 1px solid #a38c38;
}
/* Hero H1: beige base, white italic emphasis. */
.cf-hero .cf-hero-h1 h1 {
  color: #e9e0bf !important;
  font-weight: 300;
}
.cf-hero .cf-hero-h1 h1 em {
  font-style: italic;
  font-weight: 400;
  color: #fff !important;
  letter-spacing: -0.033em;
}
@media (max-width: 900px) {
  .cf-logo-text .cf-logo-name {
    font-size: 1.2rem;
  }
  .cf-logo-text .cf-logo-sub {
    font-size: 0.58rem;
  }
}
/* Impreza compiles header colours into its generated us-assets CSS, so the theme
   option alone stays solid. Set the translucency here (reference: .nav 0.8 + blur). */
.l-header .l-subheader.at_middle {
  background-color: rgba(255, 255, 255, 0.8) !important;
}
.l-header.sticky .l-subheader.at_middle, .l-header .l-subheader.at_middle.sticky {
  background-color: rgba(255, 255, 255, 0.85) !important;
}
/* ==========================================================================
   Carefree — screengrab round 2   (2026-09-14)
   The repeated "htag styling" note is one rule: in the reference every display
   heading is GREY (#6b6b6b) at weight 300, and only the italic <em> is INK.
   The WP build had them all flat ink.
   ========================================================================== */
.cf-h2 h2, .cf-intro .cf-h2 h2, .cf-splitrow .cf-h2 h2, .cf-team-intro .cf-h2 h2, .cf-resources .cf-h2 h2, .cf-contact .cf-h2 h2, .cf-services .cf-h2 h2 {
  color: #6b6b6b !important;
  font-weight: 300 !important;
}
.cf-h2 h2 em, .cf-intro .cf-h2 h2 em, .cf-splitrow .cf-h2 h2 em, .cf-team-intro .cf-h2 h2 em, .cf-resources .cf-h2 h2 em, .cf-contact .cf-h2 h2 em, .cf-services .cf-h2 h2 em {
  font-style: italic;
  font-weight: 400;
  color: #151515 !important;
}
/* --- 01 Philosophy: white ground, not sand ------------------------------ */
.cf-intro {
  background: #fff !important;
}
/* --- 02 Services: row-level hover, featured row, trailing arrow ---------- */
.cf-service {
  background: rgba(255, 255, 255, 0.2);
  /* The title is not the hover target - the row is. */
}
.cf-service:hover {
  background: #fff;
}
.cf-service .cf-service__title h3 a {
  color: #151515 !important;
}
.cf-service:hover .cf-service__title h3 a {
  color: #151515 !important;
}
.cf-service .cf-service__mark {
  text-align: right;
}
.cf-service .cf-service__mark img {
  width: 8rem;
  height: auto;
}
.cf-service--featured {
  background: #e9e0bf !important;
  padding-left: 3rem !important;
  padding-right: 3rem !important;
}
.cf-service--featured:hover {
  background: #e9e0bf !important;
}
.cf-service--featured .cf-service__num p {
  color: #151515;
}
.cf-service--featured .cf-service__mark img {
  width: 8.25rem;
}
/* --- 03 Split: line the copy up with the section above ------------------ */
.cf-splitrow .cf-split-copy > .vc_column-inner {
  padding-left: clamp(1.5rem, 8.2vw, 8.25rem) !important;
}
/* --- 04 Doctors: inset photo, soft drop shadow, arrow -------------------- */
.cf-doctors .cf-doctor > .vc_column-inner {
  background: #fff;
  box-shadow: 0 0 80px rgba(0, 0, 0, 0.1);
  padding: 0.5rem 0.5rem 0 !important;
}
.cf-doctors .cf-doctor-name {
  padding: 1.4rem 1rem;
  border-bottom: 2px solid #e9e0bf;
}
.cf-doctors .cf-doctor-name h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.cf-doctors .cf-doctor-name img {
  width: 3.2rem;
  height: auto;
  flex: none;
}
/* --- 06 Resources: the card art was painting over its own text ---------- */
.cf-rcard .cf-rcard-bg {
  z-index: 0 !important;
}
.cf-rcard .wpb_text_column, .cf-rcard .w-btn-wrapper {
  position: relative;
  z-index: 2;
}
/* "Start Here" has no <em>, and the reference overrides it to ink and centres it
   (.contact__form-title), so it must not inherit the grey heading base. */
.cf-contact .cf-contact-form-col .cf-h2 h2 {
  color: #151515 !important;
  text-align: center;
}
/* Impreza's content container is max-width 1280px centred, so the full-bleed split
   rows must reproduce that same side gutter to line up with the sections above. */
.cf-splitrow .cf-split-copy > .vc_column-inner {
  padding-left: max(1.5rem, calc((100vw - 1280px) / 2)) !important;
}
/* Align the full-bleed split copy with the 1280px content container.
   Percentages on .l-section-h resolve against the real content width, so this
   avoids the 100vw-includes-scrollbar error; +24px cancels Impreza's negative
   column gutter. */
.cf-splitrow > .l-section-h {
  padding-left: max(0px, calc((100% - 1280px) / 2 + 24px)) !important;
}
.cf-splitrow .cf-split-copy > .vc_column-inner {
  padding-left: 0 !important;
  padding-right: clamp(1.5rem, 4vw, 4rem) !important;
}
/* Doctor names are links, so they were picking up the gold link colour instead of
   the grey/ink heading pair. */
.cf-doctors .cf-doctor-name h3 a {
  color: #6b6b6b !important;
  text-decoration: none;
  display: inline;
}
.cf-doctors .cf-doctor-name h3 a em {
  color: #151515 !important;
  font-style: italic;
}
.cf-doctors .cf-doctor:hover .cf-doctor-name h3 a {
  color: #151515 !important;
}
/* ==========================================================================
   Carefree — corrections from screengrab review   (2026-09-14)
   ========================================================================== */
/* 02 services — the beige row in the mock is the HOVER state, not a featured row.
   Every row rests at rgba(255,255,255,0.2) and lifts to beige on hover, swapping
   the straight arrow for the diagonal one. */
.cf-service {
  background: rgba(255, 255, 255, 0.2) !important;
  transition: background 0.3s ease;
}
.cf-service:hover {
  background: #e9e0bf !important;
}
.cf-service .cf-service__mark {
  text-align: right;
  position: relative;
}
.cf-service .cf-arrow {
  display: inline-block;
  vertical-align: middle;
  height: auto;
}
.cf-service .cf-arrow--rest {
  width: 8rem;
}
.cf-service .cf-arrow--hover {
  width: 8.25rem;
  display: none;
}
.cf-service:hover .cf-arrow--rest {
  display: none;
}
.cf-service:hover .cf-arrow--hover {
  display: inline-block;
}
/* 05 Technology — the CEREC shot is a product image, not a scene: cropping it with
   object-fit:cover cut the machine off. Fit the whole unit inside the column and let
   the section's own gradient show through the letterbox. Section 03's office photo
   deliberately keeps `cover`. */
.cf-splitrow--gradient .cf-split-media > .vc_column-inner {
  padding: clamp(1.5rem, 4vw, 5rem) clamp(1.5rem, 5vw, 5rem) !important;
}
.cf-splitrow--gradient .cf-split-media img {
  object-fit: contain !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: 100%;
  width: 100%;
}
.cf-splitrow--gradient .cf-split-media .w-image, .cf-splitrow--gradient .cf-split-media .w-image-h {
  height: auto;
}
/* ==========================================================================
   Carefree — 06 Resources corrections   (2026-09-14)
   Figma: grid gap 8px, card p-[24px], badge 347px at left 203.51 / top -134.62
   on a ~467px card (i.e. top-right, overflowing and clipped).
   ========================================================================== */
/* Close the gap between the heading row and the grid - both rows were paying
   full section padding. */
.cf-resources.cf-section {
  padding-bottom: 0 !important;
}
.cf-resources-grid {
  padding-top: 0 !important;
  padding-bottom: clamp(3rem, 6vw, 8rem) !important;
}
.cf-rcard {
  /* The badge must position against the CARD, so its wrapper stays static. */
}
.cf-rcard .cf-rbadge-wrap {
  position: static !important;
  z-index: auto !important;
}
/* Badge: top-right, overflowing the corner, clipped by the card. */
.cf-rbadge {
  position: absolute;
  top: -15%;
  right: -18%;
  left: auto;
  width: 74.4%;
  aspect-ratio: 1;
  z-index: 3;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.cf-rbadge img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.cf-rbadge .cf-rbadge__back {
  transform: rotate(-15deg) scale(0.94);
}
.cf-rbadge span {
  position: relative;
  z-index: 1;
  font-family: Fraunces, Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.5rem, 2.6vw, 3.25rem);
  line-height: 0.8;
  letter-spacing: -0.06em;
  text-align: center;
  color: #fff;
  transform: translate(-14%, 14%);
}
/* Keep the heading and CTA above both washes. */
.cf-rcard .wpb_text_column:not(.cf-rbadge-wrap), .cf-rcard .w-btn-wrapper {
  position: relative;
  z-index: 2;
}
/* The card art and the copy both live inside .vc_column-inner, which Impreza gives
   position:relative + z-index:2 - that is a stacking context, so a gradient painted
   on .cf-rcard itself sits BEHIND the whole column, image included. Attach it to the
   image wrapper instead: it then paints above the <img> and below the copy (z-index 2)
   inside the same context. */
.cf-rcard .cf-rcard-bg:after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to top, rgba(21, 21, 21, 0.92) 0%, rgba(21, 21, 21, 0.62) 26%, rgba(21, 21, 21, 0.22) 52%, rgba(21, 21, 21, 0) 88%);
}
/* Resources grid gutters.
   The row's gap="10" produced no column padding (measured 0px), so the only gap was
   the cards' own 8px margin-bottom — vertical only. Add a matching 8px horizontal
   gutter the standard way: 4px padding per column, cancelled by -4px on the row so
   the grid's outer edges stay flush with the 1280px container. Figma uses gap-[8px]. */
.cf-resources-grid > .l-section-h > .g-cols {
  margin-left: -4px !important;
  margin-right: -4px !important;
}
.cf-resources-grid > .l-section-h > .g-cols > .wpb_column {
  padding-left: 4px !important;
  padding-right: 4px !important;
}
/* ==========================================================================
   Carefree — Meet The Dentists / Dental Implants page patterns  (2026-09-14)
   ========================================================================== */
/* Bio intro: image + full-height copy, no numbered index (doctor/implants
   intro rows omit the "01" numeral the homepage version has). */
.cf-bio-intro {
  background: #fff;
  /* Impreza's .w-image wrapper sizes itself to the image's own intrinsic ratio
	   (align_center), so it renders smaller than the column. Force the wrapper
	   chain to fill the column, then cover-fit the <img> inside it. */
  /* height:100% on the wrapper chain does nothing because its own parent
	   (.vc_column-inner/.wpb_wrapper) has no explicit height - percentages need
	   a real ancestor height, and content height is auto all the way up. Fill by
	   absolute positioning instead, anchored to the column, which IS stretched to
	   match its sibling (content_placement="middle" on an equal-height flex row). */
}
.cf-bio-intro .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 300;
  font-size: clamp(2rem, 3.4vw, 3.75rem);
  line-height: 1.08;
  color: #6b6b6b;
  margin: 0 0 1.25rem;
}
.cf-bio-intro .cf-h2 h2 em {
  font-style: italic;
  font-weight: 400;
  color: #151515;
}
.cf-bio-intro .cf-prose p {
  line-height: 1.6;
  color: #151515;
}
.cf-bio-intro .cf-prose p + p {
  margin-top: 1.25rem;
}
.cf-bio-intro .cf-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
}
.cf-bio-intro .cf-bio-img {
  position: relative;
  min-height: 20rem;
}
.cf-bio-intro .cf-bio-img .w-image, .cf-bio-intro .cf-bio-img .w-image-h {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.cf-bio-intro .cf-bio-img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Office: two columns divided by a hairline, CTA centered below both. */
.cf-office {
  background: #fff;
}
.cf-office .cf-office-col > .vc_column-inner {
  padding: clamp(2rem, 4vw, 6rem) clamp(1.5rem, 5vw, 5rem) !important;
}
.cf-office .cf-office-col:first-child > .vc_column-inner {
  border-right: 1px solid #e9e0bf;
}
.cf-office .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 300;
  font-size: clamp(1.9rem, 3vw, 3.25rem);
  line-height: 1.1;
  color: #6b6b6b;
  margin: 0 0 1.25rem;
}
.cf-office .cf-h2 h2 em {
  font-style: italic;
  font-weight: 400;
  color: #151515;
}
.cf-office p {
  line-height: 1.6;
  color: #151515;
}
.cf-office .cf-office-cta {
  text-align: center;
  padding-top: clamp(1rem, 3vw, 2.5rem);
}
/* Team intro heading with no numbered index (doctor page "Meet the other
   doctors", implants page "The Promise We Make to Our Patients"). */
.cf-team-intro-plain .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 300;
  font-size: clamp(2rem, 3.4vw, 3.75rem);
  line-height: 1.08;
  text-align: center;
  color: #6b6b6b;
  margin: 0;
}
.cf-team-intro-plain .cf-h2 h2 em {
  font-style: italic;
  font-weight: 400;
  color: #151515;
}
.cf-team-intro-plain .cf-team-note p {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: #151515;
  margin: 0;
}
/* Promo cards (implants "TEAM" row: technology / financing / treatment) —
   built on the same shell as the doctor cards: soft shadow, blurred backdrop,
   2px beige rule between the image and the copy. */
.cf-promos .cf-promo > .vc_column-inner {
  background: #fff;
  box-shadow: 0 0 80px rgba(0, 0, 0, 0.1);
  padding: 0 !important;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.cf-promos .cf-promo img {
  width: 100%;
  height: 25rem;
  object-fit: cover;
  display: block;
}
.cf-promos .cf-promo-body {
  padding: 2rem 1.5rem;
  border-bottom: 2px solid #e9e0bf;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
  flex: 1;
}
.cf-promos .cf-promo-body h3 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.5rem, 2.2vw, 2.1rem);
  line-height: 1.05;
  color: #6b6b6b;
  margin: 0;
}
.cf-promos .cf-promo-body h3 em {
  font-style: italic;
  color: #151515;
}
.cf-promos .cf-promo-body p {
  font-size: 1rem;
  color: #6b6b6b;
  margin: 0;
  flex: 1;
}
@media (max-width: 767px) {
  .cf-office .cf-office-col:first-child > .vc_column-inner {
    border-right: 0;
    border-bottom: 1px solid #e9e0bf;
  }
}
/* Doctor bio rows (Staff Bio grid layout, 1259): the image cell is
   `flex: 0 1 auto; width: auto`, so it auto-sizes to whatever width preserves
   THAT photo's own natural aspect ratio at a fixed height. Five different source
   photos (portrait crop, near-square, arbitrary PNG) produced five different
   column widths - 282px to 470px - which is why nothing lined up. Force one
   fixed box and cover-fit every photo into it, same absolute-fill technique
   used for the bio intro images. */
.cf-doctor-cards .post_image {
  position: relative !important;
  flex: none !important;
  width: 24rem !important;
  height: 32rem !important;
  overflow: hidden;
}
.cf-doctor-cards .post_image img {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}
@media (max-width: 900px) {
  .cf-doctor-cards .post_image {
    width: 100% !important;
    height: 22rem !important;
  }
}
/* ==========================================================================
   Technology card grid — Figma "Section - DOCTORS" on /technology/
   Seven cards flowing 3 / 3 / 1 on a white ground; white card surface with the
   design's wide soft shadow. Scoped to .cf-tech-grid so no other grid moves.
   Added 2026-09-22
   ========================================================================== */
.cf-tech-grid {
  background-color: #fff;
}
.cf-tech-grid .cf-card {
  margin-bottom: 2.5rem;
}
.cf-tech-grid .cf-card > .vc_column-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 0;
  background-color: #fff;
  box-shadow: 0 0 80px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.cf-tech-grid .cf-card-img {
  margin-bottom: 0;
}
.cf-tech-grid .cf-card-img .w-image-h {
  display: block;
}
.cf-tech-grid .cf-card-img img {
  display: block;
  width: 100%;
  aspect-ratio: 1.3333333333;
  object-fit: cover;
}
.cf-tech-grid .cf-card-title {
  margin: 1.75rem 1.5rem 0.75rem;
}
.cf-tech-grid .cf-card-title h3 {
  margin: 0;
  color: #151515;
  font-family: var(--h1-font-family, Georgia, serif);
  font-size: clamp(1.4rem, 2.1vw, 2rem);
  line-height: 1.05;
  font-weight: 400;
}
.cf-tech-grid .cf-card-copy {
  flex: 1 1 auto;
  margin: 0 1.5rem 1.5rem;
  color: #6b6b6b;
  font-size: 1rem;
  line-height: 1.5;
}
.cf-tech-grid .cf-btn-outline {
  margin: 0 1.5rem 1.75rem;
}
@media (max-width: 900px) {
  .cf-tech-grid .cf-card {
    margin-bottom: 1.5rem;
  }
}
/* ==========================================================================
   Patient review cards — /testimonials/
   Real reviews carried over from the old-theme page, laid out as cards on the
   design's white ground. Scoped to .cf-reviews.
   Added 2026-09-22
   ========================================================================== */
.cf-reviews {
  background-color: #fff;
}
.cf-reviews .cf-reviews-row {
  margin-bottom: 2.5rem;
}
.cf-reviews .vc_column_container > .vc_column-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 2rem 1.75rem !important;
  background-color: #fff;
  box-shadow: 0 0 80px rgba(0, 0, 0, 0.1);
}
.cf-reviews .cf-review {
  flex: 1 1 auto;
  margin-bottom: 1rem;
  color: #6b6b6b;
  font-size: 1rem;
  line-height: 1.6;
}
.cf-reviews .cf-review-name {
  margin-bottom: 0;
  color: #151515;
  font-family: var(--h1-font-family, Georgia, serif);
  font-size: 1.125rem;
  font-style: italic;
}
@media (max-width: 900px) {
  .cf-reviews .cf-reviews-row {
    margin-bottom: 1.25rem;
  }
}
/* ==========================================================================
   Composer-heading compatibility  (2026-09-22)

   Two heading patterns exist on this site:
     old  [vc_column_text el_class="cf-h2"]<h2>..</h2>[/vc_column_text]
          -> class lands on a WRAPPER div, matched by ".cf-h2 h2"
     new  [vc_custom_heading el_class="cf-h2" ...]
          -> class lands on the HEADING ITSELF, so ".cf-h2 h2" never matches

   Pages rebuilt with composer elements use the second form, so these rules
   mirror the existing wrapper rules onto the element form. Values are copied
   from the originals above so both patterns render identically.
   ========================================================================== */
h1.cf-hero-h1 {
  font-family: Fraunces, Georgia, serif !important;
  font-weight: 300;
  color: #e9e0bf !important;
  font-size: clamp(2.2rem, 4.5vw, 3.75rem);
  line-height: 1.15;
  margin: 0;
}
h1.cf-hero-h1 em {
  font-style: italic;
  font-weight: 400;
  color: #fff !important;
  letter-spacing: -0.033em;
}
h1.cf-hero-h1--center {
  text-align: center;
}
p.cf-hero-sub {
  color: rgba(255, 255, 255, 0.9);
  text-align: center;
  margin: 0.5rem 0 1.25rem;
}
h2.cf-h2 {
  font-family: Fraunces, Georgia, serif !important;
  font-weight: 300 !important;
  font-size: clamp(1.8rem, 3.4vw, 3.25rem);
  line-height: 1.1;
  color: #6b6b6b !important;
  margin: 0 0 1.25rem;
}
h2.cf-h2 em {
  font-style: italic;
  font-weight: 400;
  color: #151515 !important;
}
h3.cf-service__title {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.4rem, 2.2vw, 2.4rem);
  line-height: 1.1;
  color: #151515;
  margin: 0;
}
h3.cf-service__title a {
  color: #151515;
  text-decoration: none;
  transition: color 0.25s ease;
}
h3.cf-service__title sup {
  font-size: 0.45em;
  vertical-align: super;
}
.cf-service:hover h3.cf-service__title a {
  color: #a38c38;
}
/* Technology card titles (.cf-card-title is on the h3 itself, so the margin
   already applies; only the type treatment was missing). */
.cf-tech-grid h3.cf-card-title {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.4rem, 2.1vw, 2rem);
  line-height: 1.05;
  color: #151515;
}
/* Prose sections emitted by the detail-page converter. Capped measure so a
   full-width row does not run to 1280px of unreadable line length. */
.cf-prose-row .cf-prose {
  max-width: 70ch;
}
.cf-prose-row .cf-prose p {
  color: #6b6b6b;
  line-height: 1.6;
  margin: 0 0 1.25rem;
}
.cf-prose-row .cf-prose p:last-child {
  margin-bottom: 0;
}
/* ==========================================================================
   Carefree — detail-page Q&A rows, review attribution, legal prose (2026-09-24)
   Q&A rows reuse the services-list language: gold hairlines, question in the
   display face, answer as prose. Every answer stays visible (no accordion).
   ========================================================================== */
.cf-qa {
  background: #fafafa;
}
.cf-qa .cf-qa-head {
  padding-bottom: 2rem;
}
.cf-qa .cf-qa-head .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(2rem, 3.4vw, 3.75rem);
  line-height: 1.08;
  margin: 0;
}
.cf-qa-row {
  background: rgba(255, 255, 255, 0.2);
  border-top: 1px solid #a38c38;
  border-bottom: 1px solid #a38c38;
  margin-top: -1px !important;
  padding: 1.75rem 1.5rem !important;
  transition: background 0.3s ease;
}
.cf-qa-row:hover {
  background: #fff;
}
.cf-qa-row .vc_column-inner, .cf-qa-row .wpb_wrapper {
  padding: 0 !important;
}
.cf-qa-row .cf-qa-q h3 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.25rem, 1.8vw, 1.85rem);
  line-height: 1.15;
  color: #151515;
  margin: 0;
}
.cf-qa-row .cf-qa-a {
  color: #6b6b6b;
  line-height: 1.6;
}
.cf-qa-row .cf-qa-a p {
  margin: 0 0 1rem;
}
.cf-qa-row .cf-qa-a p:last-child {
  margin-bottom: 0;
}
.cf-qa-row .cf-qa-a ul, .cf-qa-row .cf-qa-a ol {
  margin: 0 0 1rem 1.25rem;
}
.cf-qa-row .cf-qa-a li {
  margin-bottom: 0.35rem;
}
/* Prose section headings (doctor pages' extra section, legal page). */
.cf-prose-row .cf-h2 h2 {
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(1.9rem, 3vw, 3.25rem);
  line-height: 1.1;
  margin: 0 0 1.5rem;
}
.cf-legal .cf-prose {
  max-width: 80ch;
}
.cf-legal .cf-prose h3 {
  font-family: Fraunces, Georgia, serif;
  font-weight: 400;
  font-size: clamp(1.25rem, 1.8vw, 1.75rem);
  color: #151515;
  margin: 2.5rem 0 0.75rem;
}
.cf-legal .cf-prose ul, .cf-legal .cf-prose ol {
  margin: 0 0 1.25rem 1.25rem;
  color: #6b6b6b;
}
/* Review attribution under the testimonial quote. */
.cf-testimonial .cf-quote .cf-quote-name {
  font-family: "DM Sans", Montserrat, sans-serif;
  font-style: normal;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #a38c38;
  margin-top: 1.5rem;
  text-align: center;
}
@media (max-width: 767px) {
  .cf-qa-row {
    padding: 1.25rem 0 !important;
  }
  .cf-qa-row .cf-qa-q h3 {
    margin-bottom: 0.75rem;
  }
}
/* Cap the bio/intro photo at the Figma's 720px portrait (34199:611 is 560x720).
   Absolute children resolve percentage heights against the stretched column, so
   min() fills short intros and stops at 45rem when the copy runs long, instead
   of stretching the photo into a tall sliver. Anchored to the top of the row. */
.cf-bio-intro .cf-bio-img .w-image {
  top: 0 !important;
  bottom: auto !important;
  height: min(100%, 45rem) !important;
}
/* ==========================================================================
   Header nav — Figma "Nav - NAV" (I34199:597)                  (2026-09-24)
   White 80% + 9px blur bar, 80px side padding; menu DM Sans Medium 16px,
   0.1em tracking, 40px between items; phone DM Sans SemiBold 20px; CTA 16px
   with 20x32 padding. clamp() hits those exact values at 1920px and scales
   down with the viewport so the bar still fits above the 900px mobile menu.
   Replaces the old global 0.72rem "crowding" override.
   ========================================================================== */
.l-header {
  --cf-nav-fs: clamp(0.72rem, 0.8333vw, 1rem);
  --cf-nav-gap: clamp(0.75rem, 2.0833vw, 2.5rem);
  /* The theme's "solid" header paints .l-header itself sand (#faf8f0), so the
	   translucent bar below was sitting on an opaque box and never showed the
	   hero through it. Clear it; the bar's own rgba + blur does the work. */
  /* Impreza pads .l-subheader itself (40px); zero it so the 80px below is the
	   real inset, not 120px. */
  /* Figma gives the phone p-[20px] inside a gap-[16px] group: ~36px to the CTA. */
}
.l-header, .l-header.bg_solid, .l-header.sticky {
  background: transparent !important;
}
.l-header .l-subheader.at_middle {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.l-header .l-subheader.at_middle .l-subheader-h {
  padding-left: clamp(1.25rem, 4.1667vw, 5rem) !important;
  padding-right: clamp(1.25rem, 4.1667vw, 5rem) !important;
}
.l-header .cf-primary-nav .w-nav-list.level_1 > li > a.w-nav-anchor {
  font-family: "DM Sans", Montserrat, sans-serif !important;
  font-size: var(--cf-nav-fs) !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  padding-left: calc(var(--cf-nav-gap) / 2) !important;
  padding-right: calc(var(--cf-nav-gap) / 2) !important;
}
.l-header .cf-header-phone, .l-header .cf-header-phone a {
  font-family: "DM Sans", Montserrat, sans-serif !important;
  font-size: clamp(0.85rem, 1.0417vw, 1.25rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
}
.l-header .cf-header-phone {
  padding-left: clamp(0.5rem, 1.0417vw, 1.25rem) !important;
  padding-right: clamp(0.5rem, 1.0417vw, 1.25rem) !important;
}
.l-header .cf-header-cta {
  font-family: "DM Sans", Montserrat, sans-serif !important;
  font-size: var(--cf-nav-fs) !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  padding: clamp(0.6rem, 1.0417vw, 1.25rem) clamp(0.9rem, 1.6667vw, 2rem) !important;
}
.l-header .cf-header-cta a {
  font: inherit !important;
  letter-spacing: inherit !important;
}
/* Doctor bio rows: the photo fills the text column's height, so a 2-paragraph bio
   squashed a headshot into a wide landscape crop (640x366). Portrait rows reserve
   the Figma's 720px portrait height (34199:611 is 560x720) regardless of bio
   length; short bios then center beside a full portrait. Crop anchors toward the
   top so heads are never cut. Long bios still grow the row past 720px and the
   45rem cap keeps the photo at 720. */
.cf-bio-intro--portrait .cf-bio-img {
  min-height: 45rem;
}
.cf-bio-intro--portrait .cf-bio-img img {
  object-position: 50% 18%;
}
@media (max-width: 900px) {
  .cf-bio-intro--portrait .cf-bio-img {
    min-height: 30rem;
  }
}
/* ==========================================================================
   Carefree — mobile / tablet gutter fixes   (2026-10-08)
   Impreza pulls every .g-cols row out by -1.5rem and relies on each column's
   inner padding (or the section padding) to put the gutter back. Several rules
   above zero that padding, which left text flush with the viewport edge.
   ========================================================================== */
/* Services list + detail-page Q&A rows: the row *is* the .g-cols, so it needs
   its own side padding once the columns stack. */
@media (max-width: 767px) {
  .cf-service, .cf-qa-row {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
}
/* Split sections (Our approach / Our technology): keep the image full-bleed but
   never let the row overhang the viewport. Left inset tracks the 1280px
   container on wide screens and floors at 1.5rem on small ones; the copy column
   supplies whatever the section padding does not. */
.cf-splitrow > .l-section-h {
  padding-left: max(1.5rem, calc((100% - 1280px) / 2 + 24px)) !important;
  padding-right: 1.5rem !important;
}
.cf-splitrow .cf-split-copy > .vc_column-inner {
  padding-left: clamp(0px, calc(1.5rem - (100vw - 1280px) / 2), 1.5rem) !important;
}
/* Header: logo + CTA + hamburger need ~440px, so on phones the hamburger was
   pushed off-screen. Drop the CTA (Contact Us stays in the menu). */
@media (max-width: 480px) {
  .l-header .cf-header-cta {
    display: none !important;
  }
}
