*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Georgia,"Times New Roman",serif;color:#202020}body{background:#fff} :root{--header:clamp(115px,15.2vh,176px);--blue:#4db1d0} .site-header{height:var(--header);position:relative;z-index:30;background:#fdfdfb}.brand{position:absolute;top:0;left:50%;transform:translateX(-50%);height:calc(var(--header) - 32px);width:clamp(160px,17vw,265px);display:flex;align-items:center;justify-content:center}.brand img{width:100%;height:100%;object-fit:contain}.header-rule{position:absolute;left:4.2%;right:3.6%;bottom:0;height:1.5px;background:var(--blue)}.menu-toggle{position:absolute;left:3.4%;top:25%;width:28px;height:48px;display:flex;align-items:center;flex-direction:column;gap:11px;padding:0;background:none;border:0;cursor:pointer;z-index:35;transform-origin:50% 37px;transition:transform .85s cubic-bezier(.22,1,.36,1)}.menu-toggle i{display:block;width:8px;height:8px;border-radius:50%;background:#080808;flex:0 0 8px}.menu-toggle[aria-expanded=true]{transform:rotate(90deg)}.menu-panel{position:fixed;z-index:50;top:var(--header);left:50%;width:min(370px,90vw);padding:20px;background:rgba(255,255,255,.96);display:flex;flex-direction:column;text-align:center;opacity:0;visibility:hidden;transform:translate(-50%,-12px);transition:opacity .32s ease,transform .45s cubic-bezier(.22,1,.36,1),visibility .32s;box-shadow:0 8px 25px #00000010}.menu-panel.open{opacity:1;visibility:visible;transform:translate(-50%,0)}.menu-panel a{padding:9px 4px;text-decoration:none;color:#111;font:19px/1.3 "Arial Narrow",Arial,sans-serif}.menu-panel a:hover{color:#007db8}.scrim{position:fixed;inset:0;z-index:25;background:transparent;border:0;display:none}.scrim.open{display:block}.landing-hero{height:calc(100dvh - var(--header));min-height:350px;background:linear-gradient(#ffffff35,#ffffff35),url("assets/ocean-background.jpg") center center / cover no-repeat}.content-section{min-height:calc(100dvh - var(--header));padding:clamp(30px,4vw,70px) 3%;display:grid;grid-template-columns:26% 25% 1fr;gap:2.5%;align-items:start}.section-headline{font:400 clamp(24px,2.15vw,38px)/1.4 "Arial Narrow",Arial,sans-serif;color:#2468a9;text-transform:uppercase;letter-spacing:-.3px;padding-top:12px;align-self:center}.section-copy{font-size:clamp(11px,.78vw,15px);line-height:1.55}.intro-copy{margin:0 0 18px}.eyebrow{font:400 clamp(13px,1vw,18px)/1.3 "Arial Narrow",Arial,sans-serif;color:#2468a9;margin:14px 0 12px}.feature{margin-bottom:10px}.feature h3{font-weight:700;font-size:1em;margin:0 0 3px}.feature p{margin:0}.section-visual{margin:0;width:100%;height:calc(100dvh - var(--header) - 90px);min-height:380px;overflow:hidden}.section-visual img{width:100%;height:100%;display:block;object-fit:cover}.intro{position:fixed;inset:0;z-index:100;background:#000;opacity:1;transition:opacity .3s ease}.intro.fade{opacity:0;pointer-events:none}.intro video{height:100%;width:100%;object-fit:cover}.intro button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:12px 20px;border:0}.intro button[hidden]{display:none}body.page-leave main,body.page-leave .site-header{opacity:0;transition:opacity .18s ease}body.page-enter main,body.page-enter .site-header{animation:enter .28s ease both}@keyframes enter{from{opacity:.25}to{opacity:1}}@media(max-width:950px){:root{--header:125px}.content-section{grid-template-columns:1fr 1fr;gap:20px;padding:30px 5%}.section-headline{grid-column:1/-1}.section-visual{height:52vh;min-height:300px}.section-copy{font-size:13px}}@media(max-width:650px){:root{--header:105px}.brand{width:155px;height:82px}.menu-toggle{left:5%;top:26%;gap:8px}.menu-toggle i{width:7px;height:7px;flex-basis:7px}.landing-hero{min-height:calc(100dvh - var(--header))}.content-section{display:flex;flex-direction:column;padding:26px 6%;gap:18px}.section-headline{font-size:27px;padding:0}.section-copy{font-size:13px}.section-visual{height:50vh;min-height:260px}.menu-panel{max-height:calc(100dvh - var(--header) - 10px);overflow:auto}.menu-panel a{font-size:17px;padding:7px 3px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Footer recreated from supplied reference; shared by every content page */
.site-footer{background:#009bd4;color:#fff;border-top:5px solid #007db8;padding:13px 4.4% 12px;font-size:12px;line-height:1.35}
.footer-grid{display:grid;grid-template-columns:1.15fr 1.2fr .72fr .72fr;gap:32px;max-width:1440px;margin:0 auto}
.footer-col h2{font:500 12px/1.3 Arial,sans-serif;margin:0 0 10px}
.footer-col h3{font:700 12px/1.3 Georgia,"Times New Roman",serif;margin:9px 0 3px}
.footer-col p{font:12px/1.3 Georgia,"Times New Roman",serif;margin:0 0 4px}
.footer-col a{color:#fff;text-decoration:none;overflow-wrap:anywhere}
.footer-col a:hover{text-decoration:underline}
.footer-col:not(.footer-brand)>a:not(.social-link){display:block;margin:0 0 5px}
.social-link{display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:50%;width:28px;height:28px;font:bold 17px Arial,sans-serif}
.copyright{max-width:1440px;margin:13px auto 0;border:0;padding:0;font:11px/1.3 Georgia,"Times New Roman",serif}
@media(max-width:650px){.footer-grid{grid-template-columns:1fr 1fr;gap:22px 16px}.site-footer{padding:18px 6% 14px}.footer-col h2{font-size:11px}.footer-col h3,.footer-col p{font-size:11px}.copyright{margin-top:18px}}

/* Footer based on the supplied Rosemount footer reference: content uses the left 50%, split into four columns. */
.site-footer{width:100%;min-height:245px;background:#079bd4;color:#fff;border-top:5px solid #087db4;display:grid;grid-template-columns:50% 50%;padding:14px 0 12px;font-family:Georgia,"Times New Roman",serif;font-size:12px;line-height:1.35}
.footer-grid{grid-column:1;display:grid;grid-template-columns:1.45fr 1.65fr .9fr .55fr;gap:18px;padding:0 20px 0 clamp(24px,4.4vw,90px);align-content:start}
.footer-col h2{font-family:Arial,sans-serif;font-size:12px;font-weight:500;margin:0 0 9px;line-height:1.2}
.footer-col h3{font-size:12px;font-weight:bold;margin:8px 0 2px}
.footer-col p{font-size:12px;margin:0 0 3px;overflow-wrap:anywhere}
.footer-col a{color:#fff;text-decoration:none}
.footer-col a:hover{text-decoration:underline}
.footer-col:not(.footer-brand)>a:not(.social-link){display:block;margin:0 0 5px}
.footer-brand .copyright{margin-top:16px;font-size:10px;white-space:nowrap}
.site-footer .copyright{border:0;padding:0}
.social-link{display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:50%;width:29px;height:29px;font:bold 16px Arial}
.footer-empty{grid-column:2}
@media(max-width:1000px){.site-footer{grid-template-columns:1fr;padding:18px 0}.footer-grid{grid-column:1;width:100%;grid-template-columns:repeat(4,minmax(0,1fr));padding:0 5%;gap:14px}.footer-empty{display:none}}
@media(max-width:620px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}.footer-brand .copyright{white-space:normal}.footer-col h2{font-size:11px}.footer-col h3,.footer-col p{font-size:11px}}

/* Reference-driven menu and typography updates (Adobe Fonts markup, page 1). */
@font-face{font-family:"Source Serif Pro";src:local("Source Serif Pro");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Source Serif Pro";src:local("Source Serif Pro SemiBold"),local("Source Serif Pro");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:local("Source Sans Pro"),local("Source Sans");font-style:normal;font-weight:400;font-display:swap}
:root{--blue:#009ade;--heading-blue:#0047ba}
body{font-family:"Source Serif Pro",Georgia,serif}
.section-copy{font-family:"Source Serif Pro",Georgia,serif}
.section-headline{font-family:"Source Sans Pro","Arial Narrow",Arial,sans-serif;color:var(--heading-blue)}
.eyebrow,.feature h3{font-family:"Source Serif Pro",Georgia,serif}
.menu-toggle{width:50px;height:230px;gap:22px;top:18px;left:3.4%;align-items:center;transform-origin:50% 208px}
.menu-toggle i{width:50px;height:50px;flex:0 0 50px;border-radius:50%;background:#000}
.menu-toggle[aria-expanded=true]{transform:rotate(90deg)}
.menu-panel{top:calc(var(--header) + 100px);left:50%;width:min(740px,calc(100vw - 28px));max-height:calc(100dvh - var(--header) - 115px);overflow:auto;padding:36px 24px;background:rgba(255,255,255,.97);border-radius:0;box-shadow:none;transform:translate(-50%,-10px);transform-origin:top center}
.menu-panel.open{transform:translate(-50%,0)}
.menu-panel a{font-family:"Source Sans Pro","Arial Narrow",Arial,sans-serif;font-size:clamp(20px,2.35vw,36px);font-weight:400;line-height:1.28;padding:12px 4px;border-radius:0}
@media(max-width:650px){.menu-toggle{width:22px;height:116px;gap:11px;top:12px;left:4%;transform-origin:50% 105px}.menu-toggle i{width:22px;height:22px;flex-basis:22px}.menu-panel{top:calc(var(--header) + 100px);width:calc(100vw - 28px);padding:18px 14px;max-height:calc(100dvh - var(--header) - 110px)}.menu-panel a{font-size:clamp(17px,4.8vw,24px);padding:8px 3px}}

/* Final menu-dot sizing override: 25px dots with balanced spacing. */
.menu-toggle{width:25px;height:120px;gap:14px;top:22px;left:3.4%;transform-origin:50% 108px}
.menu-toggle i{width:25px;height:25px;flex:0 0 25px;border-radius:50%}
.menu-toggle[aria-expanded=true]{transform:rotate(90deg)}
@media(max-width:650px){
  .menu-toggle{width:25px;height:80px;gap:8px;top:16px;left:4%;transform-origin:50% 74px}
  .menu-toggle i{width:25px;height:25px;flex:0 0 25px}
}

/* Requested final refinements: 15px menu dots and full-viewport home artwork behind header. */
.menu-toggle{width:15px;height:70px;gap:10px;top:22px;left:3.4%;transform-origin:50% 65px}
.menu-toggle i{width:15px;height:15px;flex:0 0 15px;border-radius:50%}
.menu-toggle[aria-expanded=true]{transform:rotate(90deg)}
/* On the home page, extend the ocean/sky artwork behind the header to eliminate the top white band. */
body:has(#intro) .site-header{position:absolute;top:0;left:0;right:0;width:100%;background:transparent}
body:has(#intro) .landing-hero{height:100dvh;min-height:100dvh;margin-top:0;background:linear-gradient(#ffffff20,#ffffff20),url("assets/ocean-background.jpg") center center / cover no-repeat}
body:has(#intro) .header-rule{left:4.2%;right:3.6%}
@media(max-width:650px){
 .menu-toggle{width:15px;height:48px;gap:7px;top:18px;left:4%;transform-origin:50% 44px}
 .menu-toggle i{width:15px;height:15px;flex:0 0 15px}
 body:has(#intro) .landing-hero{height:100dvh;min-height:100dvh}
}

/* Brand and typography refinement requested on 10 Oct 2026. */
.brand img{object-fit:contain;width:100%;height:100%}
/* Keep the ocean image as a true full-viewport background, including behind the header. */
body:has(#intro) .site-header{position:absolute;inset:0 0 auto 0;height:var(--header);background:transparent}
body:has(#intro) .landing-hero{height:100dvh;min-height:100dvh;margin:0;background-image:linear-gradient(rgba(255,255,255,.18),rgba(255,255,255,.18)),url("assets/ocean-background.jpg");background-position:center center;background-size:cover;background-repeat:no-repeat}
body:has(#intro) .header-rule{bottom:0}
/* Source Sans Regular for all requested section labels and navigation. */
.menu-panel a,
.eyebrow,
.feature h3{font-family:"Source Sans Pro","Source Sans",Arial,sans-serif;font-style:normal;font-weight:400}
.menu-panel a{font-size:clamp(20px,2.2vw,34px)}
@media(max-width:650px){
 body:has(#intro) .landing-hero{height:100dvh;min-height:100dvh;background-position:center center}
}

/* FINAL LANDING-PAGE REFERENCE FIX:
   Ocean/sky art is the full-viewport background; header sits over it with no white band.
   Center the 15px dots on the red-line reference position (about 8.4vw from the left). */
body:has(#intro){min-height:100dvh;overflow-x:hidden;background:#e8edf0}
body:has(#intro) main{position:relative;min-height:100dvh;z-index:1}
body:has(#intro) .landing-hero{
  position:fixed;inset:0;z-index:0;
  width:100vw;height:100dvh;min-height:100dvh;margin:0;
  background-image:url("assets/ocean-background.jpg");
  background-position:center center;background-size:cover;background-repeat:no-repeat;
}
body:has(#intro) .site-header{
  position:absolute;top:0;left:0;right:0;width:100%;height:var(--header);
  z-index:30;background:transparent;
}
body:has(#intro) .brand{top:0}
body:has(#intro) .header-rule{left:4.2%;right:3.6%;bottom:0}
body:has(#intro) .menu-toggle{
  left:calc(8.4vw - 7.5px);top:22px;
  width:15px;height:70px;gap:10px;transform-origin:50% 65px;
}
body:has(#intro) .menu-toggle i{width:15px;height:15px;flex:0 0 15px}
body:has(#intro) .menu-toggle[aria-expanded="true"]{transform:rotate(90deg)}
@media(max-width:650px){
 body:has(#intro) .landing-hero{position:fixed;inset:0;width:100vw;height:100dvh;min-height:100dvh;background-position:center center}
 body:has(#intro) .menu-toggle{left:calc(8.4vw - 7.5px);top:18px;width:15px;height:48px;gap:7px;transform-origin:50% 44px}
 body:has(#intro) .menu-toggle i{width:15px;height:15px;flex:0 0 15px}
}

/* Definitive home background fix: keep the home-page class after the intro video is removed.
   The ocean image is painted on BODY itself, behind logo, menu and divider. */
html,body{min-height:100%;margin:0}
body.home-page{
  min-height:100vh;
  min-height:100dvh;
  background-color:#dbe3e8 !important;
  background-image:url("assets/ocean-background.jpg") !important;
  background-position:center center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-attachment:fixed !important;
}
body.home-page .site-header{
  position:absolute !important;
  top:0 !important;left:0 !important;right:0 !important;
  width:100% !important;
  height:var(--header) !important;
  background:transparent !important;
  z-index:30 !important;
}
body.home-page main{
  position:relative;
  z-index:1;
  min-height:100vh;
  min-height:100dvh;
  background:transparent !important;
}
body.home-page .landing-hero{
  position:relative !important;
  inset:auto !important;
  width:100% !important;
  height:100vh !important;
  height:100dvh !important;
  min-height:100vh !important;
  min-height:100dvh !important;
  margin:0 !important;
  background:transparent !important;
}
body.home-page .header-rule{bottom:0 !important}
@media(max-width:650px){
 body.home-page{background-position:center center !important}
 body.home-page .landing-hero{height:100vh !important;height:100dvh !important}
}

/* Final alignment: center the three-dot stack vertically with the logo mark. */
body.home-page .menu-toggle{
  top:calc((var(--header) - 32px - 65px)/2) !important;
  left:calc(8.4vw - 7.5px) !important;
  height:65px !important;
  gap:10px !important;
  transform-origin:50% 52.5px !important;
}
body.home-page .menu-toggle i{
  width:15px !important;height:15px !important;flex:0 0 15px !important;
}
body.home-page .menu-toggle[aria-expanded="true"]{transform:rotate(90deg) !important}
@media(max-width:650px){
  body.home-page .menu-toggle{
    top:calc((var(--header) - 32px - 59px)/2) !important;
    left:calc(8.4vw - 7.5px) !important;
    height:59px !important;gap:7px !important;
    transform-origin:50% 44.5px !important;
  }
}

/* Requested typography: named value headings use Source Serif Pro SemiBold. */
@font-face{
  font-family:"Source Serif Pro";
  src:local("Source Serif Pro SemiBold"),local("Source Serif Pro");
  font-style:normal;font-weight:600;font-display:swap;
}
.feature h3,
.eyebrow,
.value-heading,
h2.value-heading,
h3.value-heading{
  font-family:"Source Serif Pro","Source Serif Pro SemiBold",Georgia,serif !important;
  font-weight:600 !important;
}
/* Home: soft 40% white overlay on the ocean photo; header/logo/rule/dots remain above it. */
body.home-page{
  background-image:
    linear-gradient(rgba(255,255,255,.40),rgba(255,255,255,.40)),
    url("assets/ocean-background.jpg") !important;
  background-size:cover,cover !important;
  background-position:center center,center center !important;
  background-repeat:no-repeat,no-repeat !important;
}
body.home-page .site-header{z-index:30 !important;background:transparent !important}
body.home-page .brand,
body.home-page .menu-toggle,
body.home-page .header-rule{z-index:35 !important}

/* Landing header: preserve the shared header geometry used by about.html and every content page. */
body.home-page .site-header{
  position:absolute !important;
  top:0 !important;left:0 !important;right:0 !important;
  width:100% !important;height:var(--header) !important;
  background:transparent !important;z-index:30 !important;
}
body.home-page .brand{
  top:0 !important;left:50% !important;
  transform:translateX(-50%) !important;
  height:calc(var(--header) - 32px) !important;
  width:clamp(160px,17vw,265px) !important;
}
body.home-page .header-rule{
  left:4.2% !important;right:3.6% !important;bottom:0 !important;
  height:1.5px !important;
}
/* Deliberately identical to the shared .menu-toggle rule; no home-only x/y offset. */
body.home-page .menu-toggle{
  top:22px !important;left:3.4% !important;
  width:15px !important;height:70px !important;gap:10px !important;
  transform-origin:50% 65px !important;
}
body.home-page .menu-toggle i{
  width:15px !important;height:15px !important;flex:0 0 15px !important;
}
body.home-page .menu-toggle[aria-expanded="true"]{transform:rotate(90deg) !important}
@media(max-width:650px){
  body.home-page .brand{width:155px !important;height:82px !important}
  body.home-page .menu-toggle{
    top:16px !important;left:4% !important;
    width:15px !important;height:48px !important;gap:7px !important;
    transform-origin:50% 44px !important;
  }
}


/* Cross-browser typography: load consistent web fonts rather than relying on local Arial variants. */
html, body, .site-footer { font-family: "Source Serif 4", Georgia, serif !important; }
.section-headline, .menu-panel a, .eyebrow, .footer-col h2 { font-family: "Source Sans 3", Arial, sans-serif !important; }
.feature h3, .value-heading, h2.value-heading, h3.value-heading { font-family: "Source Serif 4", Georgia, serif !important; font-weight: 600 !important; }

/* Shared header geometry: divider starts at the dot stack's centre and ends at the image/content right edge. */
.header-rule { left: 4.2% !important; right: 3% !important; }
.menu-toggle { left: calc(4.2% - 6.5px) !important; width: 13px !important; height: 55px !important; gap: 8px !important; top: 18px !important; transform-origin: 50% 47px !important; }
.menu-toggle i { width: 13px !important; height: 13px !important; flex: 0 0 13px !important; }
.menu-toggle[aria-expanded="true"] { transform: rotate(90deg) !important; }
body.home-page .menu-toggle { left: calc(4.2% - 6.5px) !important; top: 18px !important; width: 13px !important; height: 55px !important; gap: 8px !important; transform-origin: 50% 47px !important; }
body.home-page .menu-toggle i { width: 13px !important; height: 13px !important; flex: 0 0 13px !important; }
body.home-page .header-rule { left: 4.2% !important; right: 3% !important; }

/* Only the first-column headline is lowered; copy and image keep their original positions. */
.content-section { padding-top: clamp(30px,4vw,70px) !important; }
.section-headline { align-self: start !important; padding-top: 0 !important; margin-top: 200px !important; margin-left: calc(4.2% - 3%) !important; }
@media (max-width: 950px) { .section-headline { margin-top: 200px !important; } }
@media (max-width: 650px) {
  .menu-toggle, body.home-page .menu-toggle { left: calc(4.2% - 6.5px) !important; top: 14px !important; width: 13px !important; height: 47px !important; gap: 4px !important; transform-origin: 50% 39px !important; }
  .menu-toggle i, body.home-page .menu-toggle i { width: 13px !important; height: 13px !important; flex: 0 0 13px !important; }
  .header-rule, body.home-page .header-rule { left: 4.2% !important; right: 3% !important; }
}
.intro iframe, .intro video { display:block; width:100%; height:100%; border:0; object-fit:cover; }
#localIntroVideo { display:block; }

/* Final precision pass: shared header axis, breakpoint-specific headline spacing, footer rule. */
.header-rule,
body.home-page .header-rule { left: 4.2% !important; right: 3% !important; }
.menu-toggle,
body.home-page .menu-toggle {
  left: calc(4.2% - 6.5px) !important;
  width: 13px !important; height: 55px !important; gap: 8px !important;
  top: 18px !important; transform-origin: 50% 47px !important;
}
.menu-toggle i,
body.home-page .menu-toggle i { width: 13px !important; height: 13px !important; flex: 0 0 13px !important; }
/* The dot-stack centre and divider start share the exact same x-coordinate. */
.section-headline { margin-left: calc(4.2% - 3%) !important; }
@media (min-width: 951px) {
  .section-headline { margin-top: 200px !important; }
}
@media (max-width: 950px) {
  .section-headline { margin-top: 24px !important; }
}
@media (max-width: 650px) {
  .menu-toggle, body.home-page .menu-toggle { left: calc(4.2% - 6.5px) !important; top: 14px !important; width: 13px !important; height: 47px !important; gap: 4px !important; transform-origin: 50% 39px !important; }
  .menu-toggle i, body.home-page .menu-toggle i { width: 13px !important; height: 13px !important; flex: 0 0 13px !important; }
  .header-rule, body.home-page .header-rule { left: 4.2% !important; right: 3% !important; }
  .section-headline { margin-top: 18px !important; margin-left: 0 !important; }
}
.site-footer { border-top: 2px solid #087db4 !important; padding-top: 5px !important; }
@media (max-width: 1000px) { .site-footer { padding-top: 5px !important; } }

/* Final alignment lock: one shared vertical guide for dots, divider, headline and footer content. */
:root { --rose-align-x: 4.2%; }
.header-rule,
body.home-page .header-rule { left: var(--rose-align-x) !important; right: 3% !important; }
.menu-toggle,
body.home-page .menu-toggle { left: calc(var(--rose-align-x) - 6.5px) !important; }
.section-headline { margin-left: 0 !important; }
.content-section { padding-left: var(--rose-align-x) !important; }
@media (max-width: 950px) {
  .content-section { padding-left: var(--rose-align-x) !important; }
  .section-headline { margin-left: 0 !important; }
}
@media (max-width: 650px) {
  .content-section { padding-left: var(--rose-align-x) !important; padding-right: 6% !important; }
  .section-headline { margin-left: 0 !important; }
}
/* Reference footer rule: #0047BA, 2px high, with a 10px gap before the footer band. */
.site-footer { border-top: 2px solid #0047ba !important; margin-top: 10px !important; padding-top: 5px !important; }


/* Latest refinement: separated footer rule, precise footer alignment, column and dissolve. */
.content-section { grid-template-columns: 26% 21.25% minmax(0,1fr) !important; }
.site-footer { position:relative !important; border-top:0 !important; margin-top:22px !important; padding-top:14px !important; }
.site-footer::before { content:""; position:absolute; left:0; right:0; top:-22px; height:2px; background:#0047BA; }
.footer-grid { padding-left:var(--rose-align-x, 4.2vw) !important; }
.footer-col h2 { font-family:"Source Serif Pro","Source Serif 4",Georgia,serif !important; font-weight:600 !important; }
.intro { transition:opacity 1.15s cubic-bezier(.4,0,.2,1) !important; }
.intro.fade { opacity:0 !important; }
@media (max-width:950px) { .content-section { grid-template-columns:1fr 1fr !important; } }
@media (max-width:650px) { .content-section { grid-template-columns:1fr !important; } .site-footer { margin-top:22px !important; } }


/* Requested footer rule: keep it inside the blue footer band, 20px below its top edge. */
.site-footer { position:relative !important; margin-top:0 !important; border-top:0 !important; padding-top:36px !important; }
.site-footer::before { content:""; position:absolute; left:0; right:0; top:20px; height:2px; background:#0047BA; }
/* The YouTube iframe fills the intro overlay; player controls are suppressed via embed parameters. */
#intro iframe { display:block; width:100%; height:100%; border:0; }


/* Full-bleed YouTube background video: crop to fill viewport and prevent player UI interaction. */
#intro { position: fixed; inset: 0; overflow: hidden; background: #000; }
#intro iframe#youtubeIntro { position: absolute; top: 50%; left: 50%; width: max(100vw, 177.78vh); height: max(100vh, 56.25vw); min-width: 100%; min-height: 100%; transform: translate(-50%, -50%); border: 0; pointer-events: none; }
#intro #videoFallback { display: none !important; }


/* Local, full-viewport intro video: no YouTube iframe or player branding. */
#intro { position: fixed; inset: 0; z-index: 100; overflow: hidden; background: #000 url("assets/ocean-background.jpg") center / cover no-repeat; opacity: 1; transition: opacity 1.15s cubic-bezier(.4,0,.2,1); }
#intro video#localIntroVideo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; border: 0; background: transparent; }
#intro.video-error { background-image: url("assets/ocean-background.jpg"); }
#intro.fade { opacity: 0; pointer-events: none; }

/* Final checked alignment: dot-stack centre, header divider start, and footer first column share one viewport guide. */
:root { --rose-align-x: 4.2vw; }
.menu-toggle, body.home-page .menu-toggle { left: calc(var(--rose-align-x) - 6.5px) !important; }
.header-rule, body.home-page .header-rule { left: var(--rose-align-x) !important; }
.site-footer { padding-left: 0 !important; padding-right: 0 !important; }
.footer-grid { margin-left: 0 !important; margin-right: 0 !important; padding-left: var(--rose-align-x) !important; }
@media (max-width: 650px) {
  .menu-toggle, body.home-page .menu-toggle { left: calc(var(--rose-align-x) - 6.5px) !important; }
  .header-rule, body.home-page .header-rule { left: var(--rose-align-x) !important; }
  .footer-grid { padding-left: var(--rose-align-x) !important; padding-right: 6% !important; }
}
/* Reliable dissolve fallback; overlay remains above the landing page until it fades. */
#intro { opacity: 1; transition: opacity 1.2s cubic-bezier(.4,0,.2,1) !important; }
#intro.fade { opacity: 0 !important; pointer-events: none !important; }

/* Final typography update: body subheadings use regular Source Sans in brand blue. */
.eyebrow,
.section-copy .eyebrow {
  font-family: "Source Sans 3", "Source Sans Pro", "Source Sans", Arial, sans-serif !important;
  font-size: clamp(13px, 1vw, 18px) !important;
  font-weight: 400 !important;
  font-style: normal !important;
  color: #0047ba !important;
}
/* Footer section headings use regular Source Sans in white. */
.site-footer .footer-col h2 {
  font-family: "Source Sans 3", "Source Sans Pro", "Source Sans", Arial, sans-serif !important;
  font-weight: 400 !important;
  font-style: normal !important;
  color: #ffffff !important;
}

/* Final update: new intro video, supplied landing image, footer rule position, cross-browser sizing. */
:root { --rose-align-x: 4.2vw; }
html { min-height:100%; }
body { min-height:100vh; min-height:100dvh; }
#intro { position:fixed; inset:0; width:100%; height:100vh; height:100dvh; overflow:hidden; z-index:1000; background:#000; opacity:1; visibility:visible; transition:opacity 1.2s ease-in-out, visibility 1.2s ease-in-out; -webkit-transition:opacity 1.2s ease-in-out, visibility 1.2s ease-in-out; }
#intro video#localIntroVideo { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center center; background:#000; border:0; }
#intro.fade { opacity:0 !important; visibility:hidden; pointer-events:none; }
body.home-page .landing-hero { height:100vh; height:100dvh; min-height:100vh; min-height:100dvh; background-image:url("assets/landing-ocean-final.png"); background-position:center center; background-size:cover; background-repeat:no-repeat; }
/* Footer rule sits over the blue footer background, moved 5px up from its prior 20px position. */
.site-footer { position:relative !important; border-top:0 !important; margin-top:0 !important; padding-top:31px !important; }
.site-footer::before { content:""; position:absolute; z-index:2; left:0; right:0; top:15px; height:2px; background:#0047BA; }
/* Shared alignment guide for the menu dots, blue header rule, and first footer column. */
.menu-toggle, body.home-page .menu-toggle { left:calc(var(--rose-align-x) - 6.5px) !important; }
.header-rule, body.home-page .header-rule { left:var(--rose-align-x) !important; }
.footer-grid { padding-left:var(--rose-align-x) !important; padding-right:20px !important; margin-left:0 !important; margin-right:0 !important; }
@media (max-width:1000px) {
  :root { --rose-align-x:4.2vw; }
  .footer-grid { padding-left:var(--rose-align-x) !important; padding-right:5% !important; }
}
@media (max-width:650px) {
  :root { --rose-align-x:5vw; }
  body.home-page .landing-hero { height:100vh; height:100dvh; min-height:100vh; min-height:100dvh; }
  .menu-toggle, body.home-page .menu-toggle { left:calc(var(--rose-align-x) - 6.5px) !important; }
  .header-rule, body.home-page .header-rule { left:var(--rose-align-x) !important; }
  .footer-grid { padding-left:var(--rose-align-x) !important; padding-right:6% !important; }
  .site-footer { padding-top:31px !important; }
}
@media (prefers-reduced-motion:reduce) {
  #intro, #intro.fade { transition-duration:.01ms !important; -webkit-transition-duration:.01ms !important; }
}


/* Ship continuity: landing background is the exact final frame of the intro video. */
body.home-page .landing-hero { background-position: center center !important; background-size: cover !important; background-repeat: no-repeat !important; }

/* Final requested refinements: 80% menu panel opacity and footer rule 5px higher. */
.menu-panel,
.menu-panel.open {
  background: rgba(255, 255, 255, 0.80) !important;
}
.site-footer::before {
  top: 10px !important;
}

/* Final dissolve continuity: paint the exact landing still beneath the intro video. */
body.home-page {
  background-image: url("assets/landing-ocean-final.png") !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
}
body.home-page .landing-hero {
  background-image: url("assets/landing-ocean-final.png") !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
#intro {
  background: #000 url("assets/landing-ocean-final.png") center center / cover no-repeat !important;
  opacity: 1;
  transition: opacity 1.6s ease-in-out !important;
  will-change: opacity;
}
#intro video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
#intro.fade { opacity: 0 !important; }
.menu-panel,
.menu-panel.open { background: rgba(255, 255, 255, 0.85) !important; }
@media (prefers-reduced-motion: reduce) {
  #intro, #intro.fade { transition-duration: .01ms !important; }
}


/* October 14 update: supplied desktop/mobile intro media and landing backgrounds. */
body.home-page .landing-hero {
  background-image: url("assets/landing-ocean-desktop.jpg") !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}
body.home-page { background-image: url("assets/landing-ocean-desktop.jpg") !important; }
#intro { background: #000 url("assets/landing-ocean-desktop.jpg") center center / cover no-repeat !important; }
#intro video#localIntroVideo { object-fit: cover; object-position: center center; }
@media (max-width: 767px) {
  body.home-page .landing-hero {
    background-image: url("assets/landing-ocean-mobile.jpg") !important;
    background-position: center center !important;
    background-size: cover !important;
  }
  body.home-page { background-image: url("assets/landing-ocean-mobile.jpg") !important; }
  #intro { background: #000 url("assets/landing-ocean-mobile.jpg") center center / cover no-repeat !important; }
  #intro video#localIntroVideo { object-fit: cover; object-position: center center; }
}

/* Latest desktop/mobile media pair: dissolve before the supplied clip fades to white. */
#intro { background-position:center center !important; background-size:cover !important; background-repeat:no-repeat !important; opacity:1; transition:opacity 2.4s cubic-bezier(.22,.61,.36,1) !important; }
#intro video#localIntroVideo { display:block; width:100%; height:100%; object-fit:cover; object-position:center center; }
body.home-page .landing-hero { background-position:center center !important; background-size:cover !important; }
@media(max-width:767px){
 body.home-page .landing-hero { background-image:url("assets/landing-ocean-mobile.jpg") !important; }
 body.home-page { background-image:url("assets/landing-ocean-mobile.jpg") !important; }
 #intro { background-image:url("assets/landing-ocean-mobile.jpg") !important; }
 #intro video#localIntroVideo { object-fit:cover; object-position:center center; }
 /* The supplied mobile landing image has no wordmark; retain the standard site logo. */
 body.home-page .brand { display:flex !important; }
}
@media(min-width:768px){
 body.home-page .landing-hero { background-image:url("assets/landing-ocean-desktop.jpg") !important; }
 body.home-page { background-image:url("assets/landing-ocean-desktop.jpg") !important; }
 #intro { background-image:url("assets/landing-ocean-desktop.jpg") !important; }
 body.home-page .brand { display:flex !important; }
}

/* iPhone Safari reliability and transition fix (final override). */
#intro {
  -webkit-transition: opacity 2.4s cubic-bezier(.22,.61,.36,1) !important;
  transition: opacity 2.4s cubic-bezier(.22,.61,.36,1) !important;
  visibility: visible !important;
  background-color: #e8edf0;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
#intro.fade {
  opacity: 0 !important;
  visibility: visible !important;
  pointer-events: none !important;
}
#intro video#localIntroVideo {
  -webkit-appearance: none;
  appearance: none;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  object-fit: cover;
}
/* The footer rule is one pixel thick; keep its blue visible over the footer band. */
.site-footer::before { height: 1px !important; background-color: #0047BA !important; }
/* Phone number uses stable lining numerals across browsers and is tap-to-call on mobile. */
.site-footer .phone-number {
  color: inherit;
  text-decoration: none;
  font-family: "Source Serif 4", Georgia, serif;
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
  -webkit-font-feature-settings: "lnum" 1, "tnum" 1;
  white-space: nowrap;
}
.site-footer .phone-number:hover { text-decoration: underline; }
