/* jan-site — layout overrides on top of the preserved Aoraki theme CSS. */


/* Accessibility helpers (also used by legacy build). */
.jan-skip {
    position: absolute; left: 8px; top: -60px; z-index: 10000;
    background: #fff; color: #111; padding: 10px 14px;
    font: 600 14px/1.2 Montserrat, Arial, sans-serif; text-decoration: none;
}
.jan-skip:focus { top: 8px; }
.jan-sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Header: theme JS normally sets this height; keep a sane no-JS fallback. */
#header { position: relative; z-index: 9998; }
body.page #header { height: 95px; }
body.home #header, body.has-hero #header { height: 0; }

/* Hero replaces the RevSlider canvas with a plain responsive image. */
.jan-hero {
    position: relative;
    min-height: 100vh;
    background: #111;
}
.jan-hero .row,
.jan-hero .col,
.jan-hero .col-inner { min-height: 100vh; }
.jan-hero picture { display: block; width: 100%; }
.jan-hero img {
    display: block;
    width: 100%;
    height: 100vh;
    object-fit: cover;
    object-position: center top;
}
.jan-hero .down-icon {
    position: absolute;
    left: 50%;
    bottom: 30px;
    transform: translateX(-50%);
    z-index: 2;
    color: #fff;
    text-decoration: none;
    font-size: 45px;
    line-height: 1;
}
.jan-hero .down-icon:hover,
.jan-hero .down-icon:focus { color: #fff; opacity: .75; }

/* Progressive enhancement: reveal animations only when JS is active. */
html:not(.js) .w-animation { opacity: 1 !important; }

/* Contact page keeps the original two-column arrangement. */
.jan-contact a { color: inherit; }

/* Mobile side navigation: theme CSS expects these body classes. */
body.side-nav-active { overflow: hidden; }
#side-nav .social-icons-mobile { margin-top: 24px; }
@media (max-width: 1079px) {
    #side-nav { display: flex; flex-direction: column; }
    #side-menu { flex: 1 1 auto; min-height: 0; height: auto !important; }
    #side-widget-menu { flex: 0 0 auto; }
    #vertical-nav { box-sizing: border-box; padding: 0 40px; }
}

/* Larger tap targets for the mobile menu button. */
.mobile-nav-icon { cursor: pointer; }

@media (max-width: 767px) {
    .jan-hero img { height: 100vh; }
}

/* Base hardening carried over from v1. */
img { max-width: 100%; }
body { overflow-x: hidden; }
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.jan-hero .col { margin-bottom: 0 !important; }

@media (max-width: 1079px) {
    body.page:not(.has-hero) #header { height: 60px; }
}

.jan-hero.has-gallery { margin-bottom: 20px; }
