/* =========================================================
   SELECT VISIBILITY — BASE (layout, header, footer)
   Page sections live in pages.css (scoped per page).
   ========================================================= */

/* Container + spacing that Astra used to provide. Change here in one place. */
:root{
    --sv-container:1240px;      /* Astra container incl. padding  */
    --sv-gutter:20px;           /* Astra container side padding    */
    --sv-main-space:60px;       /* space below page content        */
    --sv-header-h:100px;        /* header height (Astra: 99-100px) */
    --sv-menu-h:70px;           /* menu link height (underline sits 19px above its bottom) */
}

html{ box-sizing:border-box; }
*,*::before,*::after{ box-sizing:inherit; }

body{
    margin:0;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

img{ max-width:100%; height:auto; }

/* Zero-specificity reset: block markup never adds margins the old HTML didn't have */
:where(.sv-pg, .sv-footer, .sv-header) :where(p, h1, h2, h3, h4, h5, h6, ul, ol, figure, blockquote){ margin:0; }
/* Astra indented list items by 20px (measured on the live Home list) */
:where(.sv-pg) :where(ul, ol) > :where(li){ margin-left:20px; }
:where(.sv-pg) .wp-block-image,
:where(.sv-footer) .wp-block-image{ margin:0; }
.entry-content{ word-wrap:break-word; }

/* Inline links inside former link-cards keep the card's colour */
.sv-pg .sv-tx > a:not([class]){ color:inherit; text-decoration:none; }


/* =========================================================
   MAIN CONTAINER
   ========================================================= */

.sv-main{
    width:100%;
    max-width:var(--sv-container);
    margin:0 auto var(--sv-main-space);
    padding:0 var(--sv-gutter);
}


@media(max-width:782px){
    html,body{ width:100%; overflow-x:clip; }
    .sv-main{ max-width:none; padding-left:0; padding-right:0; }
}


/* =========================================================
   STICKY HEADER
   ========================================================= */

.sv-site-header{
    position:sticky;
    top:0;
    z-index:9999;
    background:var(--wp--preset--color--cream);
    box-shadow:0 3px 12px rgba(7,52,107,.05);
}

.admin-bar .sv-site-header{ top:32px; }

@media(max-width:782px){
    .sv-site-header{ z-index:99999; }
    .admin-bar .sv-site-header{ top:46px; }
}

.sv-header-inner{
    max-width:var(--sv-container);
    min-height:var(--sv-header-h);
    margin:0 auto;
    padding:0 var(--sv-gutter);
    display:grid;
    grid-template-columns:1fr auto 1fr;   /* logo left, menu centred (as in Astra) */
    align-items:center;
    gap:24px;
}

.sv-header-inner > .wp-block-site-logo{ grid-column:1; justify-self:start; }
.sv-header-inner > .wp-block-navigation{ grid-column:2; justify-self:center; }


/* LOGO */

.sv-header .wp-block-site-logo{ margin:0; line-height:0; }
.sv-header .wp-block-site-logo img{ width:200px; height:auto; }

.sv-header .custom-logo{
    transition:
        transform .25s ease,
        filter .25s ease !important;
}

.sv-header .custom-logo:hover,
.sv-header .custom-logo-link:hover .custom-logo{
    transform:scale(1.01) !important;
    opacity:.85;
    filter:
        drop-shadow(0 0 1px rgba(111,174,217,.95))
        drop-shadow(0 0 1px rgba(111,174,217,.75))
        drop-shadow(0 0 1px rgba(111,174,217,.45)) !important;
}


/* =========================================================
   DESKTOP MENU
   ========================================================= */

.sv-header .sv-nav{ --navigation-layout-justification-setting:center; font-family:var(--wp--preset--font-family--lora); }
.sv-header .sv-nav .wp-block-navigation__container{ gap:0; }

.sv-header .sv-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content{
    position:relative;
    display:flex;
    align-items:center;
    height:var(--sv-menu-h);
    padding:0 1em;
    color:var(--wp--preset--color--ink);
    font-size:16px;
    font-weight:400;
    text-decoration:none !important;
    border:none !important;
    box-shadow:none !important;
}

/* Underline */
.sv-header .sv-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after{
    content:"";
    position:absolute;
    left:20%;
    right:20%;
    bottom:19px;
    height:2px;
    background:var(--wp--preset--color--sky);
    border-radius:2px;
    transform:scaleX(0);
    opacity:0;
    transition:
        transform .22s ease,
        opacity .22s ease;
}

/* Hover only for inactive items */
.sv-header .sv-nav .wp-block-navigation__container > .wp-block-navigation-item:not(.current-menu-item) > .wp-block-navigation-item__content:hover::after{
    transform:scaleX(1);
    opacity:1;
}

/* Active page */
.sv-header .sv-nav .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after{
    transform:scaleX(1);
    opacity:1;
}

.sv-header .sv-nav .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content{
    color:var(--wp--preset--color--ink);
    font-weight:900;
}

/* Services arrow */
.sv-header .sv-nav .wp-block-navigation__submenu-icon{
    margin-left:-.65em;
    margin-right:.6em;
    color:var(--wp--preset--color--ink);
    width:10px;
}

/* Remove focus box on mouse click */
.sv-header a:focus:not(:focus-visible),
.sv-header button:focus:not(:focus-visible){
    outline:none !important;
    box-shadow:none !important;
}


/* SERVICES DROPDOWN */

.sv-header .sv-nav .has-child > .wp-block-navigation__submenu-container{
    left:0 !important;
    right:auto !important;
    top:100% !important;
    width:240px !important;
    min-width:185px !important;
    padding:0 !important;
    background:var(--wp--preset--color--cream) !important;
    border:0 !important;
    border-top:1px solid var(--wp--preset--color--navy) !important;
    box-shadow:0 8px 20px rgba(7,52,107,.08) !important;
}

.sv-header .sv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
    display:block;
    width:100%;
    padding:10px 14px !important;
    color:var(--wp--preset--color--navy) !important;
    background:transparent !important;
    font-size:14px !important;
    font-weight:400;
    line-height:1.65;
    text-decoration:none !important;
    border-bottom:none !important;
    box-shadow:none !important;
    transition:
        background .2s ease,
        color .2s ease !important;
}

.sv-header .sv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{
    color:#01204A !important;
    background:rgba(7,52,107,.08) !important;
}

.sv-header .sv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before,
.sv-header .sv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after{
    display:none !important;
    content:none !important;
}

.sv-header .sv-nav .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content{
    color:#01204A !important;
    background:rgba(7,52,107,.06) !important;
}


/* =========================================================
   MOBILE MENU (hamburger from 921px down, like Astra)
   ========================================================= */

@media(min-width:600px) and (max-width:921px){
    .sv-header .sv-nav .wp-block-navigation__responsive-container-open:not(.always-shown){ display:flex; }
    .sv-header .sv-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){ display:none; }
}

.sv-header .sv-nav .wp-block-navigation__responsive-container-open,
.sv-header .sv-nav .wp-block-navigation__responsive-container-close{
    color:var(--wp--preset--color--navy);
}

.sv-header .sv-nav .wp-block-navigation__responsive-container-open svg{ width:26px; height:26px; }

.sv-header .sv-nav .wp-block-navigation__responsive-container.is-menu-open{
    background:var(--wp--preset--color--cream) !important;
    color:var(--wp--preset--color--navy) !important;
    padding:20px 0 !important;
    width:100% !important;
    max-width:100% !important;
}

.sv-header .sv-nav .is-menu-open .wp-block-navigation__responsive-close{ max-width:none; }
.sv-header .sv-nav .is-menu-open .wp-block-navigation__responsive-container-close{ right:20px; top:6px; }

.sv-header .sv-nav .is-menu-open .wp-block-navigation__responsive-container-content{
    padding-top:48px !important;
    align-items:stretch !important;
}

.sv-header .sv-nav .is-menu-open .wp-block-navigation__container{
    width:100%;
    align-items:stretch !important;
    gap:0 !important;
}

.sv-header .sv-nav .is-menu-open .wp-block-navigation-item{ width:100%; align-items:stretch !important; }

/* No desktop underline inside the drawer */
.sv-header .sv-nav .is-menu-open .wp-block-navigation-item__content::before,
.sv-header .sv-nav .is-menu-open .wp-block-navigation-item__content::after{
    display:none !important;
    content:none !important;
}

/* Main items */
.sv-header .sv-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content{
    position:relative;
    display:block !important;
    width:100%;
    height:auto !important;
    padding:16px 24px !important;
    color:var(--wp--preset--color--navy) !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    font-size:18px !important;
    font-weight:500 !important;
    line-height:1.4 !important;
    text-decoration:none !important;
}

/* Active page */
.sv-header .sv-nav .is-menu-open .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content{
    background:rgba(111,174,217,.10) !important;
    font-weight:700 !important;
}

/* Services submenu */
.sv-header .sv-nav .is-menu-open .wp-block-navigation__submenu-container{
    position:static !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 0 10px 18px !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    gap:0 !important;
}

.sv-header .sv-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
    padding:11px 24px !important;
    color:rgba(7,52,107,.80) !important;
    background:transparent !important;
    font-size:15px !important;
    font-weight:400 !important;
    line-height:1.45 !important;
}

.sv-header .sv-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{
    color:var(--wp--preset--color--navy) !important;
    background:rgba(111,174,217,.08) !important;
}


/* =========================================================
   FOOTER
   ========================================================= */

.sv-footer{
    width:100%;
    padding:48px 42px 20px;
    background:#000;
    color:var(--wp--preset--color--cream);
    text-align:left;
}

.sv-footer-inner{ max-width:1100px; margin:0 auto; }

.sv-footer-grid{
    display:grid;
    grid-template-columns:48% 20% 32%;
    align-items:start;
}

.sv-footer-brand{ padding:0 70px 30px 0; }
.sv-footer-sitemap{ padding:2px 45px 30px 0; }
.sv-footer-contact{ padding:2px 0 30px 0; }

.sv-footer .sv-footer-logo{ margin:0 0 17px; line-height:0; }
.sv-footer .sv-footer-logo img{ display:block; width:175px; max-width:100%; height:auto; }

.sv-footer .sv-footer-about{
    max-width:440px;
    color:var(--wp--preset--color--gray);
    font-size:13px;
    font-weight:500;
    line-height:1.7;
}

.sv-footer .sv-footer-title{
    margin:0 0 16px;
    color:var(--wp--preset--color--cream);
    font-size:13px;
    font-weight:bold;
    line-height:1.65;
    letter-spacing:1.3px;
    text-transform:uppercase;
}

.sv-footer .sv-footer-links{ font-size:13px; line-height:1.95; }

.sv-footer-link,
.sv-footer-link:visited{
    color:var(--wp--preset--color--gray) !important;
    font-weight:500 !important;
    text-decoration:none !important;
    transition:color .22s ease !important;
}

.sv-footer-link:hover,
.sv-footer-link:focus{ color:var(--wp--preset--color--cream) !important; }

.sv-footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding-top:18px;
    border-top:1px solid rgba(240,236,223,.16);
    color:var(--wp--preset--color--gray);
    font-size:12px;
    font-weight:500;
}

.sv-footer .sv-footer-legal{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:nowrap;
    white-space:nowrap;
    color:var(--wp--preset--color--gray);
    font-size:12px;
    font-weight:500;
}

.sv-footer .sv-footer-tagline{ color:var(--wp--preset--color--gray); font-size:12px; font-weight:500; }

@media(max-width:782px){

    .sv-footer-grid{
        grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);   /* more room so the e-mail never pushes the page sideways */
        column-gap:36px;
        row-gap:38px;
    }

    .sv-footer-brand{ grid-column:1 / -1; padding:0; }
    .sv-footer-sitemap{ grid-column:1; padding:0; }
    .sv-footer-contact{ grid-column:2; padding:0; }

    .sv-footer-contact a{ position:relative; left:-18px; }
    .sv-footer-contact a[href^="mailto:"]{ white-space:nowrap; }

    .sv-footer-bottom{
        flex-direction:column;
        align-items:flex-start;
        gap:14px;
        width:100%;
        margin-top:42px;
        padding-top:22px;
        text-align:left;
    }

    .sv-footer .sv-footer-legal{ width:100%; gap:5px; font-size:10.5px; }
}

@media(max-width:360px){
    .sv-footer-grid{ column-gap:20px; }
}

/* Safety net: nothing may ever create a horizontal scroll on phones */
@media(max-width:782px){
    .wp-site-blocks{ overflow-x:clip; }
}


/* =========================================================
   BLOG / 404 (no Astra equivalent — kept in the same style)
   ========================================================= */

.sv-article{ max-width:1180px; margin:0 auto; padding:65px 30px 40px; font-family:Arial,Helvetica,sans-serif; }
.sv-article .sv-article-title{ margin:0 0 17px; color:var(--wp--preset--color--navy); font-size:clamp(36px,4vw,58px); font-weight:700; line-height:.98; letter-spacing:-3.3px; }
.sv-article .sv-article-date{ margin-bottom:30px; color:rgba(7,52,107,.65); font-size:14px; }
.sv-article .wp-block-post-content{ font-size:17px; line-height:1.75; }
.sv-article .wp-block-post-content > * + *{ margin-top:1.1em; }
.sv-article .sv-post-list{ list-style:none; padding:0; margin:30px 0 0; }
.sv-article .sv-post-list > li{ padding:26px 0; border-top:1px solid rgba(7,52,107,.14); }
.sv-article .sv-post-list-title{ font-size:26px; font-weight:800; letter-spacing:-1px; margin:0 0 8px; }
.sv-404-buttons{ margin-top:30px; }
.sv-404-btn > .wp-block-button__link{ min-height:55px; padding:0 25px; display:inline-flex; align-items:center; background:var(--wp--preset--color--green); color:#fff; font-size:14px; font-weight:700; }


/* Mobile/tablet: logo left, hamburger right */
@media(max-width:921px){
    .sv-header-inner{ grid-template-columns:1fr auto; min-height:80px; }
    .sv-header-inner > .wp-block-navigation{ grid-column:2; justify-self:end; }
}


/* =========================================================
   TYPOGRAPHY — headings in Lato on every page (as on Home),
   body/menu/footer in Lora. Italic accent words keep Georgia.
   ========================================================= */
.sv-pg.sv-pg.sv-pg :is(h1, h2, h3, h4, h5, h6){
    font-family:var(--wp--preset--font-family--lato);
}
.sv-pg-contact.sv-pg-contact.sv-pg-contact .sva-form-card .sva-form-title{
    font-family:var(--wp--preset--font-family--lora);
}


/* =========================================================
   iPHONE (Safari / Chrome on iOS) — no sideways scrolling
   - grid/flex children may shrink (Safari otherwise sizes
     some mock-ups by their content and widens the page)
   - content and footer are clipped horizontally; the header
     is left alone so it stays sticky
   ========================================================= */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }

@media(max-width:921px){
    .sv-pg :is(div, section, article, figure){ min-width:0; }
    .sv-pg .wp-block-html > *,
    .sv-pg [class*="-browser"],
    .sv-pg [class*="-gsc-"],
    .sv-pg [class*="-card"]{ max-width:100%; }

    .sv-main,
    .sv-site-footer{ overflow-x:hidden; }               /* older iOS (< 16) */
    @supports (overflow:clip){
        .sv-main,
        .sv-site-footer{ overflow-x:clip; }
    }
}

/* Never let an auto-embed appear inside a section */
.sv-pg .wp-embedded-content{ display:none !important; }


/* =========================================================
   SCROLL REVEAL (driven by assets/js/site.js)
   Change the feel here: distance, duration, easing.
   ========================================================= */
:root{
    --sv-reveal-distance:28px;
    --sv-reveal-duration:.8s;
    --sv-reveal-ease:cubic-bezier(.22,.61,.36,1);
}

@media(max-width:782px){
    :root{
        --sv-reveal-distance:18px;
        --sv-reveal-duration:.65s;
    }
}

.sv-reveal{
    opacity:0;
    translate:0 var(--sv-reveal-distance);
}

.sv-reveal.sv-reveal-in{
    animation:sv-reveal-up var(--sv-reveal-duration) var(--sv-reveal-ease) both;
}

@keyframes sv-reveal-up{
    from{ opacity:0; translate:0 var(--sv-reveal-distance); }
    to{ opacity:1; translate:0 0; }
}

@media (prefers-reduced-motion: reduce){
    .sv-reveal{ opacity:1; translate:none; animation:none !important; }
}
