.elementor-widget-container .eael-protected-content-message{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-container .protected-content-error-msg{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-59767 .elementor-element.elementor-element-c9b3d74{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-59767 .elementor-element.elementor-element-4333493{--display:flex;}.elementor-59767 .elementor-element.elementor-element-b73a7c8{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:stretch;}.elementor-widget-heading .eael-protected-content-message{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-heading .protected-content-error-msg{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family );font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );}.elementor-59767 .elementor-element.elementor-element-97a1350.elementor-element{--flex-grow:1;--flex-shrink:0;}.elementor-widget-button .eael-protected-content-message{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-button .protected-content-error-msg{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-button .elementor-button{font-family:var( --e-global-typography-accent-font-family );font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-divider .eael-protected-content-message{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-divider .protected-content-error-msg{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-divider .elementor-divider__text{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-59767 .elementor-element.elementor-element-7deeaff{--divider-border-style:solid;--divider-color:#000;--divider-border-width:1px;}.elementor-59767 .elementor-element.elementor-element-7deeaff .elementor-divider-separator{width:100%;}.elementor-59767 .elementor-element.elementor-element-7deeaff .elementor-divider{padding-block-start:15px;padding-block-end:15px;}.elementor-59767 .elementor-element.elementor-element-a9a02ca{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:flex-start;--flex-wrap:nowrap;}.elementor-59767 .elementor-element.elementor-element-c67a590{--display:flex;}.elementor-59767 .elementor-element.elementor-element-92a5020{--display:flex;}.elementor-59767 .elementor-element.elementor-element-46949b8{--display:flex;}.elementor-59767 .elementor-element.elementor-element-b22dc99{--display:flex;}.elementor-widget-text-editor .eael-protected-content-message{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-text-editor .protected-content-error-msg{font-family:var( --e-global-typography-secondary-font-family );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family );font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-59767 .elementor-element.elementor-element-9a74e47{--display:flex;}.elementor-59767 .elementor-element.elementor-element-4d3f1b4{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:5px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-59767 .elementor-element.elementor-element-4d3f1b4{--grid-auto-flow:row;}}@media(max-width:4px){.elementor-59767 .elementor-element.elementor-element-4d3f1b4{--grid-auto-flow:row;}}@media(max-width:3px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-59767 .elementor-element.elementor-element-4d3f1b4{--grid-auto-flow:row;}}@media(max-width:2px){.elementor-59767 .elementor-element.elementor-element-4d3f1b4{--grid-auto-flow:row;}}@media(max-width:-18px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-59767 .elementor-element.elementor-element-4d3f1b4{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}}@media(min-width:1920px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-59767 .elementor-element.elementor-element-4d3f1b4{--grid-auto-flow:row;}}/* Start custom CSS for heading, class: .elementor-element-ff55958 */.elementor-59767 .elementor-element.elementor-element-ff55958 {
    max-width: 80% !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-b73a7c8 */.elementor-59767 .elementor-element.elementor-element-b73a7c8.e-con.is-card{
	row-gap: clamp(13px, 2vw, 16px) !important;
	}/* End custom CSS */
/* Start custom CSS for divider, class: .elementor-element-7deeaff */.elementor-59767 .elementor-element.elementor-element-7deeaff.elementor-widget-divider, .elementor-divider {
    margin: 0 !important;
    padding: 0 !important;
    padding-top: clamp(3px, 1vw, 8px) !important;
	padding-bottom: clamp(3px, 1vw, 10px) !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-2d80a2f *//* Override ONLY the "ORGANIZED CITY" H6 */
.footer-columns .oc-footer-base.elementor-element-c67a590 .elementor-element-2d80a2f h6.elementor-heading-title{
  color: #171717 !important;
  font-weight: 600 !important;
  font-size: clamp(12px, 1.2vw, 13.5px) !important;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-36700bf */.footer-columns .oc-footer-base.elementor-element-c67a590 .elementor-element-36700bf h5.elementor-heading-title{
  color: #6F6A64 !important;
  margin-top: clamp(3px, 0.45vw, 6px) !important;
  }/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-b447943 */.footer-columns .oc-footer-base.elementor-element-c67a590 .elementor-element-b447943  h5.elementor-heading-title{
  color: #6F6A64 !important;
  }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-a9a02ca *//* =========================================================
   ORGANIZED CITY — FOOTER COLUMNS (FIXED + LUXURY RHYTHM)
   Scope: .footer-columns only
   ========================================================= */




.footer-columns .oc-footer-base{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: clamp(0.1px, 0.005vw, 1px) !important;
  }


/* 3) Typography mapping */

/* Brand line (H4) */
.footer-columns .oc-footer-base h4.elementor-heading-title{
  font-family: var(--font-sans) !important;
  font-size: var(--fs-overline) !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  line-height: var(--lh-overline) !important;
  color: var(--ink) !important;
     margin-bottom: clamp(3px, 0.4vw, 8px) !important;
  }

/* Section headings (H6) */
.footer-columns .oc-footer-base h6.elementor-heading-title{
  font-family: var(--font-sans) !important;
  font-size: var(--fs-overline) !important;
  font-weight: 500 !important;
  line-height: var(--lh-overline) !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  margin-bottom: clamp(3px, 0.4vw, 8px) !important;
  
  }
/* Link/contact lines (Heading H5 + Text Editor H5) */
.footer-columns .oc-footer-base h5.elementor-heading-title,
.footer-columns .oc-footer-base .elementor-widget-text-editor h5 {
  font-family: var(--font-sans) !important;
  font-size: var(--fs-small) !important;
  font-weight: 400 !important;
  line-height: clamp(22px, 1.6vw, 3px) !important;
  letter-spacing: clamp(0.2px, 0.02vw, 1px) !important;
  color: var(--ink) !important;
  margin: 0 !important;              /* prevents default H5 spacing */
}

/* Make links inherit the same styling (so it doesn't turn blue) */
.footer-columns .oc-footer-base .elementor-widget-text-editor a,
.footer-columns .oc-footer-base h5.elementor-heading-title a {
  color: #150E4B !important;
  text-decoration: none !important;
  letter-spacing: clamp(0.2px, 0.01vw, 1px) !important;
  font-size: var(--fs-small) !important;
}

.footer-columns .oc-footer-base .elementor-widget-text-editor a:hover,
.footer-columns .oc-footer-base h5.elementor-heading-title a:hover {
  text-decoration: underline !important;
}

/* Meta lines (P) */
.footer-columns .oc-footer-base p.elementor-heading-title{
  font-family: var(--font-sans) !important;
  font-size: var(--fs-small) !important;
  font-weight: 400 !important;
  line-height: clamp(22px, 1.15vw, 24px) !important;
  letter-spacing: 0 !important;
  color: var(--muted) !important;
}


/* SEE OUR WORK spacing */
.footer-columns > .e-con:nth-child(3) .elementor-element-9a74e47{
  margin-top: clamp(14px, 2vw, 20px) !important;
}

/* Link behavior */
.footer-columns a{
  color: inherit !important;
  text-decoration: none !important;
  transition: opacity clamp(0.2s, 0.25vw, 0.3s) ease !important;
}
.footer-columns a:hover{
  opacity: 0.65 !important;
}


.footer-columns .elementor-widget-heading .elementor-heading-title{
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  
}

.footer-columns .e-grid{
  row-gap: clamp(0px, 0vw, 0px) !important;
  column-gap: clamp(5px, 0.5vw, 10px) !important;
  padding: 0 !important;
  }



/* =========================================================
   FOOTER — HUG CONTENT + CENTERED GROUP + 3→2→1 RESPONSIVE
   ========================================================= */

/* 1) Grid wrapper stays full width so it can reflow */
.footer-columns.e-con,
.footer-columns.e-con > .e-con-inner{
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  /* centers the *group of tracks* inside the full-width row */
  justify-content: center !important;

  column-gap: clamp(32px, 20.9vw, 300px) !important;
  row-gap: clamp(24px, 4vw, 40px) !important;

  align-items: start !important;
  justify-items: start !important;
}

/* 2) Make each column hug its contents (but still allow wrapping) */
.footer-columns.e-con > .elementor-element,
.footer-columns.e-con > .e-con-inner > .elementor-element{
  width: max-content !important;
  max-width: 100% !important;
  min-width: 0 !important;
  
  }

/* Prevent long strings (emails/urls) from forcing overflow */
.footer-columns a,
.footer-columns h5,
.footer-columns p{
  overflow-wrap: anywhere !important;
  }

/* 3) Responsive column counts */
@media (min-width: 980px){
  .footer-columns.e-con,
  .footer-columns.e-con > .e-con-inner{
    grid-template-columns: repeat(3, max-content) !important;
    padding: clamp(20px, 2.3vw, 32px) !important;
    padding-top: 0 !important;
  }

  /* disable your edge-push alignment on desktop */
  .footer-columns > .elementor-element-c67a590,
  .footer-columns > .elementor-element-92a5020,
  .footer-columns > .elementor-element-46949b8{
    justify-self: start !important;
  }
}

@media (min-width: 640px) and (max-width: 979px){
  .footer-columns > .e-con:nth-child(3) .elementor-element-9a74e47 {
    margin-top: 0 !important;
    }
  /* Make the footer container a centered 2-col grid */
  .footer-columns.e-con{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(240px, 1fr)) !important;
    justify-content: center !important;   /* centers the 2-col block */
    column-gap: clamp(28px, 6vw, 90px) !important;
    row-gap: clamp(28px, 4vw, 44px) !important;
    align-items: start !important;
    padding: clamp(20px, 2.3vw, 32px) !important;
    padding-top: 0 !important;
  }

  /* ---- FLATTEN THE 3RD WRAPPER ----
     Remove the wrapper (.46949b8) from the grid flow so its children can participate.
     display: contents makes the element "disappear" for layout purposes.
  */
  .footer-columns > .elementor-element-46949b8{
    display: contents !important;
  }

  /* Now treat these FOUR as the grid items */
  .footer-columns > .elementor-element-c67a590{ order: 1 !important; } /* Brand */
  .footer-columns > .elementor-element-92a5020{ order: 2 !important; } /* Pages */
  .footer-columns > .elementor-element-46949b8 > .elementor-element-b22dc99{ order: 3 !important; } /* Concierge */
  .footer-columns > .elementor-element-46949b8 > .elementor-element-9a74e47{ order: 4 !important; } /* See our work */

  /* Ensure each of the four blocks behaves as a clean grid item */
  .footer-columns > .elementor-element-c67a590,
  .footer-columns > .elementor-element-92a5020,
  .footer-columns > .elementor-element-46949b8 > .elementor-element-b22dc99,
  .footer-columns > .elementor-element-46949b8 > .elementor-element-9a74e47{
    min-width: 0 !important;
  }

  /* Optional: keep "See our work" 2-col list from stretching weirdly */
  .footer-columns .elementor-element-4d3f1b4.e-grid{
    width: fit-content !important;
    grid-template-columns: repeat(2, max-content) !important;
    column-gap: clamp(18px, 3vw, 48px) !important;
  }
}

/* 1-column breakpoint: stack naturally */
@media (max-width: 639px){
  .footer-columns.e-con{
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-content: start !important;
    row-gap: clamp(22px, 5vw, 36px) !important;
    padding: clamp(20px, 2.3vw, 32px) !important;
    padding-top: 0 !important;
  }

  /* Undo flattening issues on tiny screens */
  .footer-columns > .elementor-element-46949b8{
    display: block !important; /* or flex if Elementor expects it */
  }

  .footer-columns .elementor-element-4d3f1b4.e-grid{
    width: 100% !important;
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 639px){
  .footer-columns.e-con,
  .footer-columns.e-con > .e-con-inner{
    grid-template-columns: 1fr !important; /* safer on tiny screens */
    justify-content: start !important;
    padding: clamp(20px, 2.3vw, 32px) !important;
    padding-top: 0 !important;
  }

  .footer-columns.e-con > .elementor-element,
  .footer-columns.e-con > .e-con-inner > .elementor-element{
    width: 100% !important;
  }
}

/* 4) “OUR WORK” inner 2-col list hugs content on desktop, stacks on small */
@media (min-width: 980px){
  .footer-columns .e-grid{
    width: fit-content !important;
    grid-template-columns: repeat(2, max-content) !important;
    column-gap: clamp(18px, 3vw, 48px) !important;
    justify-content: start !important;
  }
}
@media (max-width: 520px){
  .footer-columns .e-grid{
    width: 100% !important;
    grid-template-columns: 1fr !important;
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-c9b3d74 */.elementor-59767 .elementor-element.elementor-element-c9b3d74 {
       margin-top: clamp(10px, 7vw, 90px) !important;
    margin-bottom: clamp(10px, 5vw, 42px) !important;
}/* End custom CSS */