











        /* portrait frame: a 0.73-aspect photo should not be force-cropped to a square */











        .photo-frame { min-height: 700px; }











        .photo-frame img { object-position: center 10%; }











        @media (max-width: 800px) { .photo-frame { min-height: 500px; } }











            /* desk-nav-canonical-2026-09-20 - one header, one bar height, one active state */

















        header { background-color: var(--brand-dark); position: sticky; top: 0; z-index: 1000; box-shadow: 0 4px 12px rgba(0,0,0,0.5); border-bottom: 2px solid var(--brand-orange); min-height: 64px; }

















        .nav-container { max-width: 1200px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: center; }

















        .nav-container a { color: #fff; padding: 12px 16px; font-size: 1rem; font-weight: 700; letter-spacing: 1px; font-family: 'Roboto Condensed', 'Roboto Fallback', sans-serif; text-decoration: none; }

















        .nav-container a:hover, .nav-container a.active { color: var(--brand-orange); }























        /* --- Call button in the sticky header (added 2026-09-28) --------------





           The audit measured a 101 px sticky bar on a 390 px viewport carrying no





           way to call. Nothing is removed from the nav (the footer carries no nav





           links on this template, so hiding an item would strand it), so the call





           button joins the same wrapping rows instead of taking a row of its own:





           measured at 390x844 the bar holds its height and one of its items is now





           the phone number. A full-width button row was tried first and made the





           bar 151 px — this is the version that does not cost screen. */





        nav.nav-container a.nav-call { display: inline-flex; align-items: center; background: var(--brand-orange); color: var(--brand-dark) !important; font-weight: 700; padding: 8px 16px; border-radius: 6px; letter-spacing: 0.5px; }





        nav.nav-container a.nav-call:hover { background: #ffaa33; }





        @media (max-width: 860px) {





            nav.nav-container { gap: 6px 8px; padding: 8px 10px; }





            nav.nav-container a { font-size: 11.5px; letter-spacing: 0.3px; }





            nav.nav-container a.nav-call { padding: 8px 12px; font-size: 12.5px; letter-spacing: 0.3px; }





        }











        /* Skip link (added 2026-09-28). The audit found no skip link on any page,





           so a keyboard or screen-reader user tabbed through the six nav items on





           every page. Off-screen until focused, then it lands in the corner. */





        .skip-link { position: absolute; left: -9999px; top: 0; z-index: 2000; background: var(--brand-orange); color: var(--brand-dark); font-weight: 700; padding: 12px 18px; border-radius: 0 0 6px 0; text-decoration: none; }





        .skip-link:focus { left: 0; outline: 3px solid #ffffff; outline-offset: 2px; }











        /* Footer service-area line (added 2026-09-28). #4a4a4a on #050505 measures





           2.29:1 and axe flags two nodes; #ccc brings it in line with the footer





           text on every other page. */





        p.service-areas { color: #ccc; }





