/* Static Astro behavior and responsive repairs; source appearance is retained. */
html, body { overflow-x: clip; }
html { scroll-behavior: smooth; }
body { min-width: 0; }
* { box-sizing: border-box; }
::selection { background: var(--color-accent); color: var(--color-paper); }
:focus-visible { outline: 3px solid var(--color-dark); outline-offset: 4px; }
.invert :focus-visible, .source-slider :focus-visible { outline-color: var(--color-paper); }
[hidden] { display: none !important; }
img { max-width: 100%; }
.elementor-invisible { visibility: visible !important; }
.source-slider { position: relative; overflow: hidden; width: 100%; background: var(--color-dark); }
.home-slider { height: calc(100svh - 140px); min-height: 440px; }
.industry-slider { height: 600px; }
.elementor-2725 .industry-slider { width: 100vw; margin-inline: calc(50% - 50vw); }
.source-slide { position: absolute; inset: 0; visibility: hidden; opacity: 0; transition: opacity .3s var(--ease-out); }
.source-slide.is-active { visibility: visible; opacity: 1; }
.source-slider .source-slide-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-slider .source-slide-image { top: -140px; height: calc(100% + 140px); max-width: none; }
.source-caption { position: absolute; top: 25.5%; left: 4%; width: 92%; text-align: center; }
.source-caption p { margin: 0; font-family: var(--font-display); text-transform: uppercase; }
.source-caption .slider-heading { color: var(--color-paper); font-size: clamp(30px, 4.45vw, 60px); line-height: 1.05; font-weight: 600; }
.source-slide:first-child .slider-heading { font-weight: 400; }
.source-caption .slider-subheading { color: var(--color-slider-accent); font-size: clamp(24px, 3.68vw, 50px); line-height: 1.1; font-weight: 600; margin-top: 35px; }
.slider-control { position: absolute; right: 0; z-index: 2; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 0; background: var(--color-body); color: var(--color-paper); cursor: pointer; }
.slider-next { top: 35%; }
.slider-previous { top: calc(35% + 41px); }
.slider-control:hover { background: var(--color-accent); }
.slider-control i { font-size: 18px; }
.industry-slider .slider-next { top: 50%; }
.industry-slider .slider-previous { top: 50%; left: 0; right: auto; }
.home .elementor-element-4899377 > .elementor-container, .home .elementor-element-4899377 .elementor-widget-container { width: 100%; max-width: none; margin: 0 !important; padding: 0 !important; }
.home .elementor-element-4899377 .elementor-column, .home .elementor-element-4899377 .elementor-widget-wrap { padding: 0; }
.projects-list { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.projects-list .projects-item { width: auto !important; margin: 0 !important; opacity: 1 !important; transform: none !important; visibility: visible !important; }
.projects-list .projects-item-instance { height: auto !important; }
.projects-list .inner-wrapper { opacity: 1 !important; transform: none !important; }
.projects-item .project-media { margin: 0; }
.projects-item .project-media img { width: 100%; height: auto; display: block; }
.featured-image a.wp-image { pointer-events: auto; }
.jet-sub-mega-menu { z-index: 20; }
.jet-menu-item > .jet-sub-mega-menu { visibility: hidden; pointer-events: none; }
.jet-menu-item.is-open > .jet-sub-mega-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.elementor-tab-title { cursor: pointer; }
.elementor-accordion .elementor-tab-content.is-open { display: block; }
.elementor-counter-number { font-variant-numeric: tabular-nums; }
.contact-block__text a { color: var(--color-slider-accent) !important; }
.image-viewer { width: min(95vw, 1100px); max-height: 94vh; padding: 48px 16px 16px; border: 0; background: var(--color-paper); }
.image-viewer::backdrop { background: var(--color-dark); opacity: .9; }
.image-viewer img { display: block; max-height: 80vh; max-width: 100%; width: auto; margin: auto; object-fit: contain; }
.image-viewer-close { position: absolute; top: 8px; right: 10px; padding: 6px 14px; background: var(--color-dark); color: var(--color-paper); border: 0; cursor: pointer; }
.quote-page { max-width: 1000px; margin: 0 auto; padding: 60px 24px; }
.quote-page h1 { font-size: 32px; color: var(--color-accent); }
.quote-page p { max-width: 75ch; }
#quote-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin: 35px 0; }
#quote-form label { display: grid; gap: 8px; font-weight: 600; }
#quote-form input, #quote-form textarea { width: 100%; border: 1px solid var(--color-border); border-radius: 0; padding: 14px; background: var(--color-soft); color: var(--color-ink); font: inherit; }
.quote-message { grid-column: 1 / -1; }
.quote-page .button { display: inline-block; padding: 15px 24px; border: 0; background: var(--color-accent); color: var(--color-paper); font: inherit; font-weight: 700; cursor: pointer; }
.quote-page .button:hover { background: var(--color-ink); }
.search-summary { padding: 14px 18px; margin-bottom: 24px; background: var(--color-soft); }
.search-clear { margin-left: 12px; text-decoration: underline; }
.entry-title { overflow-wrap: anywhere; }
.jet-menu a, .footer-copyright { white-space: nowrap; }
@media (min-width: 768px) {
  .jet-menu-item:hover > .jet-sub-mega-menu, .jet-menu-item:focus-within > .jet-sub-mega-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
}
@media (max-width: 767px) {
  body { padding-top: 0 !important; }
  .site-header { position: relative; margin-top: 0 !important; }
  .mobile-panel { position: relative !important; height: 60px; background: var(--color-dark); }
  .main-menu-toggle { display: block !important; position: absolute; top: 0; left: 15px; width: 44px; height: 44px; margin: 0; padding: 0; }
  .header-container { padding: 17px 15px !important; }
  .site-branding { margin: 0 auto !important; padding: 0 !important; }
  .site-link__img { width: 250px; max-width: 100%; height: auto; }
  .header-components__contact-button { display: none !important; }
  .header-container__flex-wrap { position: static !important; padding: 0 !important; margin: 0 !important; border: 0 !important; min-height: 0 !important; }
  .header-nav-wrapper { position: static !important; margin: 0 !important; padding: 0 !important; }
  #site-navigation { display: none; position: absolute !important; top: 60px; left: 0; width: min(330px, 100%); height: calc(100dvh - 60px); overflow-y: auto; margin: 0 !important; padding: 20px !important; z-index: 50; background: var(--color-dark); transform: none !important; }
  #site-navigation.is-open { display: block !important; }
  #site-navigation .jet-menu { display: flex !important; flex-direction: column; width: 100%; }
  #site-navigation .jet-menu > li { display: block; width: 100%; }
  #site-navigation .top-level-link { padding: 15px 10px; color: var(--color-paper); }
  #site-navigation .jet-sub-mega-menu { position: static; display: none; width: 100% !important; opacity: 1; visibility: visible; transform: none; padding: 0; background: var(--color-dark); }
  #site-navigation .is-open > .jet-sub-mega-menu { display: block; }
  #site-navigation .projects-list { grid-template-columns: minmax(0,1fr); }
  #site-navigation .projects-item .project-media img { max-height: 130px; object-fit: cover; }
  #site-navigation .jet-menu-roll-up { display: none !important; }
  .home-slider { height: 100svh; min-height: 430px; }
  .home-slider .source-slide-image { top: 0; height: 100%; }
  .source-caption { top: 43.4%; left: 6%; width: 88%; }
  .source-caption .slider-heading { font-size: clamp(22px, 6.2vw, 30px); font-weight: 600; line-height: 1.3; }
  .source-slide:first-child .slider-heading { font-weight: 600; }
  .source-caption .slider-subheading { font-size: clamp(12px, 4.1vw, 20px); margin-top: 58px; }
  .source-slide:nth-child(2) .slider-subheading { margin-top: 0; }
  .slider-next { top: 47.6%; }
  .slider-previous { top: calc(47.6% + 41px); }
  .industry-slider { height: 300px; }
  .projects-list { grid-template-columns: minmax(0,1fr); }
  .elementor-section .elementor-container { max-width: 100%; }
  .elementor-column { min-width: 0; }
  .breadcrumbs, .breadcrumbs__item { overflow-wrap: anywhere; }
  .breadcrumbs a { white-space: normal; }
  .quote-page { padding: 40px 20px; }
  #quote-form { grid-template-columns: minmax(0,1fr); }
  .quote-page .button { width: 100%; padding: 14px 8px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
