.elementor-kit-402{--e-global-color-primary:#77C720;--e-global-color-secondary:#8B8784;--e-global-color-text:#3F3F3F;--e-global-color-accent:#808080;--e-global-typography-primary-font-family:"Metropolis";--e-global-typography-primary-font-weight:900;--e-global-typography-secondary-font-family:"Metropolis";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Metropolis";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Metropolis";--e-global-typography-accent-font-weight:500;color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-kit-402 e-page-transition{background-color:#FFBC7D;}.elementor-kit-402 a{color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-kit-402 h1{color:var( --e-global-color-text );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-kit-402 h2{color:var( --e-global-color-text );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-kit-402 h3{color:var( --e-global-color-text );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-kit-402 h4{color:var( --e-global-color-text );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-kit-402 h5{color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-kit-402 h6{color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Header fix for native Elementor conflicts with site-header wrapper */
@media (max-width: 575px) {
  .site-header,
  .site-header .e-con-inner,
  .site-header .elementor-container {
    inline-size: 100% !important;      /* width:100% without overflow */
    max-inline-size: none !important;
    padding-inline: 0 !important;
    margin-inline: 0 !important;
  }
}

/* remove Elementor’s default container side padding in the footer only */
.footer-wrap{
  --container-default-padding-inline: 0px;
  --container-default-padding-block: 0px; /* optional: vertical too */
  padding: 0; /* belt-and-suspenders */
}

/* BEGIN Retractable Logo */

/* === Retractable Logo (ID-based, image moved by `top`) === */
/* Neutralize Elementor on the wrapper */
#siteLogoImg {
  transform: none !important;
  transition: none !important;
}

/* Move ONLY the child image via `top` (not transform) */
#siteLogoImg img {
  display: block;                 /* remove inline-image baseline gap */
  position: relative;             /* enables top offset */
  top: 0;                         /* JS toggles this to a negative px value */
  transition: top 220ms ease;     /* smooth snap */
  will-change: top;
}

@media (prefers-reduced-motion: reduce) {
  #siteLogoImg img { transition: none; }
}
/* === /Retractable Logo === */


/*END Retractable Logo */


/* BEGIN Accordion Styling — Unified heading, proportional lists, uniform icons
   Baseline: compact chrome on every accordion
   Typography modifiers: .is-italic (style & weight), .is-bold (weight only)
   Indentation: panel paragraphs and bullet lists align under the heading label
   Wrapper roles: use .accordion-heading by default; use .accordion-block where the margin helper is needed for the following text widget
*/

/* ------------------------------------------------------------------
   Wrapper-scoped variables (used by buttons and panels)
-------------------------------------------------------------------*/
.accordion-heading,
.accordion-block {
  /* icon and label gap shared by all accordions */
  --icon-size: clamp(21px, 2.6vw, 23px);
  --label-gap: .55rem;

  /* shared type slope and heading size, larger than .page-text across widths */
  --type-vw: 1.1vw;                                        /* matches .page-text slope */

  /* Original heading size (larger than what is currently used. Kept it commented in case I want to change back */
  /*--btn-fs: clamp(1.06rem, calc(var(--type-vw) * 1.15), 1.22rem);*/

  /*Current Heading Size*/
  --btn-fs: clamp(1rem, var(--type-vw), 1.15rem);

  /* optional tiny list offset for optical tuning; default 0 */
  --panel-offset: 0rem;
}

/* ------------------------------------------------------------------
   Accordion — Base button layout, spacing, colors, arrow
   Compact heading is the default everywhere
-------------------------------------------------------------------*/
button[class^="page-accordion"] {
  font-family: 'Metropolis', Arial, sans-serif;
  color: #3f3f3f;
  width: 100%;
  text-align: left;
  background-color: rgba(128, 128, 128, 0.3);
  border: none;
  padding: .20rem .65rem;            /* compact chrome */
  cursor: pointer;
  box-sizing: border-box;
  transition: color 0.2s ease-in-out;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: var(--label-gap);             /* used by panel indent */

  /* expose left–right padding so panels can derive indent */
  --btn-padL: .65rem;
  padding-left: var(--btn-padL);
  padding-right: var(--btn-padL);

  /* unified heading typography */
  font-weight: 500;
  font-style: normal;
  font-size: var(--btn-fs);
  line-height: 1.08;

  /* slim separators for the compact look */
  border-top: 1px solid rgba(139,135,132,.35);
  border-bottom: 1px solid rgba(139,135,132,.35);
}

/* hover and focus */
button[class^="page-accordion"]:hover,
button[class^="page-accordion"]:focus {
  color: #ffffff;
}

/* active state reverts to inherited color */
button[class^="page-accordion"].active {
  color: inherit;
}

/* icon inside accordion — uniform size everywhere */
button[class^="page-accordion"] img {
  height: var(--icon-size);
  width: var(--icon-size);
  display: inline-block;
  vertical-align: middle;
  margin-top: 0;
}

/* arrow on the right */
button[class^="page-accordion"]::after {
  content: "▼";
  margin-left: auto;
  font-size: 0.9em;
  color: inherit;
  transition: transform 0.2s ease-in-out;
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

/* flip arrow when active */
button[class^="page-accordion"].active::after {
  transform: rotate(180deg);
}

/* ------------------------------------------------------------------
   Font modifiers — orthogonal and stackable
   .is-italic changes style only; .is-bold changes weight only
-------------------------------------------------------------------*/
button[class^="page-accordion"].is-italic { font-style: italic; font-weight: 500; }
button[class^="page-accordion"].is-bold   { font-weight: 700; }
button[class^="page-accordion"].is-bold.is-italic { font-style: italic; font-weight: 700; } 

/* ------------------------------------------------------------------
   Panels — spacing, alignment, and first-paragraph rhythm
-------------------------------------------------------------------*/
.page-accordion-panel {
  display: none;
  margin-bottom: clamp(0.75rem, 1.2vw, 1.25rem);
  --list-hang: clamp(1rem, 1.6vw, 1.2rem);
}

/* Derived indent for paragraph panels: start directly under the heading label */
.accordion-heading .page-accordion-panel:not(.panel-list),
.accordion-block  .page-accordion-panel:not(.panel-list){
  margin-left: calc(
    var(--btn-padL, .65rem) +
    var(--icon-size, 22px) +
    var(--label-gap, .55rem)
  );
}

/* Derived indent for checklist panels: same alignment, with optional tiny offset */
.accordion-heading .page-accordion-panel.panel-list,
.accordion-block  .page-accordion-panel.panel-list{
  margin-left: calc(
    var(--btn-padL, .65rem) +
    var(--icon-size, 22px) +
    var(--label-gap, .55rem) +
    var(--panel-offset, 0rem)
  );
}

/* adjust top margin for single paragraph accordions — opener pulled up */
.page-accordion-panel > p.page-text:first-child {
  margin-top: -0.25em !important;
}

/* restore breathing room for subsequent paragraphs */
.page-accordion-panel > p.page-text + p.page-text {
  margin-top: 1em !important;
}
/* when something sits between paragraphs, keep sibling spacing */
.page-accordion-panel > * + p.page-text {
  margin-top: 1em !important;
}

/* ---------- Default list behavior (non-list panels keep old rules) ---------- */
.page-accordion-panel:not(.panel-list) ul {
  list-style: disc outside;
  margin: 0;
  padding-left: 0;
}

.page-accordion-panel:not(.panel-list) li {
  padding-left: var(--list-hang);
  text-indent: calc(-1 * var(--list-hang));
  margin: 0 0 0.5em 0;
}

.page-accordion-panel:not(.panel-list) li p {
  margin: 0.25em 0 0 0;
  text-indent: 0;
  padding-left: 0;
}

/* ---------- List variant for panels that contain bullet lists ---------- */
.page-accordion-panel.panel-list {
  /* tuning knobs */
  --bullet-gutter: clamp(1rem, 1.4vw, 1.2rem);
  --dot-size:      clamp(0.36rem, 0.5vw, 0.46rem);
  --dot-nudge:    -0.04em;

  /* checklist label and body sizes proportional to the heading size */
  --head-size: calc(var(--btn-fs, 1rem) * 0.86);  /* label below heading */
  --body-size: calc(var(--btn-fs, 1rem) * 0.82);  /* body below label   */

  --head-leading:  1.12;
  --body-leading:  1.30;

  --item-gap:      0.26em;
  --para-gap:      0.06em;
}

.page-accordion-panel.panel-list ul {
  list-style: none;
  margin: 0.12em 0 0.38em;
  padding: 0;
}

.page-accordion-panel.panel-list li {
  position: relative;
  margin: var(--item-gap) 0;
  padding-left: var(--bullet-gutter);
  font-size: var(--head-size);
  line-height: var(--head-leading);
  text-indent: 0;
}

.page-accordion-panel.panel-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc((var(--head-leading) * 1em - var(--dot-size)) / 2 + var(--dot-nudge));
  width: var(--dot-size);
  height: var(--dot-size);
  border-radius: 50%;
  background: #3f3f3f;
}

/* scalable type and rhythm */
.page-accordion-panel.panel-list li > strong {
  display: block;
  margin: 0;
  font-weight: 700;
  font-size: 1em;                         /* inherits from LI */
  line-height: inherit;
}

.page-accordion-panel.panel-list p {
  margin: 0;                                /* hard reset */
  padding: 0;
  color: #3f3f3f;
  font-weight: 400;
}

/* panel-list — softer labels without <strong> */
.page-accordion-panel.panel-list li {
  font-weight: 500;
}

/* first paragraph under each item: spacing and body sizing */
.page-accordion-panel.panel-list li > p:first-of-type,
.page-accordion-panel.panel-list li > strong + p {
  margin-top: var(--para-gap);
  font-size: var(--body-size);
  line-height: var(--body-leading);
}

/* safety: if <strong> remains in the HTML, avoid over-bold */
.page-accordion-panel.panel-list strong {
  font-weight: inherit;
}

/* FAQ-style subpoints inside a list panel */
.page-accordion-panel.panel-list.panel-faq li {
  font-size: var(--body-size);
  line-height: var(--body-leading);
  font-weight: 400;
}

/* 10% smaller dot and re-centered for the new line box */
.page-accordion-panel.panel-list.panel-faq li::before {
  width:  calc(var(--dot-size) * 0.9);
  height: calc(var(--dot-size) * 0.9);
  top:    calc((var(--body-leading) * 1em - (var(--dot-size) * 0.9)) / 2 + var(--dot-nudge));
}

/* optional: slightly tighter stack for subpoints */
.page-accordion-panel.panel-list.panel-faq {
  --item-gap: 0.22em;
  --para-gap: 0.05em;
}

/* FAQ subpoints: extra indent and slight label size bump */
.page-accordion-panel.panel-list.panel-faq {
  --faq-indent: 0.35rem;
}

.page-accordion-panel.panel-list.panel-faq li {
  padding-left: calc(var(--bullet-gutter) + var(--faq-indent));
  font-size: calc(var(--body-size) * 1.02);  /* ~2% larger than paragraph */
}

.page-accordion-panel.panel-list.panel-faq li::before {
  left: var(--faq-indent);
}

/* ------------------------------------------------------------------
   HTML Block — Top margin adjustment for checklist accordions
-------------------------------------------------------------------*/
.accordion-block {
  --accordion-offset: clamp(-0.95rem, -0.8vw, -0.35rem);
  margin-top: var(--accordion-offset);
}

/* laptops and down */
@media (max-width: 1210px) {
  .accordion-block { --accordion-offset: -0.70rem; }
}

/* small phones */
@media (max-width: 540px) {
  .accordion-block { --accordion-offset: -0.80rem; }
}

/* END Accordion Styling */

/*BEGIN Text Widget Styling Following an Accordion*/
/*Note: Use CSS Class "accordion-followup" in the text widget following an accordion for these rules to apply and add the CSS Class "no-followup" to the html accordion widget as a spacing killswitch to circumvent this block, if needed */
/* closed */
.accordion-block:not(.no-followup) + .accordion-followup { margin-top: -0.60rem; }

/* open */
.accordion-block:not(.no-followup):has(+ .accordion-followup):has(button[class^="page-accordion"].active)
  + .accordion-followup { margin-top: -0.85rem; }

.accordion-block:not(.no-followup):has(+ .accordion-followup):has(button[class^="page-accordion"].active)
  .page-accordion-panel.panel-list:last-of-type { margin-bottom: 0.35rem; }

.accordion-block:not(.no-followup):has(+ .accordion-followup):has(button[class^="page-accordion"].active)
  .page-accordion-panel.panel-list:last-of-type > ul:last-child { margin-bottom: 0; }

.accordion-block:not(.no-followup):has(+ .accordion-followup):has(button[class^="page-accordion"].active)
  .page-accordion-panel.panel-list li:last-child { margin-bottom: 0; }

/*END Text Widget Following an Accordion  Styling*/

/* BEGIN Hero Banner Styling */
.banner-title h1,
.banner-title h2,
.banner-title h3,
.banner-title h4,
.banner-title h5,
.banner-title h6 {
    font-family: 'Metropolis Black', 'Metropolis', Arial, sans-serif !important;
    font-weight: 900 !important;
    font-size: clamp(1.75rem, 4vw, 3rem) !important;
    letter-spacing: 0.01em;
    color: #fff !important;
    line-height: 1.1;
    text-transform: capitalize;
    text-shadow: 
        0 2px 12px rgba(0,0,0,0.35), 
        0 1px 2px rgba(0,0,0,0.18);
}
/*END Banner Styling */


/* BEGIN Page Heading Styling */
.page-heading h1,
.page-heading h2,
.page-heading h3,
.page-heading h4,
.page-heading h5,
.page-heading h6 {
    font-family: 'Metropolis Black', 'Metropolis', Arial, sans-serif;
    font-weight: 900;
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-transform: none;
    margin-top: -0.5rem !important;
    margin-bottom: -0.5rem !important;
}
/*END Heading Styling*/


/* BEGIN Page Text Styling */
.page-text {
  font-family: 'Metropolis', Arial, sans-serif;
  font-weight: 400;
  font-size: clamp(0.85rem, 1.1vw, 1.05rem);
  line-height: 1.3;
  letter-spacing: 0.02em;
  margin-block: clamp(-0.5rem, -1vw, -0.5rem) !important;
}
/*END Text Styling*/

/*BEGIN Mortgage Calculator iFrame Styling*/

/* Container + brand row */
.mortgage-widget { max-width: 100%; }
.mortgage-brand { padding-top: 30px; text-align: center; margin: 0 0 0.5rem; }
.mortgage-logo { max-width: 100%; filter: grayscale(100%) brightness(0.9); height: auto; }

/* Iframe: full width, responsive height, no border */

.mortgage-iframe { 
  width: 100%;
  height: 950px;   /* desktop baseline that didn’t scroll in your original */
  border: 0;
  display: block;
}

/* Tablets */
@media (max-width: 1024px) {
  .mortgage-iframe { height: 950px; }
}

/* Tablets */
@media (max-width: 810px) {
  .mortgage-iframe { height: 1000px; }
}

/* Large phones / small tablets */
@media (max-width: 768px) {
  .mortgage-iframe { height: 1100px; }
}

/* Narrow phones */
@media (max-width: 595px)  { 
  .mortgage-iframe { height: 2075px; }
}

/* Very Narrow phones */
@media (max-width: 395px)  { 
  .mortgage-iframe { height: 2150px; }
}

/*END Mortgage Calculator iFrame Styling*/

/* BEGIN Home Value Estimator Styleing*/
/* =========================
   HVE CSS
   ========================= */

/* Tokens */
:root{
  --hve-panel-bg: rgba(0,0,0,.60);
  --hve-tab-bg: #77C720;         /* green tab + notch */
  --hve-text: #e8e8e8;
  --hve-muted: #cfcfcf;
  --hve-cta: #77C720;              /* brand green */
  --hve-cta-contrast: #fff;
  --hve-shadow-1: 0 12px 36px rgba(0,0,0,.30), 0 4px 12px rgba(0,0,0,.18);
  --hve-shadow-2: 0 2px 6px rgba(0,0,0,.30);
  --hve-focus: #77C720;        /* green focus */
}

/* Wrapper + spacing */
.estimator-container{
  position: relative;
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  padding-top: 16px;
  font-family: 'Metropolis', Arial, sans-serif;
  margin-top: clamp(12px, 2.2vw, 26px);
  margin-bottom: clamp(18px, 4.5vw, 36px);
}
@supports(.elementor-kit-402(:has(*))){
  .estimator-container:has(#rprAvmWidget_1:not(:empty)){
    margin-bottom: clamp(14px, 3.5vw, 28px);
  }
}

/* Tab */
.estimator-tab{
  position: absolute; left: 50%; top: 0;
  transform: translate(-50%, -60%);
  background: var(--hve-tab-bg); color: #fff;
  font-weight: 600;
  font-size: clamp(.95rem, 2.1vw, 1.15rem);
  padding: 10px 18px 12px;
  border-radius: 6px 6px 0 0;
  box-shadow: var(--hve-shadow-1);
  z-index: 12; white-space: nowrap;
  display: flex; align-items: center; justify-content: center;
}
.estimator-tab::after{
  content: ""; position: absolute; bottom: -11px; left: 50%;
  transform: translateX(-50%);
  border-left: 16px solid transparent;
  border-right: 16px solid transparent;
  border-top: 12px solid var(--hve-tab-bg);
  z-index: 13;
}
@media (max-width: 420px){
  .estimator-tab{ font-size: 1rem; padding: 8px 14px 10px; }
  .estimator-tab::after{ bottom: -9px; border-left-width: 14px; border-right-width: 14px; border-top-width: 10px; }
}

/* Panel */
.estimator-box{
  width: 100%;
  background: #3f3f3f; /* solid dark */
  padding: clamp(16px, 3vw, 24px) clamp(12px, 3vw, 20px);
  padding-bottom: clamp(8px, 1.8vw, 12px);  /* trimmed; matches your “good” screenshot */
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  color: var(--hve-text);
}

/* Form */
.hve-form{ text-align: center; margin: 0 auto; }
.hve-intro{
  color: var(--hve-muted);
  font-size: clamp(.95rem, 2.2vw, 1.1rem);
  margin: 0 0 .5rem;
}
.hve-input{
  width: min(100%, 700px);
  padding: 12px 16px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: 6px;
  font-size: 1rem; line-height: 1.2;
  display: block; margin-left: auto; margin-right: auto;
  outline: none;
  transition: box-shadow .15s ease, border-color .15s ease;
}
.hve-input:focus{
  border-color: var(--hve-focus);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--hve-focus) 35%, transparent);
}
.hve-input::placeholder{ color: #777; }

/* Actions */
.hve-actions{
  margin-top: 12px;
  display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;
}
.hve-btn{
  width: 120px; height: 42px; border: 0; border-radius: 6px;
  font-size: 1rem; font-weight: 800; cursor: pointer;
  box-shadow: var(--hve-shadow-2);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.hve-btn.primary{ background: var(--hve-cta); color: var(--hve-cta-contrast); }
.hve-btn.ghost{ background: #fff; color: #000; border: 1px solid rgba(0,0,0,.08); }
.hve-btn:hover{ transform: scale(1.03); box-shadow: 0 0 10px rgba(0,0,0,.25); }
.hve-btn.primary:hover{ filter: drop-shadow(0 0 8px color-mix(in srgb, var(--hve-cta) 60%, transparent)); }

/* Disclaimer */
.hve-disclaimer{
  color: var(--hve-muted);
  font-size: clamp(.72rem, 1.6vw, .85rem);
  line-height: 1.35;
  padding-top: 20px;
  padding-bottom: 15px;
  max-width: 720px; margin: 0 auto; text-align: center;
}
@media (min-width: 1024px){
  .hve-disclaimer{ line-height: 1.32; }
}

/* Results holder + print button */
.hve-widget{ margin: clamp(12px, 1.6vw, 18px) 0; display:flex; justify-content:center; }
.hve-widget:empty{ margin: 0 !important; display: none; }  /* tight empty state */

#rprAvmWidget_1, .rpr-avm-widget{ width: 100%; }
.rpr-avm-widget .hve-print-btn{
  display: flex; align-items: center; justify-content: center;
  margin: 14px auto 0;
  background: #77C720; color: #fff;
}

/* Borderless like Sierra */
.rpr-avm-widget table{ border-collapse: collapse !important; }
.rpr-avm-widget th, .rpr-avm-widget td{ border: 0 !important; }
.rpr-avm-widget .rprw-section, .rpr-avm-widget .rprw-table{ border: 0 !important; }

/* Interpretation heading */
#valueExplanation h3{
  font-family: 'Metropolis Black','Metropolis',Arial,sans-serif;
  font-weight: 900; font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  line-height: 1.25; margin: 0 0 .5rem;
}

/* ===== RPR mobile behavior ===== */
/* 1) ≤520px: stack columns, make chart fluid */
@media (max-width: 520px){
  #rprAvmWidget_1 .rprw-content-1,
  #rprAvmWidget_1 .rprw-content-2{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  #rprAvmWidget_1 .rprw-section table{
    width: 100% !important;
    table-layout: auto !important;
  }
  #rprAvmWidget_1 .rprw-chart-cont{ overflow: visible !important; text-align: center; }
  #rprAvmWidget_1 .rprw-chart-cont img{
    width: clamp(240px, 92%, 360px) !important;  /* default stacked size */
    height: auto !important;
    display: block;
    margin: 0 auto;
  }
}

/* 2) Only between 400–520px: make the chart a bit smaller */
@media (min-width: 400px) and (max-width: 520px){
  #rprAvmWidget_1 .rprw-chart-cont img{
    width: clamp(220px, 84%, 320px) !important;  /* tweak these three values later if desired */
  }
}
/*END Home Value Estimator Styling*/

/*BEGIN Testimonial Carousel Styling*/
/* Testimonial Carousel compact height with smart fade that hides when scrolling or at bottom */
.ipt-reviews { --cap: clamp(8.5rem, 14vh, 10.5rem); }

/* Tighten vertical padding so short reviews do not create tall cards */
.ipt-reviews .elementor-testimonial { padding-top:.25rem; padding-bottom:.25rem; }

/* Only the text area scrolls, widget stays compact */
.ipt-reviews .elementor-testimonial__content{
  position:relative;
  max-height:var(--cap);
  overflow:auto;
  padding-right:.25rem;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scrollbar-width:thin;                 /* Firefox */
  scrollbar-color:#c0bab5 transparent;  /* Firefox */
}

/* Tighter paragraph spacing inside the content */
.ipt-reviews .elementor-testimonial__text,
.ipt-reviews .elementor-testimonial__content p { margin:0 0 .6em; }

/* Bottom fade is visible by default, hides only when appropriate */
.ipt-reviews .elementor-testimonial__content::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:1.6em; /* reduce to 1.2em if desired */
  pointer-events:none;
  background:linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,.92)); /* match card bg if not white */
  opacity:.95;
  transition:opacity .15s ease;
}
/* Hide the fade while scrolling, at bottom, or when not scrollable */
.ipt-reviews .elementor-testimonial__content.is-scrolling::after,
.ipt-reviews .elementor-testimonial__content.at-bottom::after,
.ipt-reviews .elementor-testimonial__content:not(.is-scrollable)::after{
  opacity:0;
}

/* Subtle WebKit scrollbar styling */
.ipt-reviews .elementor-testimonial__content::-webkit-scrollbar{ width:6px; }
.ipt-reviews .elementor-testimonial__content::-webkit-scrollbar-thumb{ background:#c0bab5; border-radius:6px; }
.ipt-reviews .elementor-testimonial__content::-webkit-scrollbar-track{ background:transparent; }

/*END Testimonial Carousel Styling*/

/* BEGIN Agent Card Styling  */

:root { --taupe:#8b8784; --rule:#e9e6e3; }

/* Desktop/tablet default — photo never exceeds this */
.agent-card{
  --photo-w: 170px;                    /* adjust this if you want slightly larger/smaller */
  display:grid;
  grid-template-columns: var(--photo-w) 1fr;
  column-gap:1.25rem;
  align-items:start;
  padding:1.1rem 0;
  border-top:1px solid var(--rule);
}
.agent-card + .agent-card{ border-top:1px solid var(--rule); }

/* Portrait: fixed size, always 2:3, corners always rounded */
.agent-photo{
  width:var(--photo-w);
  height:calc(var(--photo-w) * 1.5);   /* 2:3 ratio */
  border-radius:.5rem;
  overflow:hidden;
}
.agent-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center top;          /* keep hair in frame */
  border-radius:inherit;
}

/* Text column aligns to the photo’s fixed height */
.agent-body{ min-width:0; }

/* Name → Title tight */
.agent-name{
  margin:0 0 .15rem 0;
  font-weight:800;
  font-size:clamp(1.1rem, 1.2vw + .7rem, 1.45rem);
}
.agent-title{
  margin:0 0 .4rem 0;
  color:var(--taupe);
  font-weight:500;
  font-size:clamp(.95rem, .3vw + .8rem, 1.05rem);
}

/* Phone / license tight */
.agent-meta{ margin:0 0 .4rem 0; }
.agent-meta p{ margin:.1rem 0; }

/* Teaser spacing + clamp to two lines for consistent bottoms */
.agent-excerpt p{ margin:.28rem 0; line-height:1.32; }
.agent-excerpt p:first-child{ margin-top:0; margin-bottom:.15rem; }
.agent-excerpt p:nth-of-type(2){
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;                /* set to 3 if preferred */
  overflow:hidden;
}

/* Read More (left by request) */
.agent-readmore{ margin-top:.2rem; }
.agent-readmore a{
  text-decoration:none;
  border-bottom:1px solid rgba(42,109,179,.35);
}

/* Wide desktops: keep the same photo size (no growth) */
@media (min-width:1400px){
  .agent-card{ --photo-w: 170px; }     /* explicit so it never scales up */
}

/* Medium tablets: optional small downstep if desired */
@media (max-width:900px){
  .agent-card{ --photo-w: 160px; }
}

/* Phone: stack, keep portrait modest and proportional (still below desktop size) */
@media (max-width:640px){
  .agent-card{
    grid-template-columns: 1fr;
    row-gap:.9rem;
  }
  .agent-photo{
    --photo-w: 150px;                  /* phone width; smaller than desktop */
    width:var(--photo-w);
    height:calc(var(--photo-w) * 1.5);
  }
}

/* ===== Agent header block ===== */
:root { --taupe:#8b8784; --rule:#e9e6e3; --accent:#1B75BB; }

.agent-hero{
  --photo-w: 170px;                    /* desktop portrait width (2:3 height is auto) */
  display:grid;
  grid-template-columns: var(--photo-w) 1fr;
  gap:1.25rem;
  align-items:start;
  padding:.5rem 0 1rem;
  border-top:1px solid var(--rule);
}

.agent-hero__photo{
  width:var(--photo-w);
  aspect-ratio:2/3;
  border-radius:.5rem;
  overflow:hidden;
}
.agent-hero__photo img{
  width:100%; height:100%; object-fit:cover; object-position:center top; display:block;
  border-radius:inherit;
}

.agent-hero__name{ margin:0; font-weight:800; font-size:clamp(1.4rem,1.1vw + 1.2rem,2rem); }
.agent-hero__role{ margin-left:.5rem; color:var(--taupe); font-weight:500; font-size:clamp(.95rem,.3vw + .85rem,1.05rem); }

.agent-hero__facts{ margin:.6rem 0 0 0; }
.agent-hero__fact{
  display:grid; grid-template-columns: 140px 1fr; align-items:center;
  padding:.55rem 0; border-bottom:1px solid var(--rule);
}
.agent-hero__fact dt{ margin:0; font-weight:700; color:#3f3f3f; }
.agent-hero__fact dd{ margin:0; }
.agent-hero__fact a{ color:inherit; text-decoration:none; border-bottom:1px solid rgba(42,109,179,.35); }

/* Social row + icons */
.agent-hero__social{ margin-top:.6rem; display:flex; align-items:center; gap:.5rem; }
.agent-hero__social .ico{
  width:30px; height:30px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--accent); color:#fff; text-decoration:none;
}
.agent-hero__social .ico svg{ width:18px; height:18px; }   /* SVG icons */
.agent-hero__social .ico-img{ width:18px; height:18px; display:block; }  /* PNG icons */

/* Inline “Back to About” link at right end of social row */
.agent-back-inl{
  margin-left:auto;
  display:inline-flex; align-items:center; gap:.35rem;
  color:var(--taupe); text-decoration:none; border-bottom:1px solid transparent;
  padding:.15rem .25rem; transition: color .15s ease, border-color .15s ease, transform .15s ease;
}
.agent-back-inl:hover{
  color:var(--accent); border-bottom-color: rgba(42,109,179,.35);
  transform: translateX(-2px);
}
.agent-back-inl .icon{ width:18px; height:18px; }

/* Responsive tweaks */
@media (max-width:860px){
  .agent-hero{ --photo-w: 160px; grid-template-columns: var(--photo-w) 1fr; }
  .agent-hero__fact{ grid-template-columns: 130px 1fr; }
}
@media (max-width:640px){
  .agent-hero{ grid-template-columns:1fr; row-gap:.9rem; }
  .agent-hero{ --photo-w: 150px; }
  .agent-hero__role{ display:block; margin:.15rem 0 0 0; } /* title on its own line */
  .agent-back-inl span{ display:none; }                    /* arrow only on phones */
  .agent-back-inl .icon{ width:20px; height:20px; }
}
/* END Agent Card Styling *//* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Metropolis';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Light.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Light.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Light.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: italic;
	font-weight: 300;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-LightItalic.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-LightItalic.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-LightItalic.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Regular.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Regular.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Regular.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: italic;
	font-weight: 400;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-RegularItalic.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-RegularItalic.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-RegularItalic.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Medium.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Medium.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Medium.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: italic;
	font-weight: 500;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-MediumItalic.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-MediumItalic.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-MediumItalic.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Bold.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Bold.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Bold.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: italic;
	font-weight: 700;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-BoldItalic.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-BoldItalic.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-BoldItalic.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: normal;
	font-weight: 900;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Black.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Black.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-Black.ttf') format('truetype');
}
@font-face {
	font-family: 'Metropolis';
	font-style: italic;
	font-weight: 900;
	font-display: auto;
	src: url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-BlackItalic.woff2') format('woff2'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-BlackItalic.woff') format('woff'),
		url('https://ipt.realty/wp-content/uploads/2025/08/Metropolis-BlackItalic.ttf') format('truetype');
}
/* End Custom Fonts CSS */