.elementor-28 .elementor-element.elementor-element-f603595{--display:flex;--min-height:400px;--justify-content:center;--overlay-opacity:0.5;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-28 .elementor-element.elementor-element-f603595:not(.elementor-motion-effects-element-type-background), .elementor-28 .elementor-element.elementor-element-f603595 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://images.pexels.com/photos/163135/man-talking-on-the-phone-smartphone-city-communication-163135.jpeg");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-28 .elementor-element.elementor-element-f603595::before, .elementor-28 .elementor-element.elementor-element-f603595 > .elementor-background-video-container::before, .elementor-28 .elementor-element.elementor-element-f603595 > .e-con-inner > .elementor-background-video-container::before, .elementor-28 .elementor-element.elementor-element-f603595 > .elementor-background-slideshow::before, .elementor-28 .elementor-element.elementor-element-f603595 > .e-con-inner > .elementor-background-slideshow::before, .elementor-28 .elementor-element.elementor-element-f603595 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-a704725 );--background-overlay:'';}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-28 .elementor-element.elementor-element-3ceddc5{text-align:center;}.elementor-28 .elementor-element.elementor-element-3ceddc5 .elementor-heading-title{font-family:"Libre Baskerville", Sans-serif;font-size:50px;font-weight:800;color:var( --e-global-color-astglobalcolor4 );}.elementor-28 .elementor-element.elementor-element-65d0bb6{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-28 .elementor-element.elementor-element-3a7499b{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-28 .elementor-element.elementor-element-799a68f{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}@media(min-width:1025px){.elementor-28 .elementor-element.elementor-element-f603595:not(.elementor-motion-effects-element-type-background), .elementor-28 .elementor-element.elementor-element-f603595 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:scroll;}}@media(max-width:767px){.elementor-28 .elementor-element.elementor-element-f603595{--min-height:300px;}.elementor-28 .elementor-element.elementor-element-3ceddc5 .elementor-heading-title{font-size:40px;}}/* Start custom CSS for html, class: .elementor-element-9bc15b0 *//* =========================================================
   CONTACT — UNIFIED CARD (IMAGE + UNDERLINE FORM)
   BG #F7F3F0 | Primary #6E3B47
   Headings: Libre Baskerville (min 26px)
   Body / Labels / Inputs: Onest 16px (nothing below 16px)
   Desktop  : image left / form right, one card = equal edges
   Tablet   : photo banner on top → maroon detail block → form
   Mobile   : same stacked flow, tighter spacing
   No blue: hover / focus / active / autofill / selection locked
========================================================= */

.ct2, .ct2 *, .ct2 *::before, .ct2 *::after { box-sizing: border-box; }

.ct2 {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: #F7F3F0;
  padding: 80px 50px 0 50px;
}

/* ---------- ANTI-BLUE LOCK ---------- */
.ct2, .ct2 * {
  -webkit-tap-highlight-color: transparent;
  accent-color: #6E3B47;
  caret-color: #6E3B47;
}
.ct2 input, .ct2 textarea, .ct2 select, .ct2 button { color-scheme: light; }
.ct2 ::selection { background: rgba(110,59,71,.22); color: #1F1418; }

.ct2 a, .ct2 a:link, .ct2 a:visited, .ct2 a:hover,
.ct2 a:focus, .ct2 a:active, .ct2 a:focus-visible {
  text-decoration: none !important;
  outline: none !important;
}
.ct2 button, .ct2 button:hover, .ct2 button:focus,
.ct2 button:active, .ct2 button:focus-visible {
  font: inherit;
  appearance: none; -webkit-appearance: none;
  outline: none !important;
  text-decoration: none !important;
}
.ct2 input, .ct2 textarea, .ct2 select,
.ct2 input:hover, .ct2 textarea:hover, .ct2 select:hover,
.ct2 input:focus, .ct2 textarea:focus, .ct2 select:focus,
.ct2 input:focus-visible, .ct2 textarea:focus-visible, .ct2 select:focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
}
.ct2 input::-moz-focus-inner, .ct2 button::-moz-focus-inner { border: 0; }

.ct2-container { max-width: 1280px; margin: 0 auto; width: 100%; }

/* =========================================================
   CARD — both columns are cells of this grid (equal height)
========================================================= */
.ct2-card {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  align-items: stretch;
  min-height: 680px;
  overflow: hidden;
  background: #FFFFFF;
  border: 1px solid rgba(110,59,71,.1);
  border-radius: 26px;
  box-shadow: 0 30px 70px rgba(110,59,71,.14);
}

/* =========================================================
   LEFT — IMAGE + DETAILS
========================================================= */
.ct2-visual {
  position: relative;
  display: flex;
  min-width: 0;
  background: #4E2A34;
}

.ct2-image {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  display: block;
  object-fit: cover; object-position: center;
}

.ct2-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg,
    rgba(48,22,30,.66) 0%,
    rgba(48,22,30,.40) 42%,
    rgba(92,44,56,.94) 100%);
}

.ct2-frame {
  position: absolute; inset: 16px; z-index: 2;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 16px;
  pointer-events: none;
}

.ct2-visual-inner {
  position: relative; z-index: 3;
  display: flex; flex-direction: column; justify-content: space-between;
  width: 100%;
  padding: 46px 42px;
  color: #FFFFFF;
}

/* Pill */
.ct2-pill {
  display: inline-flex; align-items: center; gap: 10px;
  align-self: flex-start;
  margin-bottom: 26px;
  padding: 9px 16px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50px;
  background: rgba(247,243,240,.12);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 500; line-height: 1.2;
  color: #F7F3F0;
}
.ct2-pill-dot {
  position: relative; display: block;
  width: 9px; height: 9px; border-radius: 50%;
  background: #F7D8C9;
}
.ct2-pill-dot::after {
  content: ""; position: absolute; inset: -4px;
  border: 1.5px solid #F7D8C9; border-radius: 50%;
  animation: ct2Pulse 1.8s ease-out infinite;
}
@keyframes ct2Pulse {
  0%   { transform: scale(.6); opacity: 1; }
  100% { transform: scale(1.8); opacity: 0; }
}

/* Eyebrow / Heading / Text */
.ct2-eyebrow {
  display: inline-flex; align-items: center; gap: 13px;
  margin-bottom: 14px;
  font-family: 'Libre Baskerville', serif;
  font-size: 26px; font-weight: 700; line-height: 1.2;
  color: #F7D8C9;
}
.ct2-eyebrow-line { width: 42px; height: 2px; background: #F7D8C9; border-radius: 2px; flex-shrink: 0; }

.ct2-heading {
  margin: 0 0 16px;
  max-width: 460px;
  font-family: 'Libre Baskerville', serif;
  font-size: 40px; font-weight: 700; line-height: 1.22;
  color: #FFFFFF;
}
.ct2-heading em { position: relative; z-index: 1; font-style: italic; color: #F7D8C9; }
.ct2-heading em::after {
  content: ""; position: absolute; left: -3px; bottom: 4px; z-index: -1;
  width: calc(100% + 6px); height: 9px; border-radius: 3px;
  background: rgba(247,243,240,.16);
}

.ct2-text {
  margin: 0;
  max-width: 430px;
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 400; line-height: 1.8;
  color: rgba(255,255,255,.85);
}

/* Details list */
.ct2-visual-bottom { margin-top: 36px; }

.ct2-details { list-style: none; margin: 0 0 20px; padding: 0; }
.ct2-details li {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,.16);
}
.ct2-details li:last-child { border-bottom: 1px solid rgba(255,255,255,.16); }

.ct2-detail-icon {
  display: grid; place-items: center;
  flex: 0 0 44px; width: 44px; height: 44px;
  border-radius: 50%;
  background: #F7F3F0; color: #6E3B47;
}
.ct2-detail-icon svg {
  width: 20px; height: 20px;
  fill: none; stroke: currentColor; stroke-width: 1.9;
  stroke-linecap: round; stroke-linejoin: round;
}
.ct2-detail-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ct2-detail-label {
  font-family: 'Onest', sans-serif;
  font-size: 16px; line-height: 1.3;
  color: rgba(255,255,255,.7);
}
.ct2 .ct2-detail-val,
.ct2 a.ct2-detail-val,
.ct2 a.ct2-detail-val:link,
.ct2 a.ct2-detail-val:visited,
.ct2 a.ct2-detail-val:hover,
.ct2 a.ct2-detail-val:focus,
.ct2 a.ct2-detail-val:active {
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 600; line-height: 1.45;
  color: #FFFFFF !important;
  overflow-wrap: anywhere;
}
.ct2 a.ct2-detail-val {
  align-self: flex-start;
  border-bottom: 1px solid transparent;
  transition: border-color .3s ease;
}
.ct2 a.ct2-detail-val:hover,
.ct2 a.ct2-detail-val:focus-visible { border-bottom-color: #F7D8C9; }

/* Office hours */
.ct2-hours {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 12px 16px;
  padding: 16px 18px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 14px;
  background: rgba(247,243,240,.12);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.ct2-hours-icon {
  display: grid; place-items: center;
  flex: 0 0 40px; width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(247,243,240,.16); color: #F7D8C9;
}
.ct2-hours-icon svg {
  width: 18px; height: 18px;
  fill: none; stroke: currentColor; stroke-width: 1.9;
  stroke-linecap: round; stroke-linejoin: round;
}
.ct2-hours-copy { display: flex; flex-direction: column; gap: 3px; flex: 1 1 auto; min-width: 0; }
.ct2-hours-label {
  font-family: 'Onest', sans-serif;
  font-size: 16px; line-height: 1.3;
  color: rgba(255,255,255,.7);
}
.ct2-hours-val {
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 600; line-height: 1.4;
  color: #FFFFFF;
}
.ct2 .ct2-directions,
.ct2 .ct2-directions:link,
.ct2 .ct2-directions:visited,
.ct2 .ct2-directions:hover,
.ct2 .ct2-directions:focus,
.ct2 .ct2-directions:active {
  display: inline-flex; align-items: center; gap: 8px;
  flex: 0 0 auto; margin-left: auto;
  white-space: nowrap;
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 600; line-height: 1.3;
  color: #F7D8C9 !important;
}
.ct2 .ct2-directions svg {
  width: 17px; height: 17px;
  fill: none; stroke: currentColor; stroke-width: 2.2;
  stroke-linecap: round; stroke-linejoin: round;
  transition: transform .3s ease;
}
.ct2 .ct2-directions:hover svg { transform: translate(3px, -3px); }

/* =========================================================
   RIGHT — FORM
========================================================= */
.ct2-form-col {
  display: flex; align-items: center;
  min-width: 0;
  padding: 48px 46px;
}
.ct2-form { width: 100%; }

.ct2-form-head { margin-bottom: 26px; }
.ct2-form-head h3 {
  margin: 0 0 8px;
  font-family: 'Libre Baskerville', serif;
  font-size: 26px; font-weight: 700; line-height: 1.3;
  color: #1F1418;
}
.ct2-form-head p {
  margin: 0;
  font-family: 'Onest', sans-serif;
  font-size: 16px; line-height: 1.7;
  color: #65565A;
}

/* Segmented .elementor-28 .elementor-element.elementor-element-9bc15b0 */
.ct2-seg { margin: 0 0 26px; padding: 0; border: 0; min-width: 0; }
.ct2-seg legend {
  display: block; float: none; width: auto;
  margin: 0 0 12px; padding: 0;
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 600; line-height: 1.4;
  color: #24181C;
}
.ct2-seg-options { display: flex; flex-wrap: wrap; gap: 10px; }
.ct2-seg-opt { position: relative; margin: 0; }
.ct2-seg-opt input {
  position: absolute; opacity: 0;
  width: 1px; height: 1px; pointer-events: none;
}
.ct2-seg-opt span {
  display: inline-flex; align-items: center;
  min-height: 46px; padding: 11px 20px;
  border: 1.5px solid rgba(110,59,71,.2);
  border-radius: 50px;
  background: #F7F3F0; color: #55464A;
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 500; line-height: 1.3;
  cursor: pointer;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.ct2-seg-opt:hover span { border-color: #6E3B47; color: #6E3B47; background: #FFFFFF; }
.ct2-seg-opt input:checked + span {
  background: #6E3B47; border-color: #6E3B47; color: #FFFFFF;
  box-shadow: 0 6px 16px rgba(110,59,71,.24);
}
.ct2-seg-opt input:focus-visible + span { box-shadow: 0 0 0 3px rgba(110,59,71,.28); }

/* Field grid */
.ct2-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 26px;
  margin-bottom: 22px;
}
.ct2-field { display: flex; flex-direction: column; min-width: 0; }
.ct2-field-full { grid-column: 1 / -1; }

.ct2-field > label {
  display: block;
  margin: 0 0 4px;
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 600; line-height: 1.4;
  color: #24181C;
  transition: color .3s ease;
}
.ct2-field > label i { font-style: normal; color: #6E3B47; margin-left: 2px; }
.ct2-field:focus-within > label { color: #6E3B47; }

/* Underline control */
.ct2-control {
  position: relative;
  border-bottom: 1.5px solid rgba(110,59,71,.22);
  transition: border-color .3s ease;
}
.ct2-control::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -1.5px;
  height: 2px; background: #6E3B47;
  transform: scaleX(0); transform-origin: left;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.ct2-control:hover { border-bottom-color: rgba(110,59,71,.45); }
.ct2-control:focus-within::after { transform: scaleX(1); }

/* Inputs — engineered so letters are never clipped */
.ct2 .ct2-control input,
.ct2 .ct2-control select,
.ct2 .ct2-control textarea {
  display: block;
  width: 100%;
  height: auto !important;
  min-height: 54px;
  margin: 0;
  padding: 15px 0 !important;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  font-family: 'Onest', sans-serif !important;
  font-size: 16px !important;
  font-weight: 400;
  line-height: 1.5 !important;
  letter-spacing: normal;
  text-transform: none;
  text-indent: 0;
  color: #1F1418 !important;
}
.ct2 .ct2-control textarea { min-height: 124px; resize: vertical; overflow: auto; }

.ct2 .ct2-control input::placeholder,
.ct2 .ct2-control textarea::placeholder {
  color: rgba(110,59,71,.42);
  opacity: 1;
  font-size: 16px;
}

/* Autofill — no browser blue / yellow fill */
.ct2 .ct2-control input:-webkit-autofill,
.ct2 .ct2-control input:-webkit-autofill:hover,
.ct2 .ct2-control input:-webkit-autofill:focus,
.ct2 .ct2-control textarea:-webkit-autofill,
.ct2 .ct2-control textarea:-webkit-autofill:focus,
.ct2 .ct2-control select:-webkit-autofill,
.ct2 .ct2-control select:-webkit-autofill:focus {
  -webkit-text-fill-color: #1F1418 !important;
  -webkit-box-shadow: 0 0 0 1000px #FFFFFF inset !important;
  box-shadow: 0 0 0 1000px #FFFFFF inset !important;
  caret-color: #6E3B47;
  transition: background-color 9999s ease-out 0s;
}

/* Select */
.ct2-control-select select {
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  padding-right: 34px !important;
  cursor: pointer;
  background-image: none !important;
}
.ct2-control-select select::-ms-expand { display: none; }
.ct2-control-select select option {
  font-family: 'Onest', sans-serif;
  font-size: 16px; color: #1F1418; background: #FFFFFF;
}
.ct2-select-arrow {
  position: absolute; top: 50%; right: 2px;
  width: 18px; height: 18px;
  transform: translateY(-50%);
  color: #6E3B47;
  fill: none; stroke: currentColor; stroke-width: 2.3;
  stroke-linecap: round; stroke-linejoin: round;
  pointer-events: none;
}

/* Errors */
.ct2-error {
  display: none;
  margin-top: 8px;
  font-family: 'Onest', sans-serif;
  font-size: 16px; line-height: 1.4;
  color: #A8413A;
}
.has-error .ct2-error { display: block; }
.ct2-field.has-error > label { color: #A8413A; }
.ct2-field.has-error .ct2-control { border-bottom-color: #A8413A; }
.ct2-field.has-error .ct2-control::after { background: #A8413A; transform: scaleX(1); }

/* Consent */
.ct2-consent-wrap { margin-bottom: 22px; }
.ct2-consent {
  display: flex; align-items: flex-start; gap: 12px;
  margin: 0; cursor: pointer; user-select: none;
}
.ct2-consent input {
  position: absolute; opacity: 0;
  width: 1px; height: 1px; pointer-events: none;
}
.ct2-check {
  display: grid; place-items: center;
  flex: 0 0 22px; width: 22px; height: 22px;
  margin-top: 1px;
  border: 1.5px solid rgba(110,59,71,.4);
  border-radius: 6px;
  background: #F7F3F0;
  transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.ct2-consent:hover .ct2-check { border-color: #6E3B47; background: #FFFFFF; }
.ct2-check svg {
  width: 13px; height: 13px;
  fill: none; stroke: #FFFFFF; stroke-width: 3;
  stroke-linecap: round; stroke-linejoin: round;
  opacity: 0; transform: scale(.5);
  transition: opacity .2s ease, transform .2s ease;
}
.ct2-consent input:checked + .ct2-check { background: #6E3B47; border-color: #6E3B47; }
.ct2-consent input:checked + .ct2-check svg { opacity: 1; transform: scale(1); }
.ct2-consent input:focus-visible + .ct2-check { box-shadow: 0 0 0 3px rgba(110,59,71,.28); }
.ct2-consent-text {
  font-family: 'Onest', sans-serif;
  font-size: 16px; line-height: 1.5;
  color: #65565A;
}
.ct2-consent-wrap.has-error .ct2-check { border-color: #A8413A; }

/* Submit — brand in ALL states */
.ct2 .ct2-submit,
.ct2 .ct2-submit:focus,
.ct2 .ct2-submit:active {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  width: 100%;
  min-height: 58px;
  padding: 14px 18px 14px 30px;
  border: 1.5px solid #6E3B47 !important;
  border-radius: 50px;
  background: #6E3B47 !important;
  color: #FFFFFF !important;
  font-family: 'Onest', sans-serif;
  font-size: 16px; font-weight: 600; line-height: 1.3;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(110,59,71,.24);
  transition: background-color .35s ease, border-color .35s ease, transform .35s ease, box-shadow .35s ease;
}
.ct2 .ct2-submit:hover {
  background: #572D37 !important;
  border-color: #572D37 !important;
  color: #FFFFFF !important;
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(110,59,71,.32);
}
.ct2 .ct2-submit:focus-visible {
  box-shadow: 0 12px 28px rgba(110,59,71,.24), 0 0 0 3px rgba(110,59,71,.28) !important;
}
.ct2 .ct2-submit:disabled,
.ct2 .ct2-submit:disabled:hover {
  opacity: .65; cursor: not-allowed; transform: none;
  background: #6E3B47 !important; border-color: #6E3B47 !important;
}
.ct2-submit-icon {
  display: grid; place-items: center;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(247,243,240,.16);
}
.ct2-submit-icon svg {
  width: 16px; height: 16px;
  fill: none; stroke: currentColor; stroke-width: 2.4;
  stroke-linecap: round; stroke-linejoin: round;
  transition: transform .3s ease;
}
.ct2 .ct2-submit:hover .ct2-submit-icon svg { transform: translateX(4px); }

/* Status */
.ct2-status {
  display: none;
  margin-top: 18px;
  padding: 16px 18px;
  border-radius: 12px;
  font-family: 'Onest', sans-serif;
  font-size: 16px; line-height: 1.5;
}
.ct2-status.is-success {
  display: block;
  background: rgba(110,59,71,.08);
  border: 1px solid rgba(110,59,71,.22);
  color: #6E3B47;
}

/* Trust row */
.ct2-trust {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: 10px 18px;
  list-style: none;
  margin: 24px 0 0; padding: 20px 0 0;
  border-top: 1px solid rgba(110,59,71,.14);
}
.ct2-trust li {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Onest', sans-serif;
  font-size: 16px; line-height: 1.3;
  color: #65565A;
}
.ct2-trust svg {
  width: 18px; height: 18px; flex-shrink: 0;
  color: #6E3B47;
  fill: none; stroke: currentColor; stroke-width: 2.2;
  stroke-linecap: round; stroke-linejoin: round;
}

/* =========================================================
   REVEAL
========================================================= */
[data-ct2-reveal] {
  opacity: 0; transform: translateY(36px);
  transition: opacity .85s ease, transform .85s cubic-bezier(.22,1,.36,1);
}
[data-ct2-reveal].is-visible { opacity: 1; transform: translateY(0); }


/* =========================================================
   TABLET  ≤1024px   padding 50px 30px 0 30px
   REBUILT LAYOUT:
   photo banner on top  →  solid maroon detail block  →  form
   (image is no longer absolute, so nothing can be clipped)
========================================================= */
@media screen and (max-width: 1024px) {

  .ct2 { padding: 50px 30px 0 30px; }

  .ct2-card {
    grid-template-columns: 1fr;
    min-height: 0;
    border-radius: 22px;
  }

  /* ---- LEFT COLUMN becomes a normal stacked block ---- */
  .ct2-visual {
    display: block;
    min-height: 0;
    background: #6E3B47;          /* solid brand block under the photo */
  }

  /* photo becomes a banner strip */
  .ct2-image {
    position: relative;
    inset: auto;
    width: 100%;
    height: 300px;
    object-position: center 55%;
  }

  /* gradient only sits over the banner, not the text block */
  .ct2-overlay {
    top: 0; right: 0; left: 0; bottom: auto;
    height: 300px;
    background: linear-gradient(180deg,
      rgba(48,22,30,.30) 0%,
      rgba(48,22,30,.42) 55%,
      rgba(110,59,71,.96) 100%);
  }

  /* inner border frame doesn't work in stacked mode */
  .ct2-frame { display: none; }

  /* text block sits BELOW the photo — no overlap, no clipping */
  .ct2-visual-inner {
    display: block;
    padding: 34px 34px 38px;
  }

  /* pill floats up onto the banner edge for a premium touch */
  .ct2-pill {
    margin: -62px 0 24px;
    position: relative;
    z-index: 4;
  }

  .ct2-eyebrow { margin-bottom: 12px; }

  .ct2-heading {
    font-size: 34px;
    max-width: 640px;
  }

  .ct2-text { max-width: 660px; }

  .ct2-visual-bottom { margin-top: 30px; }

  /* details in 2 columns to use the wide space properly */
  .ct2-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 26px;
    margin-bottom: 22px;
  }
  .ct2-details li { padding: 15px 0; }
  .ct2-details li:nth-last-child(-n+2) {
    border-bottom: 1px solid rgba(255,255,255,.16);
  }

  .ct2-hours { padding: 16px 18px; }

  /* ---- FORM COLUMN ---- */
  .ct2-form-col {
    display: block;
    padding: 38px 34px 42px;
  }

  .ct2-form-head { margin-bottom: 24px; }

  .ct2-seg-options { gap: 10px; }

  .ct2-grid { gap: 20px 26px; }
}

/* Narrow tablets / large phones — details back to one column */
@media screen and (max-width: 860px) {
  .ct2-details {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ct2-details li:nth-last-child(-n+2) { border-bottom: 0; }
  .ct2-details li:last-child { border-bottom: 1px solid rgba(255,255,255,.16); }

  .ct2-heading { font-size: 32px; }
}


/* =========================================================
   MOBILE  ≤767px   padding 30px 10px 0 10px
========================================================= */
@media screen and (max-width: 767px) {

  .ct2 { padding: 30px 10px 0 10px; }

  .ct2-card { border-radius: 18px; }

  /* shorter banner */
  .ct2-image  { height: 230px; }
  .ct2-overlay {
    height: 230px;
    background: linear-gradient(180deg,
      rgba(48,22,30,.28) 0%,
      rgba(48,22,30,.45) 55%,
      rgba(110,59,71,.97) 100%);
  }

  .ct2-visual-inner { padding: 26px 20px 32px; }

  .ct2-pill { margin: -56px 0 20px; }

  .ct2-eyebrow { gap: 10px; }
  .ct2-eyebrow-line { width: 28px; }

  .ct2-heading { font-size: 30px; line-height: 1.3; }

  .ct2-visual-bottom { margin-top: 26px; }

  .ct2-details li { gap: 12px; padding: 14px 0; }
  .ct2-detail-icon { flex: 0 0 42px; width: 42px; height: 42px; }

  .ct2-hours { padding: 14px 16px; }
  .ct2 .ct2-directions {
    margin-left: 0;
    white-space: normal;
    width: 100%;
    padding-top: 4px;
  }

  .ct2-form-col { padding: 28px 18px 34px; }

  .ct2-grid { grid-template-columns: 1fr; gap: 18px; }

  .ct2-seg-opt span { padding: 10px 16px; }

  .ct2-trust { flex-direction: column; align-items: flex-start; gap: 12px; }
}

@media screen and (max-width: 480px) {
  .ct2-image  { height: 200px; }
  .ct2-overlay { height: 200px; }

  .ct2-pill { margin: -50px 0 18px; }

  .ct2-heading { font-size: 28px; }

  .ct2-seg-options { display: grid; grid-template-columns: 1fr 1fr; }
  .ct2-seg-opt span { width: 100%; justify-content: center; }
}


/* =========================================================
   ELEMENTOR / WORDPRESS OVERRIDES (beats global kit colours)
========================================================= */
.elementor .ct2 a.ct2-detail-val,
.elementor .ct2 a.ct2-detail-val:hover,
.elementor .ct2 a.ct2-detail-val:focus { color: #FFFFFF !important; }

.elementor .ct2 .ct2-directions,
.elementor .ct2 .ct2-directions:hover,
.elementor .ct2 .ct2-directions:focus { color: #F7D8C9 !important; }

.elementor .ct2 button.ct2-submit,
.elementor .ct2 button.ct2-submit:focus,
.elementor .ct2 button.ct2-submit:active {
  color: #FFFFFF !important; background: #6E3B47 !important; border-color: #6E3B47 !important;
}
.elementor .ct2 button.ct2-submit:hover {
  color: #FFFFFF !important; background: #572D37 !important; border-color: #572D37 !important;
}

.elementor .ct2 input:focus,
.elementor .ct2 textarea:focus,
.elementor .ct2 select:focus {
  border-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Elementor can force images to auto height — keep the banner exact */
@media screen and (max-width: 1024px) {
  .elementor .ct2 .ct2-image { height: 300px !important; }
}
@media screen and (max-width: 767px) {
  .elementor .ct2 .ct2-image { height: 230px !important; }
}
@media screen and (max-width: 480px) {
  .elementor .ct2 .ct2-image { height: 200px !important; }
}


/* =========================================================
   REDUCED MOTION
========================================================= */
@media (prefers-reduced-motion: reduce) {
  [data-ct2-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .ct2-pill-dot::after { animation: none !important; }
  .ct2-control::after, .ct2-seg-opt span, .ct2-check, .ct2-check svg,
  .ct2 .ct2-submit, .ct2 .ct2-submit svg, .ct2 .ct2-directions svg { transition: none !important; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-61b0485 *//* =========================================================
   FAQ — SYNCED INTERIOR GALLERY
   Questions left (stepper rail) · Image changes per question
   BG #F7F3F0 | Primary #6E3B47
   Headings: Libre Baskerville | Text: Onest (min 16px)
   Question text: 20px on desktop, tablet and mobile
   All colours locked — NO theme blue
   ========================================================= */

.fx-faq {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #F7F3F0;
  padding: 80px 50px 80px 50px;
  box-sizing: border-box;
}

.fx-faq *,
.fx-faq *::before,
.fx-faq *::after { box-sizing: border-box; }

/* ---------- KILL THEME BLUE ---------- */
.fx-faq a,
.fx-faq a:link,
.fx-faq a:visited,
.fx-faq a:hover,
.fx-faq a:focus,
.fx-faq a:active {
  text-decoration: none !important;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
}

.fx-faq button {
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
}

.fx-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}

.fx-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr);
  gap: 72px;
  align-items: stretch;
}


/* =========================================================
   LEFT — HEADER
   ========================================================= */

.fx-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.fx-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.3;
  color: #6E3B47;
}

.fx-eyebrow-line {
  width: 46px;
  height: 2px;
  flex-shrink: 0;
  background: #6E3B47;
  border-radius: 2px;
}

.fx-heading {
  margin: 0 0 16px;
  font-family: 'Libre Baskerville', serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.5px;
  color: #1F1418;
}

.fx-heading em {
  font-style: italic;
  color: #6E3B47;
}

.fx-intro {
  margin: 0 0 30px;
  max-width: 540px;
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  color: #65565A;
}


/* =========================================================
   LEFT — STEPPER ACCORDION
   ========================================================= */

.fx-accordion { position: relative; }

.fx-item { position: relative; }

/* vertical rail through the number circles */
.fx-item::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 23px;
  width: 1px;
  background: rgba(110, 59, 71, 0.22);
}
.fx-item:first-child::before { top: 46px; }
.fx-item:last-child::before  { bottom: auto; height: 46px; }

.fx-faq .fx-question {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 18px;
  padding: 22px 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #24181C !important;
  box-shadow: none !important;
  cursor: pointer;
  text-align: left;
}

/* divider only across the text column (not the rail) */
.fx-item + .fx-item .fx-question::before {
  content: "";
  position: absolute;
  top: 0;
  left: 66px;
  right: 0;
  height: 1px;
  background: rgba(110, 59, 71, 0.12);
}

/* numbered step circle */
.fx-step {
  position: relative;
  z-index: 2;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  font-family: 'Libre Baskerville', serif;
  font-size: 16px;
  font-weight: 700;
  color: rgba(110, 59, 71, 0.7);
  background: #FFFFFF;
  border: 1.5px solid rgba(110, 59, 71, 0.28);
  border-radius: 50%;
  transition: background 0.35s ease, color 0.35s ease,
              border-color 0.35s ease, box-shadow 0.35s ease;
}

.fx-item.is-open .fx-step {
  color: #FFFFFF;
  background: #6E3B47;
  border-color: #6E3B47;
  box-shadow: 0 0 0 7px rgba(110, 59, 71, 0.12);
}

/* question text — 20px */
.fx-q-text {
  font-family: 'Libre Baskerville', serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.45;
  color: #24181C;
  transition: color 0.3s ease;
}

.fx-faq .fx-question:hover .fx-q-text,
.fx-item.is-open .fx-q-text { color: #6E3B47; }

.fx-faq .fx-question:focus { outline: none !important; }
.fx-faq .fx-question:focus-visible .fx-step {
  box-shadow: 0 0 0 4px rgba(110, 59, 71, 0.3);
}

/* plus / minus */
.fx-toggle {
  position: relative;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  background: rgba(110, 59, 71, 0.09);
  border-radius: 50%;
  transition: background 0.35s ease, transform 0.4s cubic-bezier(.22,1,.36,1);
}

.fx-toggle span {
  position: absolute;
  width: 15px;
  height: 2px;
  background: #6E3B47;
  border-radius: 4px;
  transition: transform 0.35s ease, background 0.35s ease;
}
.fx-toggle span:last-child { transform: rotate(90deg); }

.fx-item.is-open .fx-toggle {
  background: #6E3B47;
  transform: rotate(180deg);
}
.fx-item.is-open .fx-toggle span { background: #FFFFFF; }
.fx-item.is-open .fx-toggle span:last-child { transform: rotate(0deg); }

/* answer */
.fx-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(.22, 1, .36, 1);
}

.fx-answer-inner { padding: 0 0 24px 66px; }

.fx-answer-card {
  padding: 20px 24px;
  background: #FFFFFF;
  border: 1px solid rgba(110, 59, 71, 0.12);
  border-radius: 4px 20px 20px 20px;
  box-shadow: 0 16px 38px rgba(110, 59, 71, 0.09);
}

.fx-answer-card p {
  margin: 0;
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
  color: #55464A;
}

/* more line */
.fx-more {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid rgba(110, 59, 71, 0.15);
}

.fx-more-text {
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  color: #65565A;
}

.fx-faq .fx-more-link,
.fx-faq .fx-more-link:link,
.fx-faq .fx-more-link:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 2px;
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #6E3B47 !important;
  border-bottom: 1.5px solid rgba(110, 59, 71, 0.35);
  transition: border-color 0.3s ease;
}

.fx-more-link span { transition: transform 0.3s ease; }

.fx-faq .fx-more-link:hover,
.fx-faq .fx-more-link:focus {
  color: #6E3B47 !important;
  border-color: #6E3B47;
}
.fx-faq .fx-more-link:hover span { transform: translateX(5px); }


/* =========================================================
   RIGHT — SYNCED GALLERY
   ========================================================= */

.fx-visual {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 18px 18px 0 0;          /* room for the offset outline */
}

.fx-figure {
  position: relative;
  width: 100%;
}

/* offset outline frame behind the image */
.fx-outline {
  position: absolute;
  inset: -18px -18px 18px 18px;
  z-index: 0;
  border: 1.5px solid rgba(110, 59, 71, 0.3);
  border-radius: 6px 96px 6px 6px;
  pointer-events: none;
}

.fx-stage {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 4 / 5;
  min-height: 520px;
  max-height: 660px;
  overflow: hidden;
  background: #D8CCC7;
  border-radius: 6px 96px 6px 6px;
  box-shadow: 0 30px 70px rgba(110, 59, 71, 0.2);
}

/* stacked shots */
.fx-shot {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.7s ease, visibility 0s linear 0.7s;
}

.fx-shot.is-leaving { z-index: 1; }

.fx-shot.is-active {
  z-index: 2;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.7s ease, visibility 0s;
}

.fx-shot img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transform: scale(1.02);
}

/* slow Ken Burns on the visible shot */
.fx-shot.is-active img,
.fx-shot.is-leaving img {
  animation: fxKen 16s ease-out forwards;
}

@keyframes fxKen {
  from { transform: scale(1.02); }
  to   { transform: scale(1.12); }
}

.fx-shade {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(20, 10, 13, 0.02) 45%,
    rgba(25, 12, 16, 0.62) 100%
  );
}

/* index plate */
.fx-plate {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 20px 15px;
  color: #FFFFFF;
  background: #6E3B47;
  border-radius: 6px 0 20px 0;
  box-shadow: 0 14px 30px rgba(20, 10, 13, 0.25);
}

.fx-plate-num {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}

.fx-plate-num strong {
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
  color: #FFFFFF;
}

.fx-plate-num em {
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}

.fx-plate-topic {
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #F7D8C9;
  transition: opacity 0.22s ease, transform 0.22s ease;
}

/* caption */
.fx-caption {
  position: absolute;
  right: 22px;
  bottom: 22px;
  left: 22px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 20px;
  color: #FFFFFF;
  background: rgba(55, 29, 35, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 4px 18px 4px 4px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.fx-caption-label {
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.72);
}

.fx-caption-text {
  font-family: 'Libre Baskerville', serif;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.4;
  color: #FFFFFF;
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.fx-caption-text.is-swapping,
.fx-plate-topic.is-swapping {
  opacity: 0;
  transform: translateY(6px);
}

/* thumbnail strip */
.fx-thumbs {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.fx-faq .fx-thumb {
  width: 66px;
  height: 66px;
  padding: 0;
  overflow: hidden;
  background: transparent !important;
  border: 2px solid transparent !important;
  border-radius: 12px;
  box-shadow: none;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.3s ease, transform 0.3s ease,
              border-color 0.3s ease, box-shadow 0.3s ease;
}

.fx-faq .fx-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 9px;
}

.fx-faq .fx-thumb:hover {
  opacity: 0.85;
  transform: translateY(-2px);
}

.fx-faq .fx-thumb.is-active {
  opacity: 1;
  border-color: #6E3B47 !important;
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(110, 59, 71, 0.25);
}

.fx-faq .fx-thumb:focus { outline: none !important; }
.fx-faq .fx-thumb:focus-visible {
  box-shadow: 0 0 0 4px rgba(110, 59, 71, 0.3);
}

/* dot grid */
.fx-dotgrid {
  position: absolute;
  right: -6px;
  bottom: 60px;
  z-index: 0;
  width: 130px;
  height: 130px;
  opacity: 0.2;
  background-image: radial-gradient(#6E3B47 1.6px, transparent 1.6px);
  background-size: 15px 15px;
  pointer-events: none;
}


/* =========================================================
   SCROLL REVEAL
   ========================================================= */

[data-fx-reveal] {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.85s ease, transform 0.85s cubic-bezier(.22,1,.36,1);
}

[data-fx-reveal].fx-visible {
  opacity: 1;
  transform: translateY(0);
}


/* =========================================================
   TABLET (≤ 1024px) — questions first, gallery below
   ========================================================= */

@media screen and (max-width: 1024px) {

  .fx-faq { padding: 50px 30px 50px 30px; }

  .fx-layout {
    grid-template-columns: 1fr;
    gap: 46px;
  }

  .fx-content {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
  }

  .fx-eyebrow { justify-content: center; }

  .fx-heading {
    font-size: 36px;
    text-align: center;
  }

  .fx-intro {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .fx-visual {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
  }

  .fx-stage {
    min-height: 480px;
    max-height: 620px;
  }
}


/* =========================================================
   MOBILE (≤ 767px)
   ========================================================= */

@media screen and (max-width: 767px) {

  .fx-faq { padding: 30px 10px 30px 10px; }

  .fx-layout { gap: 36px; }

  .fx-eyebrow { justify-content: flex-start; gap: 10px; }
  .fx-eyebrow-line { width: 30px; }

  .fx-heading {
    font-size: 30px;
    line-height: 1.3;
    text-align: left;
  }

  .fx-intro {
    text-align: left;
    margin-bottom: 24px;
  }

  /* stepper sizing */
  .fx-faq .fx-question {
    grid-template-columns: 40px minmax(0, 1fr) 38px;
    gap: 12px;
    padding: 20px 0;
  }

  .fx-item::before { left: 19px; }
  .fx-item:first-child::before { top: 40px; }
  .fx-item:last-child::before  { height: 40px; }

  .fx-item + .fx-item .fx-question::before { left: 52px; }

  .fx-step {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .fx-q-text { font-size: 20px; line-height: 1.45; }

  .fx-toggle { width: 38px; height: 38px; }
  .fx-toggle span { width: 13px; }

  .fx-answer-inner { padding: 0 0 20px 52px; }
  .fx-answer-card { padding: 16px 18px; }

  /* gallery */
  .fx-visual { padding: 12px 12px 0 0; }

  .fx-outline {
    inset: -12px -12px 12px 12px;
    border-radius: 6px 52px 6px 6px;
  }

  .fx-stage {
    min-height: 400px;
    max-height: 500px;
    border-radius: 6px 56px 6px 6px;
  }

  .fx-plate {
    padding: 12px 16px 11px;
    border-radius: 6px 0 16px 0;
  }
  .fx-plate-num strong { font-size: 22px; }

  .fx-caption {
    right: 12px;
    bottom: 12px;
    left: 12px;
    padding: 14px 16px;
  }
  .fx-caption-text { font-size: 17px; }

  .fx-thumbs { gap: 10px; margin-top: 16px; }
  .fx-faq .fx-thumb { width: 54px; height: 54px; border-radius: 10px; }
  .fx-faq .fx-thumb img { border-radius: 7px; }

  .fx-dotgrid { display: none; }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  [data-fx-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .fx-shot,
  .fx-shot img,
  .fx-answer,
  .fx-toggle,
  .fx-toggle span,
  .fx-step,
  .fx-thumb,
  .fx-caption-text,
  .fx-plate-topic {
    animation: none !important;
    transition: none !important;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-86f433b *//* =========================================================
   OFFICE LOCATION & MAP SECTION  (LAST SECTION — has bottom padding)
   BG: #F7F3F0 | Primary: #6E3B47
   Headings: Libre Baskerville | Body: Onest (min 16px)
   No blue anywhere: hover / focus / active / selection locked
   ========================================================= */

.loc-section {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: #F7F3F0;
  padding: 80px 50px 80px 50px;          /* bottom padding added */
  box-sizing: border-box;
}

.loc-section *,
.loc-section *::before,
.loc-section *::after { box-sizing: border-box; }

/* ---------- ANTI-BLUE LOCK ---------- */
.loc-section, .loc-section * {
  -webkit-tap-highlight-color: transparent;
  accent-color: #6E3B47;
  caret-color: #6E3B47;
}
.loc-section ::selection { background: rgba(110,59,71,.22); color: #1F1418; }

.loc-section a,
.loc-section a:link,
.loc-section a:visited,
.loc-section a:hover,
.loc-section a:focus,
.loc-section a:active,
.loc-section a:focus-visible {
  text-decoration: none !important;
  outline: none !important;
}

.loc-section button,
.loc-section button:hover,
.loc-section button:focus,
.loc-section button:active,
.loc-section button:focus-visible {
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
  outline: none !important;
  text-decoration: none !important;
}
.loc-section button::-moz-focus-inner { border: 0; }

.loc-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}

/* =========================================================
   HEADER
   ========================================================= */

.loc-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 60px;
  margin-bottom: 36px;
}

.loc-heading-block { max-width: 700px; }

.loc-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  color: #6E3B47;
  font-family: 'Libre Baskerville', serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.3;
}

.loc-eyebrow-line {
  width: 46px;
  height: 2px;
  flex-shrink: 0;
  background-color: #6E3B47;
  border-radius: 2px;
}

.loc-heading-block h2 {
  margin: 0;
  color: #1F1418;
  font-family: 'Libre Baskerville', serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.5px;
}

.loc-heading-block h2 em {
  font-style: italic;
  color: #6E3B47;
}

.loc-header-copy { max-width: 400px; }

.loc-header-copy p {
  margin: 0;
  color: #65565A;
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
}

/* =========================================================
   LOCATION SWITCHER TABS  (all states locked — no theme blue)
   ========================================================= */

.loc-switcher {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}

/* Base + every state = white card, dark text */
.loc-section .loc-tab,
.loc-section .loc-tab:hover,
.loc-section .loc-tab:focus,
.loc-section .loc-tab:active,
.loc-section .loc-tab:focus-visible {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  background-color: #FFFFFF !important;
  background-image: none !important;
  color: #24181C !important;
  border: 1.5px solid rgba(110, 59, 71, 0.14) !important;
  border-radius: 14px;
  box-shadow: none;
  cursor: pointer;
  text-align: left;
  transition:
    background-color 0.35s ease,
    border-color 0.35s ease,
    transform 0.35s ease,
    box-shadow 0.35s ease;
}

/* Hover (inactive) — brand border + lift, still white */
.loc-section .loc-tab:hover {
  border-color: rgba(110, 59, 71, 0.45) !important;
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(110, 59, 71, 0.12);
}

/* Keyboard focus ring — brand, not browser blue */
.loc-section .loc-tab:focus-visible {
  box-shadow: 0 0 0 3px rgba(110, 59, 71, 0.28);
}

/* Active tab — maroon in ALL states including hover */
.loc-section .loc-tab.is-active,
.loc-section .loc-tab.is-active:hover,
.loc-section .loc-tab.is-active:focus,
.loc-section .loc-tab.is-active:active,
.loc-section .loc-tab.is-active:focus-visible {
  background-color: #6E3B47 !important;
  border-color: #6E3B47 !important;
  color: #FFFFFF !important;
  box-shadow: 0 18px 40px rgba(110, 59, 71, 0.26);
}
.loc-section .loc-tab.is-active:hover { transform: translateY(-3px); }

/* Tab icon */
.loc-tab-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  border-radius: 50%;
  background: rgba(110, 59, 71, 0.10);
  color: #6E3B47;
  transition: background-color 0.35s ease, color 0.35s ease;
}

.loc-section .loc-tab:hover .loc-tab-icon {
  background: rgba(110, 59, 71, 0.16);
  color: #6E3B47;
}

.loc-section .loc-tab.is-active .loc-tab-icon,
.loc-section .loc-tab.is-active:hover .loc-tab-icon {
  background: #F7F3F0;
  color: #6E3B47;
}

.loc-tab-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Tab text */
.loc-tab-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.loc-section .loc-tab .loc-tab-text strong {
  font-family: 'Libre Baskerville', serif;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.3;
  color: #24181C !important;
  transition: color 0.35s ease;
}

.loc-section .loc-tab .loc-tab-text span {
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #76666A !important;
  transition: color 0.35s ease;
}

/* Hover (inactive): title turns brand maroon — never blue */
.loc-section .loc-tab:hover .loc-tab-text strong { color: #6E3B47 !important; }
.loc-section .loc-tab:hover .loc-tab-text span   { color: #65565A !important; }

/* Active: white text in all states */
.loc-section .loc-tab.is-active .loc-tab-text strong,
.loc-section .loc-tab.is-active:hover .loc-tab-text strong { color: #FFFFFF !important; }
.loc-section .loc-tab.is-active .loc-tab-text span,
.loc-section .loc-tab.is-active:hover .loc-tab-text span   { color: rgba(255, 255, 255, 0.75) !important; }

/* =========================================================
   MAIN CARD (Details + Map)
   ========================================================= */

.loc-card {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  align-items: stretch;
  min-height: 580px;
  overflow: hidden;
  border-radius: 24px;
  box-shadow: 0 30px 70px rgba(110, 59, 71, 0.14);
}

/* ---------- LEFT: Details Panel ---------- */

.loc-details {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #6E3B47;
  color: #FFFFFF;
}

.loc-ring {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.loc-ring-1 {
  top: -140px;
  left: -140px;
  width: 340px;
  height: 340px;
  border: 1px dashed rgba(255, 255, 255, 0.14);
}

.loc-ring-2 {
  bottom: -120px;
  right: -100px;
  width: 280px;
  height: 280px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.loc-details-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 46px 42px;
}

/* Open Now Badge */
.loc-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
  padding: 9px 17px;
  background: rgba(247, 243, 240, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50px;
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #F7F3F0;
}

.loc-pulse {
  position: relative;
  width: 9px;
  height: 9px;
  background: #F7D8C9;
  border-radius: 50%;
}

.loc-pulse::after {
  content: "";
  position: absolute;
  inset: -4px;
  border: 1.5px solid #F7D8C9;
  border-radius: 50%;
  animation: locPulse 1.8s ease-out infinite;
}

@keyframes locPulse {
  0%   { transform: scale(0.6); opacity: 1; }
  100% { transform: scale(1.8); opacity: 0; }
}

.loc-office-title {
  margin: 0 0 6px;
  font-family: 'Libre Baskerville', serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.25;
  color: #FFFFFF;
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.loc-office-city {
  display: block;
  margin-bottom: 32px;
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #F7D8C9;
  transition: opacity 0.22s ease, transform 0.22s ease;
}

/* Info List */
.loc-info-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 30px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.loc-info-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.loc-info-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  background: rgba(247, 243, 240, 0.14);
  border-radius: 50%;
  color: #F7D8C9;
}

.loc-info-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.loc-info-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding-top: 2px;
}

.loc-info-label {
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.68);
}

/* Values (text + links) — white in every state */
.loc-section .loc-info-val,
.loc-section a.loc-info-val,
.loc-section a.loc-info-val:link,
.loc-section a.loc-info-val:visited,
.loc-section a.loc-info-val:hover,
.loc-section a.loc-info-val:focus,
.loc-section a.loc-info-val:active,
.loc-section a.loc-info-val:focus-visible {
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  color: #FFFFFF !important;
  background: transparent !important;
  overflow-wrap: anywhere;
  transition: opacity 0.22s ease, transform 0.22s ease, border-color 0.3s ease;
}

.loc-section a.loc-info-val {
  align-self: flex-start;
  border-bottom: 1px solid transparent;
}

.loc-section a.loc-info-val:hover,
.loc-section a.loc-info-val:focus-visible {
  border-bottom-color: #F7D8C9;
}

/* Swap Animation State */
.is-swapping {
  opacity: 0 !important;
  transform: translateY(6px) !important;
}

/* Directions Button — brand in ALL states */
.loc-section .loc-directions-btn,
.loc-section .loc-directions-btn:link,
.loc-section .loc-directions-btn:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 54px;
  padding: 15px 30px;
  color: #6E3B47 !important;
  background: #F7F3F0 !important;
  border: 1.5px solid #F7F3F0 !important;
  border-radius: 50px;
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 600;
  transition: background-color 0.35s ease, transform 0.35s ease, box-shadow 0.35s ease;
}

.loc-directions-btn svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.3s ease;
}

.loc-section .loc-directions-btn:hover,
.loc-section .loc-directions-btn:focus,
.loc-section .loc-directions-btn:active {
  color: #6E3B47 !important;
  background: #FFFFFF !important;
  border-color: #FFFFFF !important;
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(20, 10, 13, 0.25);
}

.loc-section .loc-directions-btn:focus-visible {
  box-shadow: 0 14px 30px rgba(20, 10, 13, 0.25), 0 0 0 3px rgba(247, 243, 240, 0.5);
}

.loc-directions-btn:hover svg { transform: translateX(5px); }

/* ---------- RIGHT: Map ---------- */

.loc-map-wrap {
  position: relative;
  min-height: 580px;
  background: #E3D9D4;
  overflow: hidden;
}

.loc-map-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  filter: grayscale(0.35) contrast(1.05) saturate(0.85);
  transition: filter 0.5s ease;
}

.loc-map-wrap:hover .loc-map-frame {
  filter: grayscale(0) contrast(1) saturate(1);
}

/* Map Loader */
.loc-map-loader {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: grid;
  place-items: center;
  background: #E3D9D4;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.loc-map-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
}

.loc-spinner {
  width: 42px;
  height: 42px;
  border: 3px solid rgba(110, 59, 71, 0.2);
  border-top-color: #6E3B47;
  border-radius: 50%;
  animation: locSpin 0.9s linear infinite;
}

@keyframes locSpin { to { transform: rotate(360deg); } }

/* Floating Map Tag */
.loc-map-tag {
  position: absolute;
  left: 24px;
  bottom: 24px;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  background: rgba(247, 243, 240, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 4px 20px 4px 4px;
  box-shadow: 0 18px 40px rgba(20, 10, 13, 0.22);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.loc-map-tag-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  background: #6E3B47;
  color: #FFFFFF;
  border-radius: 50%;
}

.loc-map-tag-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.loc-map-tag-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.loc-map-tag-copy strong {
  font-family: 'Libre Baskerville', serif;
  font-size: 17px;
  font-weight: 700;
  color: #6E3B47;
}

.loc-map-tag-copy span {
  font-family: 'Onest', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #6C5D61;
}

/* =========================================================
   SCROLL REVEAL
   ========================================================= */

[data-loc-reveal] {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity 0.85s ease, transform 0.85s cubic-bezier(.22, 1, .36, 1);
}

[data-loc-reveal].loc-visible {
  opacity: 1;
  transform: translateY(0);
}

/* =========================================================
   TABLET (≤ 1024px)   padding 50px 30px 50px 30px
   ========================================================= */

@media screen and (max-width: 1024px) {
  .loc-section { padding: 50px 30px 50px 30px; }

  .loc-header {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 20px;
    margin-bottom: 32px;
  }

  .loc-eyebrow { justify-content: center; }
  .loc-heading-block h2 { font-size: 36px; }
  .loc-header-copy { max-width: 680px; }

  /* Tabs become horizontally scrollable */
  .loc-switcher {
    display: flex;
    overflow-x: auto;
    gap: 12px;
    padding-bottom: 4px;
    scrollbar-width: none;
  }
  .loc-switcher::-webkit-scrollbar { display: none; }

  .loc-section .loc-tab,
  .loc-section .loc-tab:hover,
  .loc-section .loc-tab:focus,
  .loc-section .loc-tab:active {
    flex: 0 0 auto;
    min-width: 240px;
    padding: 16px 20px;
  }

  /* Card stacks: Map on top, Details below */
  .loc-card {
    grid-template-columns: 1fr;
    min-height: 0;
    border-radius: 20px;
  }

  .loc-map-wrap {
    order: -1;
    min-height: 400px;
    height: 400px;
  }

  .loc-details-inner { padding: 38px 34px; }

  .loc-office-title { font-size: 28px; }

  /* Info list in 2 columns on tablet */
  .loc-info-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 28px;
  }
}

/* =========================================================
   MOBILE (≤ 767px)   padding 30px 10px 30px 10px
   ========================================================= */

@media screen and (max-width: 767px) {
  .loc-section { padding: 30px 10px 30px 10px; }

  .loc-header {
    align-items: flex-start;
    text-align: left;
    gap: 16px;
    margin-bottom: 26px;
  }

  .loc-eyebrow { justify-content: flex-start; gap: 10px; }
  .loc-eyebrow-line { width: 30px; }
  .loc-heading-block h2 { font-size: 30px; line-height: 1.3; }

  .loc-switcher { margin-bottom: 20px; }

  .loc-section .loc-tab,
  .loc-section .loc-tab:hover,
  .loc-section .loc-tab:focus,
  .loc-section .loc-tab:active {
    min-width: 210px;
    padding: 14px 16px;
    gap: 12px;
  }

  .loc-tab-icon { width: 40px; height: 40px; }
  .loc-section .loc-tab .loc-tab-text strong { font-size: 17px; }

  .loc-card { border-radius: 16px; }

  .loc-map-wrap {
    min-height: 300px;
    height: 300px;
  }

  .loc-map-tag {
    left: 12px;
    right: 12px;
    bottom: 12px;
    padding: 14px 16px;
  }

  .loc-details-inner { padding: 28px 20px 32px; }

  .loc-office-title { font-size: 26px; }

  .loc-info-list {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-bottom: 26px;
    padding-bottom: 24px;
  }

  .loc-section .loc-directions-btn { width: 100%; }
}

/* =========================================================
   ELEMENTOR / WORDPRESS OVERRIDES (beats global kit colours)
   ========================================================= */

/* Tab buttons — inactive */
.elementor .loc-section button.loc-tab,
.elementor .loc-section button.loc-tab:hover,
.elementor .loc-section button.loc-tab:focus,
.elementor .loc-section button.loc-tab:active {
  background-color: #FFFFFF !important;
  color: #24181C !important;
}
.elementor .loc-section button.loc-tab:hover {
  border-color: rgba(110, 59, 71, 0.45) !important;
}

/* Tab buttons — active */
.elementor .loc-section button.loc-tab.is-active,
.elementor .loc-section button.loc-tab.is-active:hover,
.elementor .loc-section button.loc-tab.is-active:focus,
.elementor .loc-section button.loc-tab.is-active:active {
  background-color: #6E3B47 !important;
  border-color: #6E3B47 !important;
  color: #FFFFFF !important;
}

/* Detail links */
.elementor .loc-section a.loc-info-val,
.elementor .loc-section a.loc-info-val:hover,
.elementor .loc-section a.loc-info-val:focus,
.elementor .loc-section a.loc-info-val:active {
  color: #FFFFFF !important;
}

/* Directions button */
.elementor .loc-section a.loc-directions-btn,
.elementor .loc-section a.loc-directions-btn:hover,
.elementor .loc-section a.loc-directions-btn:focus,
.elementor .loc-section a.loc-directions-btn:active {
  color: #6E3B47 !important;
}
.elementor .loc-section a.loc-directions-btn:hover,
.elementor .loc-section a.loc-directions-btn:focus {
  background: #FFFFFF !important;
  border-color: #FFFFFF !important;
}

.elementor .loc-section iframe {
  max-width: 100% !important;
  border: 0 !important;
}

/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  [data-loc-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .loc-pulse::after,
  .loc-spinner { animation: none !important; }
  .loc-tab,
  .loc-tab-icon,
  .loc-map-frame,
  .loc-directions-btn,
  .loc-directions-btn svg { transition: none !important; }
}/* End custom CSS */