/* Shared phone/tablet layout. Desktop keeps the captured site styling. */
.responsive-site-header { display: none; }
@media (max-width: 1200px) {
  body.elementor-kit-49 { --e-global-typography-primary-font-size: 38px; }
  .responsive-site-header { display: block; }
  html, body { max-width: 100%; }
  .elementor .elementor-container, .elementor .elementor-column,
  .elementor .elementor-widget, .elementor .e-con { min-width: 0; }
  .elementor .elementor-widget-image img,
  .elementor .elementor-image-box-img img {
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
  }
  .elementor .elementor-widget-image .elementor-widget-container img {
    -webkit-mask-image: none !important; mask-image: none !important; clip-path: none !important;
  }
  .elementor:not(.elementor-location-header) .elementor-widget-image img { max-width: min(100%, 560px) !important; }
  .elementor img[src*="logo"] { max-width: 180px !important; }
  .elementor-118 .elementor-element-7ba6df6 img { width: min(100%, 420px) !important; }
  .elementor-118 .elementor-element.elementor-element-34513ad,
  .elementor-118 .elementor-element.elementor-element-51e04782,
  .elementor-118 .elementor-element.elementor-element-2899bed0 { padding-block: 40px !important; }
  .elementor .elementor-widget-text-editor,
  .elementor .elementor-widget-theme-post-content {
    font-size: 17px !important;
    line-height: 1.65 !important;
    text-align: start !important;
  }
  .elementor .elementor-widget-text-editor p,
  .elementor .elementor-widget-theme-post-content p {
    font-size: inherit !important;
    line-height: inherit !important;
    text-align: start !important;
    overflow-wrap: break-word;
  }
  .elementor h1.elementor-heading-title { font-size: clamp(30px, 4.5vw, 44px) !important; line-height: 1.2 !important; }
  .elementor .elementor-heading-title { overflow-wrap: break-word; }
  .elementor .elementor-invisible { visibility: visible !important; opacity: 1 !important; }
  .elementor .animated { animation: none !important; }
  .elementor .elementor-button {
    max-width: 100%;
    font-size: 12px !important;
    line-height: 1.4 !important;
    letter-spacing: 1.5px !important;
    padding: 14px 22px !important;
    white-space: normal;
  }
  .elementor .elementor-button-content-wrapper { align-items: center; }

  /* A compact, consistent header, including landscape tablets. */
  .elementor-location-header .elementor-element-c3d4fa5 { display: none !important; }
  .elementor-location-header .elementor-element-4199bc6a { height: 4px !important; min-height: 0 !important; overflow: hidden; }
  .elementor-location-header .elementor-element-4199bc6a > .elementor-container { height: 4px; flex-wrap: nowrap; }
  .elementor-location-header .elementor-element-4199bc6a .elementor-column { width: 25% !important; }
  .elementor-location-header .elementor-element-3022da3e { padding: 12px 20px !important; }
  .elementor-location-header .elementor-element-3022da3e > .elementor-container {
    display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between;
  }
  .elementor-location-header .elementor-element-5b7f04c8 { width: auto !important; flex: 0 0 auto; }
  .elementor-location-header .elementor-element-5e8fb93 { width: auto !important; flex: 1 1 auto; }
  .elementor-location-header .elementor-element-5991946c { display: none !important; }
  .elementor-location-header .elementor-element-7d83dfb6 img { width: 180px !important; max-width: 45vw !important; height: auto !important; }
  .elementor-location-header .elementor-element-5e8fb93 > .elementor-widget-wrap { justify-content: flex-end !important; }
  .elementor-location-header .elementor-widget-nav-menu { width: auto !important; position: relative; }
  .elementor-location-header .elementor-nav-menu--main { display: none !important; }
  .elementor-location-header .elementor-menu-toggle {
    display: flex !important; align-items: center; justify-content: center;
    width: 44px; height: 44px; padding: 10px !important;
    color: #002255 !important; background: #eef4f8; border-radius: 6px;
  }
  .elementor-location-header nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    display: block !important; position: absolute; z-index: 10001;
    max-height: 0; overflow-y: auto; overscroll-behavior: contain;
    transform: scaleY(0); transform-origin: top; opacity: 0; pointer-events: none;
    background: #fff !important; box-shadow: 0 12px 24px #00225520;
  }
  .elementor-location-header .elementor-menu-toggle.elementor-active ~ nav.elementor-nav-menu--dropdown {
    max-height: var(--menu-height, 70vh); transform: scaleY(1); opacity: 1; pointer-events: auto;
  }
  .elementor-location-header .elementor-element-cbfc4d1 nav.elementor-nav-menu--dropdown a {
    color: #002255 !important; font-size: 14px !important; line-height: 1.4 !important;
    letter-spacing: 1px !important; padding: 13px 20px !important; white-space: normal;
  }
  .elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu { background: #f0f6fa; }
  .elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu a { padding-inline-start: 32px !important; }
  .elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu ul.sub-menu a { padding-inline-start: 44px !important; }

  /* Preserve the whole family photograph instead of cropping it to a tall hero. */
  .elementor .flexslider { background: #002255; }
  .elementor .flexslider .slides > .item-slide {
    display: none !important; height: auto !important; min-height: 0 !important;
    opacity: 1 !important; transition: none !important; align-items: center;
    background: #002255;
  }
  .elementor .flexslider .slides > .item-slide:first-child,
  .elementor .flexslider .slides > .item-slide.flex-active-slide { display: flex !important; }
  .elementor .flexslider .slides:has(.flex-active-slide) > .item-slide:not(.flex-active-slide) { display: none !important; }
  .elementor .flexslider .item-slide .bgimg {
    position: relative !important; inset: auto !important; flex: 0 0 55%;
    width: 55% !important; height: auto !important; aspect-ratio: 16 / 9;
    background-size: contain !important; background-repeat: no-repeat; background-position: center !important;
  }
  .elementor .flexslider .item-slide .overlay { display: none; }
  .elementor .flexslider .flex_caption {
    position: relative !important; order: -1; width: 45% !important;
    margin: 0 !important; padding: 38px 28px !important; text-align: left;
  }
  .elementor .flexslider .flex_caption h3 {
    font-size: 11px !important; line-height: 1.5 !important; letter-spacing: 1.6px !important;
    margin: 0 0 12px !important;
  }
  .elementor .flexslider .flex_caption h1 {
    font-size: clamp(28px, 3.6vw, 44px) !important; line-height: 1.15 !important;
    letter-spacing: -.6px !important;
    margin: 0 0 22px !important;
  }
  .elementor .flexslider .flex_caption h1,
  .elementor .flexslider .flex_caption h3,
  .elementor .flexslider .flex_caption .button-group > li {
    opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important;
  }
  .elementor .flexslider .button-one { padding: 14px 22px !important; font-size: 11px !important; letter-spacing: 1.5px !important; }
  .elementor .flexslider .flex-direction-nav {
    display: block !important; visibility: visible !important; opacity: 1 !important;
    position: absolute; inset: 0; z-index: 40 !important; pointer-events: none;
  }
  .elementor .flexslider .flex-direction-nav a {
    top: auto !important; bottom: 12px !important; width: 36px !important; height: 36px !important;
    margin: 0 !important; border-radius: 50%; background: #165fa0 !important;
    color: #fff !important; opacity: 1 !important; z-index: 20 !important;
    display: flex !important; align-items: center; justify-content: center;
    pointer-events: auto;
  }
  .elementor .flexslider .flex-direction-nav a.flex-prev { left: auto !important; right: 58px !important; }
  .elementor .flexslider .flex-direction-nav a.flex-next { left: auto !important; right: 14px !important; }
  .elementor .flexslider .flex-direction-nav a i { display: none; }
  .elementor .flexslider .flex-direction-nav a::before { content: '‹'; font: 28px/1 Arial, sans-serif; }
  .elementor .flexslider .flex-direction-nav a.flex-next::before { content: '›'; }

  /* Keep decorative parallax from moving content outside narrow columns. */
  .elementor .elementor-motion-effects-element > .elementor-widget-container {
    transform: none !important; filter: none !important; opacity: 1 !important;
  }
  .elementor .elementor-motion-effects-layer { transform: none !important; }
  .elementor-location-footer .elementor-widget-image img { max-width: 180px !important; }
  .elementor-location-footer .elementor-element-18ea2626 img { max-width: 280px !important; }
  .elementor-118 .elementor-element-5eb1ef6,
  .elementor-118 .elementor-element-8ec04ca { display: none !important; }
  .elementor .elementor-widget-image:has(img[src*="Untitled-design-76.png"]) { display: none !important; }

  /* Quick links: small icons and readable text, with no overlap on the hero. */
  .elementor-118 .elementor-element.elementor-element-5fdc168 {
    margin-top: 0 !important; padding: 24px 20px !important; z-index: auto;
  }
  .elementor-118 .elementor-element-5fdc168 > .elementor-container {
    display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px;
  }
  .elementor-118 .elementor-element-5fdc168 > .elementor-container > .elementor-column { width: 100% !important; }
  .elementor-118 .elementor-element-5fdc168 > .elementor-container > .elementor-column > .elementor-widget-wrap {
    margin: 0 !important; padding: 0 !important; height: 100%; border-radius: 14px !important;
  }
  .elementor-118 .elementor-element-5fdc168 .elementor-inner-section { padding: 18px !important; margin: 0 !important; }
  .elementor-118 .elementor-element-5fdc168 .elementor-inner-section > .elementor-container {
    display: flex !important; flex-wrap: nowrap !important; align-items: center; gap: 14px;
  }
  .elementor-118 .elementor-element-5fdc168 .elementor-inner-section > .elementor-container > .elementor-column:first-child {
    width: 56px !important; flex: 0 0 56px;
  }
  .elementor-118 .elementor-element-5fdc168 .elementor-inner-section > .elementor-container > .elementor-column:last-child {
    width: auto !important; flex: 1 1 auto;
  }
  .elementor-118 .elementor-element-5fdc168 .elementor-inner-section .elementor-widget-wrap { padding: 0 !important; margin: 0 !important; }
  .elementor-118 .elementor-element-5fdc168 .elementor-widget-image { width: 56px !important; }
  .elementor-118 .elementor-element-5fdc168 .elementor-widget-image img { width: 56px !important; height: 56px !important; }
  .elementor-118 .elementor-element-5fdc168 .elementor-widget-heading { margin-bottom: 6px !important; }
  .elementor-118 .elementor-element-5fdc168 .elementor-heading-title { font-size: 13px !important; line-height: 1.4 !important; letter-spacing: 1.4px !important; text-align: left; }
  .elementor-118 .elementor-element-5fdc168 .elementor-widget-text-editor { font-size: 13px !important; line-height: 1.55 !important; }
  .elementor-118 .elementor-element-5fdc168 p { margin: 0 !important; }
  .elementor-118 .elementor-element-76581ff > .elementor-widget-wrap,
  .elementor-118 .elementor-element-76581ff .elementor-motion-effects-layer { background-image: none !important; }
  .elementor-118 .elementor-element-3232ed90 img { border-radius: 16px; }
  .elementor-118 .elementor-element-fe1cb88 { padding: 0 !important; }
  .elementor-118 .elementor-element-fe1cb88 > .elementor-container {
    display: grid !important; grid-template-columns: auto 40px minmax(140px, 1fr); gap: 14px; align-items: center;
  }
  .elementor-118 .elementor-element-fe1cb88 .elementor-column { width: auto !important; }
  .elementor-118 .elementor-element-fe1cb88 .elementor-widget-wrap,
  .elementor-118 .elementor-element-fe1cb88 .elementor-widget-container,
  .elementor-118 .elementor-element-fe1cb88 .elementor-widget-heading { padding: 0 !important; margin: 0 !important; }
  .elementor-118 .elementor-element-fe21926 .elementor-icon { font-size: 24px !important; }
  .elementor-118 .elementor-element-00804c0 .elementor-heading-title { font-size: 12px !important; line-height: 1.5 !important; letter-spacing: 0 !important; }
  .elementor-118 .elementor-element-51df395 .elementor-heading-title { font-size: 18px !important; line-height: 1.5 !important; letter-spacing: 0 !important; }

  /* Team portraits and placeholders have consistent, compact cards. */
  .elementor-1009 .elementor-element.elementor-element-40673c66,
  .elementor-1009 .elementor-element.elementor-element-2339eb9 { padding: 18px 20px !important; }
  .elementor-1009 .elementor-element-9cdbcef > .elementor-container,
  .elementor-1009 .elementor-element-79eb461 > .elementor-container {
    display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
  }
  .elementor-1009 .elementor-inner-section .elementor-col-33 { width: 100% !important; }
  .elementor-1009 .elementor-inner-section .elementor-col-33 > .elementor-widget-wrap {
    padding: 18px !important; margin: 0 !important; align-content: start;
    background: #f5f9fc; border-radius: 14px; gap: 12px;
  }
  .elementor-1009 .elementor-inner-section .elementor-col-33 .elementor-widget { margin: 0 !important; }
  .elementor-1009 .elementor-inner-section .elementor-widget-image { margin-bottom: 16px !important; text-align: center; }
  .elementor-1009 .elementor-inner-section .elementor-widget-image img {
    width: 100% !important; max-width: 240px !important; height: 240px !important; object-fit: contain !important;
  }
  .elementor-1009 .elementor-widget-image:has(img[src*="photocoming"]) img { display: none; }
  .elementor-1009 .elementor-widget-image:has(img[src*="photocoming"])::after {
    content: 'PHOTO COMING SOON'; display: grid; place-items: center;
    height: 240px; border: 1px dashed #165fa044; border-radius: 12px;
    color: #165fa0; font-size: 11px; letter-spacing: 1.4px; text-align: center;
  }
  .elementor-1009 .elementor-inner-section .elementor-widget-heading .elementor-heading-title {
    font-size: 22px !important; line-height: 1.25 !important; text-align: center;
  }
  .elementor-1009 .elementor-inner-section .elementor-widget-text-editor p { text-align: center !important; font-size: 13px !important; }
  .elementor-1009 .elementor-element-28ecb50 { display: none !important; }

  /* Contact information, social links and map stay in normal reading order. */
  .elementor-location-footer .elementor-element.elementor-element-363b064 { padding: 48px 24px 32px !important; }
  .elementor-location-footer .elementor-element-363b064 > .e-con-inner {
    display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 28px;
  }
  .elementor-location-footer .elementor-element-2597100,
  .elementor-location-footer .elementor-element-cb0521c,
  .elementor-location-footer .elementor-element-384ec32,
  .elementor-location-footer .elementor-element-3c70eba,
  .elementor-location-footer .elementor-element-a72bd03 {
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    padding: 0 !important; margin: 0 !important; border: 0 !important;
  }
  .elementor-location-footer .elementor-element-cb0521c { flex-direction: column !important; gap: 20px; }
  .elementor-location-footer .elementor-element-384ec32 { align-items: stretch; }
  .elementor-location-footer .elementor-element-384ec32 {
    --border-style: none !important; --border-right-width: 0px !important;
  }
  .elementor-location-footer .elementor-element-384ec32::before { border: 0 !important; }
  .elementor-location-footer .elementskit-infobox { display: flex; align-items: flex-start !important; overflow: visible !important; }
  .elementor-location-footer .elementskit-box-header {
    flex: 0 0 36px !important; width: 36px !important; overflow: visible !important;
    align-self: flex-start !important; margin: 0 !important; padding: 0 !important;
  }
  .elementor-location-footer .elementskit-info-box-icon {
    display: flex !important; align-items: center; justify-content: center;
    width: 28px !important; height: 28px !important; padding: 2px !important;
    line-height: 1 !important; overflow: visible !important;
  }
  .elementor-location-footer .elementskit-info-box-icon svg,
  .elementor-location-footer .elementskit-info-box-icon i { display: block; width: 24px !important; height: 24px !important; line-height: 24px !important; overflow: visible !important; }
  .elementor-location-footer .elementskit-infobox .box-body { flex: 1; min-width: 0; }
  .elementor-location-footer .elementskit-infobox .elementskit-info-box-title { font-size: 12px !important; letter-spacing: 1.2px !important; line-height: 1.5 !important; }
  .elementor-location-footer .elementskit-infobox .box-body > p { font-size: 16px !important; line-height: 1.6 !important; }
  .elementor-location-footer .elementor-element-384ec32 > .elementor-widget { width: 100% !important; }
  .elementor-location-footer .elementor-element-65e9261 .elementor-heading-title { font-size: 30px !important; line-height: 1.25 !important; }
  .elementor-location-footer .elementor-element-3c70eba { flex-direction: row !important; justify-content: flex-start; gap: 12px; }
  .elementor-location-footer .elementor-element-3c70eba > .elementor-widget { width: auto !important; }
  .elementor-location-footer .elementor-social-icon { width: 44px !important; height: 44px !important; padding: 10px !important; }
  .elementor-location-footer .elementor-social-icon svg { width: 24px; height: 24px; }
  .elementor-location-footer .elementor-element-a72bd03 { display: block !important; }
  .elementor-location-footer .elementor-element-a72bd03 iframe { display: block; width: 100% !important; height: 300px !important; border: 0; border-radius: 14px; }
  .elementor-location-footer .elementor-element-a72bd03 .elementor-custom-embed { height: auto !important; }
  .elementor-location-footer .elementor-element-2107f51 .elementor-widget-container {
    -webkit-mask-image: none !important; mask-image: none !important; border-radius: 14px; overflow: hidden;
  }
  .elementor-location-footer .elementor-element.elementor-element-2ad9d6c { padding: 48px 20px 24px !important; }
  .elementor-location-footer .elementor-element-f22198a img { width: 96px !important; }
  .elementor-location-footer .elementor-element-8e9eabe .elementor-icon-list-items { justify-content: center; flex-wrap: wrap; gap: 12px 18px; }
  .elementor-location-footer .elementor-element-8e9eabe .elementor-icon-list-item { margin: 0 !important; }
  .elementor-location-footer .elementor-element-8e9eabe .elementor-icon-list-text { font-size: 12px !important; letter-spacing: 1.2px !important; }
  .elementor-location-footer .elementor-element-3289042f { flex-direction: column !important; align-items: center; padding: 18px 20px !important; gap: 10px; }
}
@media (max-width: 1024px) {
  .elementor-section > .elementor-container { flex-wrap: wrap; }
  .elementor-section:not(.elementor-location-header section) > .elementor-container > .elementor-col-50,
  .elementor-section > .elementor-container > .elementor-col-66,
  .elementor-section > .elementor-container:has(> .elementor-col-66) > .elementor-col-33 { width: 100% !important; }
  .elementor-section > .elementor-container > .elementor-col-25 { width: 50%; }
  .elementor:not(.elementor-location-header) > .elementor-section > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 24px !important; }
}
@media (max-width: 767px) {
  .elementor-118 .elementor-element-fe1cb88 > .elementor-container { grid-template-columns: 40px minmax(0, 1fr); }
  .elementor-118 .elementor-element-9d50351 { grid-column: 1 / -1; justify-self: start; }
  .elementor-1009 .elementor-element-9cdbcef > .elementor-container,
  .elementor-1009 .elementor-element-79eb461 > .elementor-container { grid-template-columns: 1fr; }
  body.elementor-kit-49 { --e-global-typography-primary-font-size: 30px; }
  .elementor-118 .elementor-element-5fdc168 > .elementor-container { grid-template-columns: 1fr; }
  .elementor .elementor-widget-text-editor, .elementor .elementor-widget-theme-post-content { font-size: 16px !important; }
  .elementor-location-header .elementor-element-3022da3e { padding: 10px 16px !important; }
  .elementor-location-header .elementor-element-7d83dfb6 img { width: 155px !important; }
  .elementor .flexslider .slides > .item-slide { flex-direction: column; }
  .elementor .flexslider .item-slide .bgimg { width: 100% !important; flex: none; }
  .elementor .flexslider .flex_caption { order: 0; width: 100% !important; padding: 28px 22px 62px !important; }
  .elementor .flexslider .flex_caption h1 { font-size: clamp(28px, 7.5vw, 36px) !important; }
  .elementor-section > .elementor-container > .elementor-col-25 { width: 100% !important; }
  .elementor .elementor-widget-image { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor *, .elementor *::before, .elementor *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important;
  }
}
