/* Original Gymful /services editorial page. No Osmo widget is claimed.
   Shared V3 type, theme, navigation and form controllers remain authoritative. */
.gf-page-services-overview .gf-services-overview-v3 { color: var(--gf-page-text); background: var(--gf-page-bg); }
.gf-page-services-overview .gf-services-overview-v3 :is(h1,h2,h3,p,figure) { margin: 0; }
.gf-page-services-overview .gf-services-overview-v3 :is(img,svg) { max-width: 100%; }
.gf-page-services-overview .gf-ov3-hero { padding-top: clamp(9rem, 13vw, 13rem); padding-bottom: clamp(3rem, 6vw, 6rem); }
.gf-page-services-overview .gf-ov3-hero-top,
.gf-page-services-overview .gf-ov3-hero-bottom { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.gf-page-services-overview .gf-ov3-hero-top { align-items: center; }
.gf-page-services-overview .gf-ov3-hero-top > span { color: var(--gf-page-subtle); font-size: .75rem; letter-spacing: .07em; text-transform: uppercase; }
.gf-page-services-overview .gf-ov3-hero h1 { max-width: 19ch; margin-top: clamp(2rem, 5vw, 5rem); font-size: clamp(4rem, 7.7vw, 8rem); line-height: .86; }
.gf-page-services-overview .gf-ov3-hero h1 span { color: #647a21; }
html[data-theme="dark"] .gf-page-services-overview .gf-ov3-hero h1 span { color: var(--gf-acid); }
.gf-page-services-overview .gf-ov3-hero-bottom { margin-block: clamp(2.5rem, 5vw, 5rem); }
.gf-page-services-overview .gf-ov3-hero-bottom > p { max-width: 47rem; font-size: clamp(1.2rem, 2vw, 1.8rem); line-height: 1.45; }
.gf-page-services-overview .gf-ov3-text-link { display: inline-flex; align-items: center; gap: .75rem; min-height: 2.75rem; font-size: .78rem; letter-spacing: .07em; text-transform: uppercase; border-bottom: 1px solid currentColor; }
.gf-page-services-overview .gf-ov3-text-link > span { display: grid; place-items: center; }
.gf-page-services-overview .gf-ov3-text-link svg { width: 1.25rem; height: 1.25rem; }
.gf-page-services-overview .gf-ov3-hero-photo { position: relative; height: clamp(22rem, 52vw, 47rem); overflow: hidden; background: var(--gf-page-raised); }
.gf-page-services-overview .gf-ov3-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.gf-page-services-overview .gf-ov3-hero-photo > span { position: absolute; bottom: clamp(1rem, 2vw, 2rem); left: clamp(1rem, 2vw, 2rem); padding: .6rem .9rem; color: #fff; background: rgb(9 18 8 / 72%); font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; }
.gf-page-services-overview .gf-ov3-split { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 7rem); }
.gf-page-services-overview .gf-ov3-split > div { min-width: 0; }
.gf-page-services-overview .gf-ov3-split h2,
.gf-page-services-overview .gf-ov3-about h2,
.gf-page-services-overview .gf-ov3-contact h2 { margin-top: 1.5rem; font-size: clamp(3.5rem, 7vw, 7rem); line-height: .91; }
.gf-page-services-overview .gf-ov3-intro { max-width: 35rem; margin-top: 2rem !important; font-size: clamp(1.15rem, 1.6vw, 1.5rem); line-height: 1.55; }
.gf-page-services-overview .gf-ov3-why .gf-button { margin-top: 2rem; }
.gf-page-services-overview .gf-ov3-reasons { border-top: 1px solid var(--gf-page-line); }
.gf-page-services-overview .gf-ov3-reasons li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: 1.5rem; padding-block: clamp(1.4rem, 2.5vw, 2.5rem); border-bottom: 1px solid var(--gf-page-line); }
.gf-page-services-overview .gf-ov3-reasons li > span { color: var(--gf-page-subtle); font-size: .78rem; }
.gf-page-services-overview .gf-ov3-reasons h3 { font-size: clamp(2rem, 3.5vw, 3.5rem); }
.gf-page-services-overview .gf-ov3-reasons p { max-width: 33rem; margin-top: .85rem !important; color: var(--gf-page-subtle); line-height: 1.5; }
.gf-page-services-overview .gf-ov3-section-head { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); align-items: end; gap: 2rem; margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.gf-page-services-overview .gf-ov3-section-head .gf-eyebrow { grid-column: 1 / -1; }
.gf-page-services-overview .gf-ov3-section-head h2 { font-size: clamp(3.6rem, 7vw, 7rem); }
.gf-page-services-overview .gf-ov3-section-head > p { max-width: 30rem; line-height: 1.55; }
.gf-page-services-overview .gf-ov3-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 2rem); }
.gf-page-services-overview .gf-ov3-service { min-width: 0; }
.gf-page-services-overview .gf-ov3-service a,
.gf-page-services-overview .gf-ov3-case a { display: block; color: inherit; }
.gf-page-services-overview .gf-ov3-service-photo { height: clamp(17rem, 28vw, 27rem); overflow: hidden; background: #293525; }
.gf-page-services-overview .gf-ov3-service-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s var(--gf-ease); }
.gf-page-services-overview .gf-ov3-service:hover img,
.gf-page-services-overview .gf-ov3-service:focus-within img,
.gf-page-services-overview .gf-ov3-case:hover .gf-ov3-case-photo img,
.gf-page-services-overview .gf-ov3-case:focus-within .gf-ov3-case-photo img { transform: scale(1.035); }
.gf-page-services-overview .gf-ov3-service-copy { display: grid; grid-template-columns: 2rem minmax(0, 1fr) 3rem; align-items: start; gap: 1rem; margin-top: 1rem; padding-top: 1.25rem; border-top: 1px solid var(--gf-page-line); }
.gf-page-services-overview .gf-ov3-service-copy > span:first-child,
.gf-page-services-overview .gf-ov3-case-copy > span:first-child { font-size: .75rem; }
.gf-page-services-overview .gf-ov3-service h3 { font-size: clamp(2.7rem, 4.6vw, 4.8rem); }
.gf-page-services-overview .gf-ov3-service p { max-width: 33rem; margin-top: .75rem !important; color: #c5d0bf; line-height: 1.5; }
.gf-page-services-overview .gf-ov3-round { display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid var(--gf-page-line); border-radius: 50%; }
.gf-page-services-overview .gf-ov3-round svg { width: 1.25rem; height: 1.25rem; }
.gf-page-services-overview .gf-ov3-cases { background: var(--gf-page-soft); }
.gf-page-services-overview .gf-ov3-cases .gf-ov3-section-head > p { color: var(--gf-page-subtle); }
.gf-page-services-overview .gf-ov3-case-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 4rem) clamp(1rem, 2vw, 2rem); }
.gf-page-services-overview .gf-ov3-case { min-width: 0; }
.gf-page-services-overview .gf-ov3-case:first-child { grid-column: span 2; }
.gf-page-services-overview .gf-ov3-case-photo { height: clamp(17rem, 30vw, 30rem); overflow: hidden; background: var(--gf-page-raised); }
.gf-page-services-overview .gf-ov3-case:first-child .gf-ov3-case-photo { height: clamp(22rem, 43vw, 40rem); }
.gf-page-services-overview .gf-ov3-case-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s var(--gf-ease); }
.gf-page-services-overview .gf-ov3-case-photo--mosaic { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .75fr); gap: clamp(.35rem, .8vw, .75rem); }
.gf-page-services-overview .gf-ov3-case-primary,
.gf-page-services-overview .gf-ov3-case-pair { min-width: 0; min-height: 0; overflow: hidden; }
.gf-page-services-overview .gf-ov3-case-pair { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: clamp(.35rem, .8vw, .75rem); }
.gf-page-services-overview .gf-ov3-case-pair img { min-height: 0; }
.gf-page-services-overview .gf-ov3-case-copy { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; margin-top: 1rem; padding-top: 1.25rem; border-top: 1px solid var(--gf-page-line); }
.gf-page-services-overview .gf-ov3-case-logo { display: inline-flex; align-items: center; justify-content: center; max-width: min(100%, 12rem); min-height: 3.3rem; margin-bottom: 1.25rem; padding: .5rem .8rem; background: #f0efe9; }
.gf-page-services-overview .gf-ov3-case-logo img { width: auto; max-width: 100%; height: auto; max-height: 2.3rem; object-fit: contain; }
.gf-page-services-overview .gf-ov3-case h3 { font-size: clamp(2.7rem, 4.6vw, 4.8rem); }
.gf-page-services-overview .gf-ov3-case p { max-width: 39rem; margin-top: .8rem !important; color: var(--gf-page-subtle); line-height: 1.55; }
.gf-page-services-overview .gf-ov3-case-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.3rem; border-bottom: 1px solid currentColor; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.gf-page-services-overview .gf-ov3-case-link svg { width: 1.15rem; height: 1.15rem; }
.gf-page-services-overview .gf-ov3-all-cases { margin-top: clamp(2.5rem, 5vw, 5rem); }
.gf-page-services-overview .gf-ov3-about-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(2.5rem, 7vw, 8rem); }
.gf-page-services-overview .gf-ov3-about-grid > div { min-width: 0; }
.gf-page-services-overview .gf-ov3-about-lead { margin-top: 2rem !important; font-size: clamp(1.2rem, 1.8vw, 1.65rem); line-height: 1.45; }
.gf-page-services-overview .gf-ov3-about-lead + p { margin-top: 1.5rem !important; color: #c5d0bf; line-height: 1.6; }
.gf-page-services-overview .gf-ov3-about .gf-button { margin-top: 2rem; }
.gf-page-services-overview .gf-ov3-people { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: .7rem; height: clamp(24rem, 42vw, 39rem); }
.gf-page-services-overview .gf-ov3-people figure { min-width: 0; min-height: 0; overflow: hidden; }
.gf-page-services-overview .gf-ov3-people figure:first-child { grid-row: span 2; }
.gf-page-services-overview .gf-ov3-people img { width: 100%; height: 100%; object-fit: cover; }
.gf-page-services-overview .gf-ov3-faq > .gf-wrap > div:first-child > p:last-child { max-width: 26rem; margin-top: 2rem !important; color: var(--gf-page-subtle); }
.gf-page-services-overview .gf-ov3-faq a { display: inline-flex; align-items: center; gap: .25rem; color: var(--gf-page-text); text-decoration: underline; text-underline-offset: .25rem; }
.gf-page-services-overview .gf-ov3-faq a svg { width: 1rem; height: 1rem; }
.gf-page-services-overview .gf-ov3-faq-list { border-top: 1px solid var(--gf-page-line); }
.gf-page-services-overview .gf-ov3-faq-list details { border-bottom: 1px solid var(--gf-page-line); }
.gf-page-services-overview .gf-ov3-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.4rem .2rem; cursor: pointer; list-style: none; font-size: clamp(1rem, 1.35vw, 1.25rem); }
.gf-page-services-overview .gf-ov3-faq-list summary::-webkit-details-marker { display: none; }
.gf-page-services-overview .gf-ov3-faq-list summary > span { flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--gf-page-line); border-radius: 50%; }
.gf-page-services-overview .gf-ov3-faq-list summary svg { width: 1rem; height: 1rem; }
.gf-page-services-overview .gf-ov3-faq-list details[open] summary svg { transform: rotate(45deg); }
.gf-page-services-overview .gf-ov3-faq-list details > p { max-width: 42rem; padding: 0 2.5rem 1.5rem .2rem; color: var(--gf-page-subtle); line-height: 1.6; }
.gf-page-services-overview .gf-ov3-discovery { border-top: 1px solid var(--gf-page-line); background: var(--gf-page-soft); }
.gf-page-services-overview .gf-ov3-discovery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 6vw, 7rem); }
.gf-page-services-overview .gf-ov3-discovery-grid > div { min-width: 0; }
.gf-page-services-overview .gf-ov3-discovery h3 { margin-bottom: 1.5rem; font-size: clamp(1.9rem, 3vw, 3rem); }
.gf-page-services-overview .gf-ov3-industries { border-top: 1px solid var(--gf-page-line); }
.gf-page-services-overview .gf-ov3-industries li { border-bottom: 1px solid var(--gf-page-line); }
.gf-page-services-overview .gf-ov3-industries a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; padding-block: .7rem; }
.gf-page-services-overview .gf-ov3-industries svg { width: 1.15rem; height: 1.15rem; }
.gf-page-services-overview .gf-ov3-cities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.gf-page-services-overview .gf-ov3-cities li { min-width: 0; }
.gf-page-services-overview .gf-ov3-cities a { display: block; min-height: 2.8rem; padding: .7rem .8rem; border: 1px solid var(--gf-page-line); font-size: .86rem; line-height: 1.35; overflow-wrap: anywhere; }
.gf-page-services-overview .gf-ov3-industries a:hover,
.gf-page-services-overview .gf-ov3-industries a:focus-visible,
.gf-page-services-overview .gf-ov3-cities a:hover,
.gf-page-services-overview .gf-ov3-cities a:focus-visible { color: #476f00; }
html[data-theme="dark"] .gf-page-services-overview .gf-ov3-industries a:hover,
html[data-theme="dark"] .gf-page-services-overview .gf-ov3-industries a:focus-visible,
html[data-theme="dark"] .gf-page-services-overview .gf-ov3-cities a:hover,
html[data-theme="dark"] .gf-page-services-overview .gf-ov3-cities a:focus-visible { color: var(--gf-acid); }
.gf-page-services-overview .gf-ov3-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: clamp(2.5rem, 7vw, 8rem); }
.gf-page-services-overview .gf-ov3-contact-grid > div { min-width: 0; }
.gf-page-services-overview .gf-ov3-contact-grid > div:first-child > p:not(.gf-eyebrow) { max-width: 38rem; margin-top: 2rem !important; color: #c5d0bf; line-height: 1.6; }
.gf-page-services-overview .gf-ov3-contact-alt { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.gf-page-services-overview .gf-ov3-contact-alt .gf-button { flex: none; }
.gf-page-services-overview .gf-ov3-form-wrap { --gf-page-text: #121412; --gf-input-bg: #faf9f5; --gf-input-border: #95998c; --gf-input-placeholder: #6d7468; --gf-page-focus: #476f00; padding: clamp(1.25rem, 3vw, 3rem); color: #121412; background: #f0efe9; }
.gf-page-services-overview .gf-ov3-form-wrap form { display: grid; gap: 1.25rem; }
.gf-page-services-overview .gf-ov3-field { display: grid; gap: .4rem; }
.gf-page-services-overview .gf-ov3-field label { font-size: .8rem; font-weight: 600; }
.gf-page-services-overview .gf-ov3-field :is(input,textarea) { width: 100%; min-width: 0; padding: .9rem 1rem; border: 1px solid var(--gf-input-border); border-radius: 0; color: var(--gf-page-text); background: var(--gf-input-bg); font-size: 1rem; }
.gf-page-services-overview .gf-ov3-field :is(input,textarea)::placeholder { color: var(--gf-input-placeholder); opacity: 1; }
.gf-page-services-overview .gf-ov3-field :is(input,textarea):focus-visible { outline: 2px solid var(--gf-page-focus); outline-offset: 2px; }
.gf-page-services-overview .gf-ov3-submit { display: inline-flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 3.75rem; padding: .7rem 1rem; border: 1px solid var(--gf-ink); border-radius: 100px; background: var(--gf-acid); color: var(--gf-ink); text-align: left; }
.gf-page-services-overview .gf-ov3-submit svg { width: 1.25rem; height: 1.25rem; }
.gf-page-services-overview .gf-ov3-form-wrap :is(.w-form-done,.w-form-fail) { display: none; margin-top: 1rem; padding: 1rem; font-size: .9rem; }
.gf-page-services-overview .gf-ov3-form-wrap .w-form-done { background: var(--gf-status-success-bg); color: var(--gf-status-success-text); }
.gf-page-services-overview .gf-ov3-form-wrap .w-form-fail { background: var(--gf-status-error-bg); color: var(--gf-status-error-text); }
@media (max-width: 760px) {
  .gf-page-services-overview .gf-ov3-hero-top > span { display: none; }
  .gf-page-services-overview .gf-ov3-hero-bottom { display: block; }
  .gf-page-services-overview .gf-ov3-hero-bottom .gf-ov3-text-link { margin-top: 1.5rem; }
  .gf-page-services-overview .gf-ov3-split,
  .gf-page-services-overview .gf-ov3-section-head,
  .gf-page-services-overview .gf-ov3-about-grid,
  .gf-page-services-overview .gf-ov3-contact-grid,
  .gf-page-services-overview .gf-ov3-discovery-grid { grid-template-columns: 1fr; }
  .gf-page-services-overview .gf-ov3-section-head .gf-eyebrow { grid-column: auto; }
  .gf-page-services-overview .gf-ov3-service-grid,
  .gf-page-services-overview .gf-ov3-case-grid { grid-template-columns: 1fr; }
  .gf-page-services-overview .gf-ov3-case:first-child { grid-column: auto; }
  .gf-page-services-overview .gf-ov3-service-photo,
  .gf-page-services-overview .gf-ov3-case-photo,
  .gf-page-services-overview .gf-ov3-case:first-child .gf-ov3-case-photo { height: clamp(17rem, 67vw, 25rem); }
  .gf-page-services-overview .gf-ov3-case-photo--mosaic { grid-template-columns: minmax(0, 1.2fr) minmax(0, .85fr); }
  .gf-page-services-overview .gf-ov3-people { height: 27rem; }
  .gf-page-services-overview .gf-ov3-cities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 390px) {
  .gf-page-services-overview .gf-ov3-hero h1 { font-size: clamp(3.1rem, 14vw, 4rem); }
  .gf-page-services-overview .gf-ov3-split h2,
  .gf-page-services-overview .gf-ov3-section-head h2,
  .gf-page-services-overview .gf-ov3-about h2,
  .gf-page-services-overview .gf-ov3-contact h2 { font-size: 3.25rem; }
  .gf-page-services-overview .gf-ov3-service h3,
  .gf-page-services-overview .gf-ov3-case h3 { font-size: 2.7rem; }
  .gf-page-services-overview .gf-ov3-service-copy { grid-template-columns: 1.5rem minmax(0, 1fr) 2.5rem; gap: .65rem; }
  .gf-page-services-overview .gf-ov3-round { width: 2.5rem; height: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gf-page-services-overview .gf-ov3-service-photo img,
  .gf-page-services-overview .gf-ov3-case-photo img { transition: none; }
  .gf-page-services-overview .gf-ov3-service:hover img,
  .gf-page-services-overview .gf-ov3-service:focus-within img,
  .gf-page-services-overview .gf-ov3-case:hover .gf-ov3-case-photo img,
  .gf-page-services-overview .gf-ov3-case:focus-within .gf-ov3-case-photo img { transform: none; }
}
