:root {
  --fh-primary: #087f78;
  --fh-secondary: #173f37;
  --fh-accent: #d9f86f;
  --fh-background: #f3f5ef;
  --fh-surface: #ffffff;
  --fh-text: #17231f;
  --fh-muted: #53635d;
  --fh-border: #cbd7d0;
  --fh-danger: #a52f38;
  --fh-radius: 8px;
  --fh-shadow: 0 22px 60px rgba(18, 54, 47, .13);
}

.fh-section { padding: 112px 28px; }
.fh-section--compact { padding-bottom: 72px; padding-top: 72px; }
.fh-section--white { background: var(--fh-surface); }
.fh-section--tint { background: var(--fh-background); }
.fh-section--navy { background: var(--fh-secondary); color: #fff; }
.fh-section--navy h2, .fh-section--navy h3, .fh-section--navy a { color: #fff; }
.fh-wrap { margin-left: auto; margin-right: auto; max-width: 1320px; width: 100%; }
.fh-narrow { margin-left: auto; margin-right: auto; max-width: 980px; width: 100%; }
.fh-grid:not(.elementor-section) { align-items: stretch; display: grid; gap: 1px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fh-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.fh-hero {
  align-items: center;
  background: var(--fh-secondary);
  display: grid;
  gap: 72px;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .95fr);
  justify-content: center;
  max-width: none !important;
  min-height: 720px;
  padding: 72px max(28px, calc((100% - 1380px) / 2));
  width: 100%;
}
.fh-hero__copy { max-width: 720px; }
.fh-eyebrow { color: var(--fh-accent); font-size: 14px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.fh-hero h1 { color: #fff; font-size: 68px; margin: 18px 0 28px; max-width: 780px; }
.fh-lead { color: #e2ece8; font-size: 21px; line-height: 1.58; max-width: 680px; }
.fh-button-row { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.fh-button .elementor-button {
  background: var(--fh-accent);
  border: 2px solid var(--fh-accent);
  border-radius: 999px;
  color: var(--fh-secondary);
  font-weight: 800;
  min-height: 54px;
  padding: 15px 24px;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.fh-button--secondary .elementor-button { background: transparent; border-color: rgba(255,255,255,.75); color: #fff; }
.fh-button .elementor-button:hover { background: #c8eb56; border-color: #c8eb56; color: var(--fh-secondary); transform: translateY(-2px); }
.fh-button--secondary .elementor-button:hover { background: #fff; border-color: #fff; }
.fh-hero-image { overflow: visible; }
.fh-hero-image img, .fh-feature-image img {
  aspect-ratio: 4 / 3;
  border-radius: var(--fh-radius);
  box-shadow: var(--fh-shadow);
  object-fit: cover;
  width: 100%;
}

.fh-heading { font-size: 54px; margin: 0 0 24px; max-width: 900px; }
.fh-subheading { color: var(--fh-muted); font-size: 21px; line-height: 1.65; max-width: 840px; }
.fh-section--white .fh-narrow { margin-left: auto; margin-right: auto; }

.fh-card {
  background: var(--fh-surface);
  border-bottom: 1px solid var(--fh-border);
  border-right: 1px solid var(--fh-border);
  min-height: 280px;
  padding: 34px;
  transition: background-color .25s ease, transform .25s ease;
}
.fh-card:hover { background: #e6f1ed; transform: translateY(-4px); }
.fh-card h3 { font-size: 28px; margin: 0 0 50px; max-width: 320px; }
.fh-card p { color: var(--fh-muted); }
.fh-card p:last-child { margin-bottom: 0; }
.fh-card-link { align-items: center; color: var(--fh-secondary); display: inline-flex; font-weight: 800; gap: 8px; text-decoration: none; }
.fh-card-link::after { content: "\2197"; font-size: 18px; transition: transform .2s ease; }
.fh-card-link:hover::after { transform: translate(3px, -3px); }

.fh-checklist ul { list-style: none; margin: 22px 0 0; padding: 0; }
.fh-checklist li { margin: 10px 0; padding-left: 28px; position: relative; }
.fh-checklist li::before { color: var(--fh-primary); content: "\2713"; font-weight: 900; left: 0; position: absolute; }
.fh-notice { background: #f3f8dd; border-left: 5px solid var(--fh-accent); color: var(--fh-text); padding: 22px 26px; }
.fh-emergency { background: #fff2f2; border-left: 5px solid var(--fh-danger); color: #681c24; margin-top: 28px; padding: 22px 26px; }
.fh-contact-strip { align-items: center; display: flex; gap: 60px; justify-content: space-between; }
.fh-accordion .elementor-accordion-item { background: transparent; border: 0 !important; border-bottom: 1px solid var(--fh-border) !important; margin: 0; }
.fh-accordion .elementor-tab-title { color: var(--fh-secondary); font-size: 20px; font-weight: 750; padding: 24px 4px; }
.fh-accordion .elementor-tab-content { color: var(--fh-text); padding: 0 4px 24px; }
.fh-placeholder-label { display: none; }
.elementor-editor-active .fh-placeholder-label, .elementor-editor-preview .fh-placeholder-label { background: var(--fh-accent); color: var(--fh-secondary); display: inline-block; font-size: 12px; font-weight: 800; margin-bottom: 10px; padding: 5px 8px; }

.fh-home-intro { background: #fff; }
.fh-home-cards { background: #e6eee9; }
.fh-home-info { background: var(--fh-primary); color: #fff; }
.fh-home-info h2 { color: #fff; }
.fh-home-info .fh-emergency { background: rgba(255,255,255,.94); }

html.gsap-ready:not(.elementor-html) .gsap-fade-up,
html.gsap-ready:not(.elementor-html) .gsap-slide-left,
html.gsap-ready:not(.elementor-html) .gsap-zoom-in,
html.gsap-ready:not(.elementor-html) .gsap-stagger-item { visibility: visible; }
html.fh-motion:not(.gsap-ready) .gsap-fade-up,
html.fh-motion:not(.gsap-ready) .gsap-stagger-item { opacity: 0; transform: translateY(28px); }
html.fh-motion:not(.gsap-ready) .gsap-slide-left { opacity: 0; transform: translateX(-36px); }
html.fh-motion:not(.gsap-ready) .gsap-zoom-in { opacity: 0; transform: scale(.96); }

/* Elementor must never inherit a cached or incomplete animation state. */
html.elementor-html .gsap-fade-up,
html.elementor-html .gsap-slide-left,
html.elementor-html .gsap-zoom-in,
html.elementor-html .gsap-stagger-item,
html.elementor-html .fh-reveal,
html.elementor-html [data-fh-anim],
body.elementor-editor-active .gsap-fade-up,
body.elementor-editor-active .gsap-slide-left,
body.elementor-editor-active .gsap-zoom-in,
body.elementor-editor-active .gsap-stagger-item,
body.elementor-editor-active .fh-reveal,
body.elementor-editor-active [data-fh-anim],
body.elementor-editor-preview .gsap-fade-up,
body.elementor-editor-preview .gsap-slide-left,
body.elementor-editor-preview .gsap-zoom-in,
body.elementor-editor-preview .gsap-stagger-item,
body.elementor-editor-preview .fh-reveal,
body.elementor-editor-preview [data-fh-anim] {
  opacity: 1 !important;
  transition: none !important;
  transform: none !important;
  visibility: visible !important;
}

.elementor .e-con.fh-hero, .elementor .e-con.fh-grid { display: grid; }
.elementor .e-con.fh-button-row, .elementor .e-con.fh-contact-strip { flex-direction: row; }
.elementor .elementor-section.fh-hero,
.elementor .elementor-section.fh-grid,
.elementor .elementor-section.fh-info-layout,
.elementor .elementor-section.fh-hours-layout,
.elementor .elementor-section.fh-contact-strip { display: block !important; }
.elementor .elementor-section.fh-hero > .elementor-container {
  align-items: center;
  display: grid;
  gap: 72px;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .95fr);
  max-width: 1380px;
}
.elementor .e-con.fh-hero,
.elementor .e-con.fh-home-intro { display: block; }
.elementor .elementor-section.fh-hero > .elementor-container > .elementor-column { width: 100%; }
.elementor .elementor-section.fh-grid > .elementor-container {
  align-items: stretch !important;
  background: var(--fh-border) !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 1px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  max-width: none !important;
  width: 100% !important;
}
.elementor .elementor-section.fh-grid > .elementor-container > .elementor-column { width: auto; }
.elementor .elementor-section.fh-contact-strip > .elementor-container {
  align-items: center;
  display: grid;
  gap: 60px;
  grid-template-columns: minmax(0, 1fr) auto;
  justify-content: space-between;
  max-width: 1320px;
}
.elementor .elementor-section.fh-contact-strip > .elementor-container > .elementor-column { width: auto; }
.elementor .elementor-section.fh-section > .elementor-container { max-width: 1320px; }
.elementor .elementor-column.fh-narrow { margin-left: auto; margin-right: auto; max-width: 980px; width: 100%; }
.elementor .elementor-column.fh-hero__copy .elementor-widget-button { display: inline-block; margin: 34px 10px 0 0; width: auto; }

@media (max-width: 980px) {
  .fh-section { padding: 88px 24px; }
  .fh-hero { gap: 42px; grid-template-columns: 1fr; min-height: auto; padding: 70px 24px; }
  .fh-hero h1 { font-size: 54px; }
  .fh-hero__copy { max-width: 780px; }
  .fh-heading { font-size: 44px; }
  .fh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elementor .elementor-section.fh-hero > .elementor-container { gap: 42px; grid-template-columns: 1fr; }
  .elementor .elementor-section.fh-grid > .elementor-container { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 620px) {
  .fh-section { padding: 68px 18px; }
  .fh-hero { gap: 34px; padding: 56px 18px 64px; }
  .fh-hero h1 { font-size: 42px; }
  .fh-heading { font-size: 36px; }
  .fh-lead, .fh-subheading { font-size: 18px; }
  .fh-grid, .fh-grid--2 { grid-template-columns: 1fr; }
  .fh-card { min-height: 0; padding: 28px 24px; }
  .fh-card h3 { margin-bottom: 28px; }
  .elementor .e-con.fh-contact-strip { align-items: flex-start; flex-direction: column; }
  .elementor .e-con.fh-button-row { align-items: stretch; flex-direction: column; }
  .elementor .elementor-section.fh-grid > .elementor-container { grid-template-columns: 1fr !important; }
  .elementor .elementor-section.fh-contact-strip > .elementor-container { align-items: flex-start; grid-template-columns: 1fr; }
  .elementor .elementor-column.fh-hero__copy .elementor-widget-button { display: block; margin: 12px 0 0; width: 100%; }
  .fh-button .elementor-button { width: 100%; }
}

/* Version 1.5: photo-led editorial design supplied by the clinic. */
.fh-hero {
  display: block;
  isolation: isolate;
  min-height: 640px;
  overflow: hidden;
  padding: 0 max(28px, calc((100% - 1320px) / 2));
  position: relative;
}
.fh-hero::before {
  background: rgba(12, 52, 44, .78);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}
.fh-hero::after {
  background: var(--fh-accent);
  bottom: 0;
  content: "";
  height: 8px;
  left: 0;
  position: absolute;
  width: 100%;
  z-index: 3;
}
.fh-hero__copy {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 640px;
  padding: 82px 0;
  position: relative;
  width: min(820px, 70%);
  z-index: 2;
}
.fh-hero__media,
.fh-hero__media.elementor-column,
.fh-hero__media.e-con {
  height: 100%;
  inset: 0;
  position: absolute !important;
  width: 100% !important;
  z-index: 0;
}
.fh-hero__media .elementor-widget-image,
.fh-hero__media .elementor-widget-container,
.fh-hero__media .fh-hero-image,
.fh-hero__media .fh-hero-image img {
  height: 100%;
  width: 100%;
}
.fh-hero__media .fh-hero-image img {
  aspect-ratio: auto;
  border-radius: 0;
  box-shadow: none;
  object-fit: cover;
  object-position: center 46%;
}
.fh-hero h1 { font-size: clamp(48px, 5.2vw, 76px); max-width: 800px; }
.fh-eyebrow { border-left: 4px solid var(--fh-accent); padding-left: 12px; }
.fh-button .elementor-button { border-radius: 6px; }

.fh-home-intro {
  color: #fff;
  isolation: isolate;
  min-height: 540px;
  overflow: hidden;
  position: relative;
}
.fh-home-intro::before {
  background: rgba(12, 52, 44, .80);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}
.fh-home-story__media,
.fh-home-story__media.elementor-column,
.fh-home-story__media.e-con {
  height: 100%;
  inset: 0;
  position: absolute !important;
  width: 100% !important;
  z-index: 0;
}
.fh-home-story__media .elementor-widget-image,
.fh-home-story__media .elementor-widget-container,
.fh-home-story__image,
.fh-home-story__image img { height: 100%; width: 100%; }
.fh-home-story__image img { object-fit: cover; object-position: center 42%; }
.fh-home-story__copy { margin: 0 !important; max-width: 930px; position: relative; z-index: 2; }
.fh-home-intro h2,
.fh-home-intro .fh-subheading { color: #fff; }
.fh-home-intro .fh-subheading { max-width: 850px; }

.fh-home-cards { background: #e6eee9; }
.fh-home-cards .fh-grid { background: var(--fh-border); gap: 1px; }
.fh-card {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.fh-icon-card .elementor-widget-container,
.fh-icon-card .elementor-icon-box-wrapper { height: 100%; width: 100%; }
.fh-icon-card .elementor-icon-box-wrapper { display: flex; flex-direction: column; }
.fh-icon-card .elementor-icon-box-icon { margin: 0 0 24px; }
.fh-icon-card .elementor-icon { color: var(--fh-primary); font-size: 30px; }
.fh-icon-card .elementor-icon-box-content { display: flex; flex: 1; flex-direction: column; }
.fh-icon-card .elementor-icon-box-title { font-size: 25px; margin: 0 0 15px; }
.fh-icon-card .elementor-icon-box-title a { color: var(--fh-secondary); text-decoration: none; }
.fh-icon-card .elementor-icon-box-title a:hover { text-decoration: underline; }
.fh-icon-card .elementor-icon-box-description { color: var(--fh-muted); margin: 0; }

.fh-home-info { background: var(--fh-primary); padding-bottom: 68px; padding-top: 68px; }
.fh-hours-layout:not(.elementor-section) {
  align-items: center;
  display: grid;
  gap: 80px;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 460px);
  max-width: 1320px;
}
.fh-hours-copy .fh-heading { margin-bottom: 28px; }
.fh-hours { border-top: 1px solid rgba(255,255,255,.38); margin: 0; max-width: 660px; }
.fh-hours-row {
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.28);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: 13px 0;
}
.fh-hours-row span { color: #e8f2ee; }
.fh-hours-row strong { color: #fff; font-size: 18px; white-space: nowrap; }
.fh-hours-note { color: #dce9e5; font-size: 15px; margin: 20px 0 0; }
.fh-home-info .fh-emergency {
  background: rgba(255,255,255,.97);
  border-left: 6px solid var(--fh-danger);
  box-shadow: 0 18px 50px rgba(9,35,30,.18);
  margin: 0;
  max-width: 460px;
  padding: 30px 32px;
}
.fh-contact-strip .fh-button .elementor-button { white-space: nowrap; }

.elementor .elementor-section.fh-hero > .elementor-container {
  display: block;
  max-width: 1320px;
  min-height: 640px;
  position: relative;
}
.elementor .elementor-section.fh-home-intro > .elementor-container {
  display: block;
  max-width: 1320px;
  min-height: 364px;
  position: relative;
}
.elementor .elementor-section.fh-home-intro .fh-home-story__copy { padding: 0; width: 100%; }
.elementor .elementor-section.fh-home-info > .elementor-container { max-width: 1320px; }
.elementor .e-con.fh-hours-layout { display: grid; }
.elementor .elementor-column.fh-card > .elementor-widget-wrap {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.elementor .elementor-column.fh-card > .elementor-widget-wrap > .elementor-widget-text-editor { flex: 1; }
.elementor .elementor-section.fh-hours-layout > .elementor-container {
  align-items: center !important;
  display: grid !important;
  gap: 80px !important;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 460px) !important;
  max-width: 1320px !important;
}
.elementor .elementor-section.fh-hours-layout > .elementor-container > .elementor-column { width: 100%; }

@media (max-width: 980px) {
  .fh-hero__copy { width: min(720px, 86%); }
  .fh-hero__media .fh-hero-image img { object-position: 62% center; }
  .fh-hours-layout { gap: 38px !important; grid-template-columns: 1fr !important; }
  .elementor .elementor-section.fh-hours-layout > .elementor-container { gap: 38px !important; grid-template-columns: 1fr !important; }
  .fh-home-info .fh-emergency { max-width: 680px; }
}

@media (max-width: 620px) {
  .fh-hero,
  .fh-hero__copy,
  .elementor .elementor-section.fh-hero > .elementor-container { min-height: 560px; }
  .fh-hero { padding-inline: 18px; }
  .fh-hero::before { background: rgba(12, 52, 44, .84); }
  .fh-hero__copy { padding: 58px 0; width: 100%; }
  .fh-hero h1 { font-size: 42px; }
  .fh-home-intro { min-height: 470px; }
  .fh-card { min-height: 0; padding: 26px 22px; }
  .fh-hours-row { align-items: flex-start; flex-direction: column; gap: 2px; }
  .fh-home-info .fh-emergency { padding: 25px 24px; }
}

/* Defensive compatibility for any old HTML-widget layout awaiting migration. */
.fh-page {
  margin-inline: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  width: 100% !important;
}

/* Version 2.0: approved screenshot-matched native Elementor layout. */
.fh-wrap { max-width: 1240px; }
.fh-narrow { max-width: 930px; }
.fh-section { padding: 88px max(28px, calc((100% - 1240px) / 2)); width: 100%; }
.fh-section--white { background: #fff; }
.fh-section--tint,
.fh-home-cards { background: #e6eee9; }
.fh-heading .elementor-heading-title,
.fh-section--white .elementor-heading-title,
.fh-section--tint .elementor-heading-title { color: var(--fh-secondary) !important; }
.fh-heading .elementor-heading-title { font-size: clamp(36px, 3.5vw, 50px); line-height: 1.08; }
.fh-subheading { color: var(--fh-muted); font-size: 21px; max-width: 850px; }

.fh-hero {
  background: var(--fh-secondary) !important;
  display: block !important;
  isolation: isolate;
  min-height: 620px;
  overflow: hidden;
  padding: 0 max(28px, calc((100% - 1240px) / 2));
  position: relative;
  width: 100%;
}
.fh-hero::before { background: rgba(12, 52, 44, .80); }
.fh-hero__copy {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 620px;
  max-width: 850px;
  padding: 82px 0;
  position: relative;
  width: min(850px, 72%);
  z-index: 2;
}
.fh-hero .elementor-heading-title,
.fh-hero h1 { color: #fff !important; }
.fh-hero h1,
.fh-hero h1.elementor-heading-title { font-size: clamp(46px, 5vw, 72px); line-height: 1.02; margin: 18px 0 24px; max-width: 830px; }
.fh-hero .fh-eyebrow .elementor-heading-title,
.fh-hero .fh-eyebrow { color: var(--fh-accent) !important; }
.fh-hero .fh-lead,
.fh-hero .fh-lead p { color: #dce9e5 !important; font-size: 21px; max-width: 680px; }
.fh-hero__media,
.fh-hero__media.elementor-column,
.fh-hero__media.e-con { inset: 0; height: 100%; position: absolute !important; width: 100% !important; z-index: 0; }
.fh-hero__media .elementor-widget-image,
.fh-hero__media .elementor-widget-container,
.fh-hero__media .fh-hero-image,
.fh-hero__media .fh-hero-image img { height: 100%; width: 100%; }
.fh-hero__media .fh-hero-image img { border-radius: 0 !important; box-shadow: none !important; object-fit: cover; object-position: center 46%; }
.fh-button-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.fh-button .elementor-button {
  background: var(--fh-accent) !important;
  border: 2px solid var(--fh-accent) !important;
  border-radius: 6px !important;
  color: var(--fh-secondary) !important;
  font-weight: 800;
  min-height: 54px;
  padding: 13px 22px;
}
.fh-button--secondary .elementor-button { background: transparent !important; border-color: #fff !important; color: #fff !important; }
.fh-button--secondary .elementor-button:hover { background: #fff !important; color: var(--fh-secondary) !important; }

.fh-grid:not(.elementor-section) { background: var(--fh-border); display: grid !important; gap: 1px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fh-service-card {
  align-items: flex-start;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 245px;
  padding: 30px;
  width: 100%;
}
.fh-service-card .elementor-heading-title { color: var(--fh-secondary) !important; font-size: 24px; line-height: 1.2; }
.fh-service-card .elementor-widget-text-editor { color: var(--fh-muted); flex: 1; }
.fh-service-card .elementor-widget-text-editor p { margin: 0; }
.fh-card-link-button .elementor-button { background: transparent !important; color: var(--fh-secondary) !important; font-weight: 800; padding: 0 !important; }
.fh-card-link-button .elementor-button::after { content: " \2197"; }
.elementor .elementor-column.fh-service-card > .elementor-widget-wrap { align-items: flex-start; display: flex; flex-direction: column; gap: 16px; }
.elementor .elementor-column.fh-service-card > .elementor-widget-wrap > .elementor-widget-text-editor { flex: 1; }

.fh-photo-info {
  align-items: center;
  background: var(--fh-primary) !important;
  color: #fff;
  display: block !important;
  isolation: isolate;
  min-height: 520px;
  overflow: hidden;
  padding: 68px max(28px, calc((100% - 1240px) / 2));
  position: relative;
  width: 100%;
}
.fh-photo-info::before { background: rgba(8, 62, 55, .88); content: ""; inset: 0; position: absolute; z-index: 1; }
.fh-info-media,
.fh-info-media.elementor-column,
.fh-info-media.e-con { height: 100%; inset: 0; position: absolute !important; width: 100% !important; z-index: 0; }
.fh-info-media .elementor-widget-image,
.fh-info-media .elementor-widget-container,
.fh-info-image,
.fh-info-image img { height: 100%; width: 100%; }
.fh-info-image img { border-radius: 0 !important; box-shadow: none !important; object-fit: cover; object-position: center 48%; }
.fh-info-layout:not(.elementor-section) { align-items: center; display: grid !important; gap: 80px; grid-template-columns: minmax(0, 1fr) minmax(340px, 460px); position: relative; z-index: 2; }
.fh-info-copy .elementor-heading-title { color: #fff !important; }
.fh-info-copy .fh-eyebrow .elementor-heading-title { color: var(--fh-accent) !important; }
.fh-info-copy .fh-heading .elementor-heading-title { font-size: clamp(38px, 3.6vw, 52px); }
.fh-expect-list { border-top: 1px solid rgba(255,255,255,.35); color: #fff; list-style: none; margin: 26px 0 0; max-width: 680px; padding: 0; }
.fh-expect-list li { border-bottom: 1px solid rgba(255,255,255,.25); padding: 11px 0; }
.fh-emergency {
  background: rgba(255,255,255,.97) !important;
  border-left: 6px solid var(--fh-danger);
  box-shadow: 0 18px 50px rgba(9,35,30,.18);
  color: #681c24;
  margin: 0;
  max-width: 460px;
  padding: 30px 32px;
}
.fh-emergency .elementor-heading-title { color: #5c1920 !important; }
.fh-emergency .fh-emergency-label .elementor-heading-title { color: var(--fh-danger) !important; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.fh-emergency h3.elementor-heading-title { font-size: 26px; line-height: 1.18; }
.fh-emergency .elementor-widget-text-editor,
.fh-emergency .elementor-widget-text-editor p { color: #681c24 !important; margin: 0; }

.fh-accordion .elementor-accordion-item { background: transparent; }
.fh-accordion .elementor-tab-title { color: var(--fh-secondary) !important; font-size: 20px; }
.fh-section--navy { background: #102f2a !important; }
.fh-section--navy .elementor-heading-title,
.fh-section--navy .elementor-widget-text-editor,
.fh-section--navy .elementor-widget-text-editor p { color: #fff !important; }
.fh-section--navy .fh-button .elementor-button { white-space: nowrap; }

.elementor .e-con.fh-hero,
.elementor .e-con.fh-photo-info { display: block !important; }
.elementor .e-con.fh-info-layout { display: grid !important; }
.elementor .elementor-section.fh-hero > .elementor-container { display: block; max-width: 1240px; min-height: 620px; }
.elementor .elementor-section.fh-photo-info > .elementor-container { display: block; max-width: 1240px; }
.elementor .elementor-section.fh-info-layout > .elementor-container { align-items: center !important; display: grid !important; gap: 80px !important; grid-template-columns: minmax(0, 1fr) minmax(340px, 460px) !important; max-width: 1240px !important; position: relative !important; z-index: 2 !important; }
.elementor .elementor-section.fh-info-layout { position: relative !important; z-index: 2 !important; }
.elementor .elementor-section.fh-info-layout > .elementor-container > .elementor-column { width: 100%; }

@media (max-width: 980px) {
  .fh-hero__copy { width: min(760px, 88%); }
  .fh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fh-info-layout,
  .elementor .elementor-section.fh-info-layout > .elementor-container { gap: 38px !important; grid-template-columns: 1fr !important; }
  .fh-emergency { max-width: 680px; }
}

@media (max-width: 620px) {
  .fh-section { padding: 64px 18px; }
  .fh-hero { min-height: 560px; padding-inline: 18px; }
  .fh-hero__copy { min-height: 560px; padding: 58px 0; width: 100%; }
  .fh-hero h1,
  .fh-hero h1.elementor-heading-title { font-size: 42px; }
  .fh-hero .fh-lead,
  .fh-hero .fh-lead p { font-size: 18px; }
  .fh-hero__media .fh-hero-image img { object-position: 62% center; }
  .fh-button-row { align-items: stretch; flex-direction: column; }
  .fh-button-row .elementor-widget-button,
  .fh-button-row .elementor-button { width: 100%; }
  .fh-grid { grid-template-columns: 1fr; }
  .fh-service-card { min-height: 0; padding: 26px 22px; }
  .fh-photo-info { min-height: 0; padding: 58px 18px; }
  .fh-emergency { padding: 25px 24px; }
  .fh-emergency h3.elementor-heading-title { font-size: 23px; }
}

/* Version 2.2: make native Elementor image layers truly full-bleed. */
.fh-hero__media,
.fh-info-media {
  bottom: 0 !important;
  flex: 0 0 100% !important;
  left: 0 !important;
  margin: 0 !important;
  max-height: none !important;
  max-width: none !important;
  min-height: 100% !important;
  min-width: 100% !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  width: 100% !important;
}
.fh-hero__media > .elementor-widget-wrap,
.fh-info-media > .elementor-widget-wrap,
.fh-hero__media .elementor-element,
.fh-info-media .elementor-element,
.fh-hero__media .elementor-widget-container,
.fh-info-media .elementor-widget-container,
.fh-hero__media picture,
.fh-info-media picture,
.fh-hero__media figure,
.fh-info-media figure {
  height: 100% !important;
  margin: 0 !important;
  max-height: none !important;
  max-width: none !important;
  min-height: 100% !important;
  padding: 0 !important;
  width: 100% !important;
}
.fh-hero__media img,
.fh-info-media img {
  border-radius: 0 !important;
  bottom: 0 !important;
  box-shadow: none !important;
  display: block !important;
  height: 100% !important;
  left: 0 !important;
  margin: 0 !important;
  max-height: none !important;
  max-width: none !important;
  min-height: 100% !important;
  min-width: 100% !important;
  object-fit: cover !important;
  object-position: center center;
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  width: 100% !important;
}
@media (max-width: 620px) {
  .fh-hero__media img { object-position: 62% center; }
}

/* Version 2.3: high-end, content-driven service grid proportions. */
.fh-grid:not(.elementor-section),
.elementor .e-con.fh-grid {
  --align-items: stretch;
  --gap: 1px 1px;
  --min-height: 0px;
  --width: 100% !important;
  align-items: stretch !important;
  background: var(--fh-border) !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 1px !important;
  grid-auto-rows: minmax(245px, auto);
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  height: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  width: 100% !important;
}
@media (max-width: 980px) {
  .fh-grid:not(.elementor-section),
  .elementor .e-con.fh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 620px) {
  .fh-grid:not(.elementor-section),
  .elementor .e-con.fh-grid { grid-template-columns: 1fr !important; }
}
.fh-service-card,
.elementor .e-con.fh-service-card {
  --align-content: flex-start;
  --align-items: flex-start;
  --gap: 16px 16px;
  --justify-content: flex-start;
  --min-height: 245px;
  --width: 100% !important;
  align-content: flex-start !important;
  align-items: flex-start !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 0 var(--fh-accent);
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  height: auto !important;
  justify-content: flex-start !important;
  margin: 0 !important;
  max-width: none !important;
  min-height: 245px !important;
  overflow: hidden;
  padding: 32px !important;
  transition: background-color .22s ease, box-shadow .22s ease;
  width: 100% !important;
}
.fh-service-card:hover {
  background: #f8fbf9 !important;
  box-shadow: inset 0 4px 0 0 var(--fh-accent);
}
.fh-service-card > .elementor-widget,
.fh-service-card > .elementor-element,
.fh-service-card .elementor-widget-heading,
.fh-service-card .elementor-widget-text-editor {
  align-self: stretch !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  min-height: 0 !important;
  width: 100% !important;
}
.fh-service-card .elementor-heading-title {
  font-size: 24px !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}
.fh-service-card .elementor-widget-text-editor,
.fh-service-card .elementor-widget-text-editor p {
  color: var(--fh-muted) !important;
  line-height: 1.65;
  margin: 0 !important;
}
.fh-service-card .fh-card-link-button { margin-top: auto !important; }
.elementor .elementor-column.fh-service-card,
.elementor .elementor-column.fh-service-card > .elementor-widget-wrap {
  align-content: flex-start !important;
  align-items: flex-start !important;
  height: auto !important;
  justify-content: flex-start !important;
  min-height: 245px !important;
}
.elementor .elementor-column.fh-service-card > .elementor-widget-wrap {
  background: #fff;
  gap: 16px;
  padding: 32px !important;
}
.elementor .e-con.fh-emergency,
.elementor .e-con.fh-info-copy,
.elementor .e-con.fh-contact-strip > .e-con,
.elementor .e-con.fh-button-row {
  --min-height: 0px;
  height: auto !important;
  min-height: 0 !important;
}
@media (max-width: 620px) {
  .fh-grid,
  .elementor .e-con.fh-grid { grid-auto-rows: auto; }
  .fh-service-card,
  .elementor .e-con.fh-service-card,
  .elementor .elementor-column.fh-service-card,
  .elementor .elementor-column.fh-service-card > .elementor-widget-wrap {
    min-height: 0 !important;
    padding: 26px 22px !important;
  }
}
