/* Homepage styles, scoped to preserve the other pages. */
.home-page { --navy:#00244a; --blue:#006575; --cyan:#f58a00; --ink:#172c49; --muted:#5b6a7d; --border:#e3eaf3; color:var(--ink); background:#fff; }
.home-page * { box-sizing:border-box; }
.home-page h1,.home-page h2,.home-page h3 { color:var(--navy); font-weight:700; letter-spacing:-.035em; }
.home-page h2 { font-size:clamp(30px,3.2vw,42px); line-height:1.2; margin:0; }
.home-page h3 { font-size:21px; line-height:1.4; letter-spacing:-.02em; }
.home-page p { color:var(--muted); line-height:1.75; }
.home-page a { text-decoration:none; }
.home-page a:focus-visible,.home-page button:focus-visible { outline:3px solid var(--cyan); outline-offset:5px; }
.home-page section[id] { scroll-margin-top:24px; }
.skip-link { position:absolute; top:-100px; left:16px; background:white; color:var(--navy); padding:12px; z-index:20; }
.skip-link:focus { top:12px; }
.site-header { background:white; border-bottom:1px solid var(--border); }
.site-header .navbar { min-height:88px; padding-top:15px; padding-bottom:15px; }
.brand { display:flex; align-items:center; gap:11px; color:var(--navy); font-size:20px; font-weight:800; line-height:1.1; letter-spacing:-.04em; }
.brand img { flex-shrink:0; }
.brand-subtitle { display:block; color:#006575; font-size:10px; letter-spacing:.26em; margin-top:6px; }
.site-header .nav-link { color:var(--ink); font-size:13px; font-weight:600; padding:10px 13px !important; }
.site-header .nav-link:hover { color:var(--blue); }
.site-header .navbar-nav { gap:5px; }
.site-header .navbar-toggler { color:var(--navy); padding:10px; }
.site-header .dropdown-menu { border:1px solid var(--border); border-radius:12px; padding:10px; box-shadow:0 12px 36px #00244a12; }
.site-header .dropdown-item { font-size:13px; padding:10px 12px; border-radius:6px; }
.site-header .dropdown-item:hover { background:#eef7f7; color:var(--navy); }
.site-header .dropdown.show > .nav-link { background:#006575; color:#fff; border-radius:8px; }
.site-header .dropdown.show > .dropdown-menu { background:#eef7f7; border-color:#c5dedf; }
.site-header .dropdown.show .dropdown-item:hover,
.site-header .dropdown.show .dropdown-item:focus { background:#006575; color:#fff; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:22px; padding:15px 23px; border:1px solid transparent; border-radius:8px; background:var(--blue); color:#fff; font-weight:700; font-size:14px; line-height:1.5; transition:transform .2s,background .2s,box-shadow .2s; }
.button:hover { color:white; background:var(--navy); transform:translateY(-2px); }
.button-small { padding:11px 18px; margin-left:10px; }
.button-white { background:#fff; color:var(--navy); }
.button-white:hover { background:#eef7f7; color:var(--navy); }
.button-outline { color:#fff; background:transparent; border-color:#ffffff60; }
.button-outline:hover { background:#ffffff12; border-color:#fff; }
.hero { position:relative; overflow:hidden; background:radial-gradient(ellipse at 95% 90%,#00858a50,transparent 60%),linear-gradient(115deg,#00244a 15%,#064450 70%,#006575 125%); }
.hero-grid { display:grid; grid-template-columns:1.25fr 1fr; align-items:center; gap:30px; padding-top:85px; padding-bottom:75px; }
.home-page .eyebrow { color:#006575; font-size:11px; font-weight:800; letter-spacing:.18em; margin:0 0 16px; line-height:1.5; }
.home-page .eyebrow.light { color:#ffc47a; }
.home-page .hero h1 { color:white; font-size:clamp(38px,4.1vw,57px); line-height:1.13; letter-spacing:-.05em; margin-bottom:24px; }
.hero h1 span { color:#a5e1df; }
.home-page .hero-description { color:#d7e5f7; font-size:18px; max-width:490px; margin-bottom:30px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.home-page .hero-location { color:#d7e5f7; font-size:14px; font-weight:600; margin-top:31px; }
.hero-location span { margin-right:6px; }
.hero-art { position:relative; display:flex; align-items:center; justify-content:center; min-width:0; padding:20px 12px 50px; }
.hero-art img { position:relative; width:100%; max-width:380px; height:auto; filter:drop-shadow(0 16px 28px #00133835); }
.target-orbit { position:absolute; width:100%; aspect-ratio:1; max-width:420px; border:1px solid #ffffff15; border-radius:50%; }
.target-orbit::before { content:''; position:absolute; inset:22px; border:1px solid #ffffff10; border-radius:50%; }
.art-caption { position:absolute; bottom:12px; color:#d2e5ff; font-size:9px; letter-spacing:.18em; }
.art-caption span { margin:0 10px; color:#ffc47a; }
.content-section { padding:80px 0; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:36px; }
.section-heading>p { max-width:370px; font-size:15px; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.service-card { position:relative; padding:30px 26px; border:1px solid var(--border); border-radius:14px; background:#fff; }
.icon-tile { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; flex-shrink:0; border-radius:12px; color:#006575; background:#eef7f7; font-size:24px; }
.card-number { position:absolute; right:25px; top:36px; color:#788ba4; font-size:12px; font-weight:600; }
.service-card h3 { margin-top:27px; margin-bottom:12px; }
.service-card p { font-size:14px; }
.technology-strip { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-top:36px; padding-top:25px; border-top:1px solid var(--border); }
.technology-strip p { font-size:12px; flex-shrink:0; }
.technology-strip ul { display:flex; flex-wrap:wrap; gap:10px 24px; margin:0; padding:0; list-style:none; }
.technology-strip li { font-size:12px; color:#4b607c; font-weight:600; }
.projects-section { background:#f5f8f8; border-block:1px solid #edf0f5; }
.projects-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.project-card { display:block; min-width:0; overflow:hidden; border:1px solid var(--border); border-radius:14px; background:#fff; transition:transform .2s,box-shadow .2s; }
.project-card:hover { transform:translateY(-4px); box-shadow:0 14px 30px #00244a0d; }
.project-image { background:#e8f0f1; padding:22px 22px 0; overflow:hidden; aspect-ratio:1.85; border-bottom:1px solid var(--border); }
.project-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:top; border-radius:7px 7px 0 0; box-shadow:0 0 15px #00244a12; }
.project-details { padding:25px 26px; }
.home-page .project-type { color:#006575; font-size:10px; letter-spacing:.13em; font-weight:700; margin-bottom:9px; }
.project-details h3 { display:flex; align-items:start; justify-content:space-between; gap:12px; margin-bottom:8px; }
.project-details h3 span { color:#006575; }
.project-details>p:last-child { font-size:14px; }
#quick-links { background:linear-gradient(135deg,#eef7f7,#f8fbfc); border-top:1px solid #d6e8e9; }
#quick-links-heading::after { content:''; display:block; width:52px; height:4px; margin-top:16px; border-radius:2px; background:#f58a00; }
.quick-links-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.quick-card { display:flex; align-items:start; gap:22px; padding:30px; background:#fff; border:1px solid #d6e8e9; border-top:3px solid #f58a00; border-radius:14px; box-shadow:0 8px 24px #00244a09; transition:border-color .2s,box-shadow .2s; }
.quick-card:hover,.quick-card:focus-visible { border-color:#006575; border-top-color:#f58a00; box-shadow:0 12px 30px #00244a16; }
.quick-card .icon-tile { background:var(--blue); color:#fff; }
.quick-card .text-link { padding:9px 13px; background:#eef7f7; border-radius:7px; }
.quick-card h3 { margin-bottom:8px; }
.quick-card p { font-size:14px; }
.text-link { display:inline-flex; align-items:center; gap:14px; color:#006575; font-size:13px; font-weight:700; margin-top:18px; }
.contact-section { background:linear-gradient(110deg,#00244a,#006575); padding:60px 0; }
.contact-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.home-page .contact-section h2 { color:white; margin-bottom:14px; }
.home-page .contact-section p:not(.eyebrow) { color:#d0e0f5; font-size:15px; }
.contact-inner>.button { flex-shrink:0; }
.site-footer { background:#fff; padding:35px 0; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.footer-brand { font-size:16px; color:var(--navy); font-weight:700; }
.site-footer p,.footer-email { font-size:12px; }
.site-footer p { margin-top:5px; }
.footer-email { color:#006575; }
@media(max-width:991px) {
.site-header .navbar-collapse { padding:20px 0 5px; }
.site-header .nav-link { padding:12px 0 !important; }
.button-small { margin:12px 0 0; }
.hero-grid { padding-top:60px; padding-bottom:60px; grid-template-columns:1.35fr 1fr; gap:10px; }
.hero-art { padding-inline:0; }
.services-grid { gap:14px; }
.service-card { padding:25px 20px; }
.service-card h3 { font-size:18px; }
.section-heading { gap:25px; }
.section-heading>p { max-width:290px; }
.technology-strip { align-items:start; flex-direction:column; gap:12px; }
.project-details,.quick-card { padding:22px; }
.quick-card { gap:16px; }
.quick-card .icon-tile { width:38px; height:38px; font-size:20px; }
}
@media(max-width:767px) {
.site-header .navbar { min-height:76px; }
.brand { font-size:18px; }
.hero-grid { grid-template-columns:1fr; padding-top:52px; padding-bottom:35px; gap:20px; }
.hero-copy { max-width:540px; }
.home-page .hero h1 { font-size:clamp(36px,7.8vw,52px); }
.home-page .hero-description { font-size:16px; }
.hero-art { max-width:290px; width:100%; margin:0 auto; padding-bottom:40px; }
.hero-art img { max-width:230px; }
.art-caption { font-size:8px; }
.content-section { padding:52px 0; }
.section-heading { display:block; margin-bottom:27px; }
.section-heading>p { margin-top:18px; max-width:100%; }
.services-grid,.projects-grid,.quick-links-grid { grid-template-columns:1fr; gap:20px; }
.service-card { padding:26px; }
.service-card h3 { font-size:21px; margin-top:20px; }
.project-image { padding:18px 18px 0; }
.contact-section { padding:48px 0; }
.contact-inner,.footer-inner { flex-direction:column; align-items:start; gap:24px; }
}
@media(prefers-reduced-motion:reduce) {
.home-page *,.home-page *::before,.home-page *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}

/* Wide U.P. wordmark and colors drawn from OTD-Logo-2.png. */
.brand img { width:300px; max-width:100%; height:auto; }
.hero-logo-panel { position:relative; width:100%; padding:30px 20px; background:#fff; border-radius:18px; border-top:4px solid #f58a00; box-shadow:0 20px 48px #001b3430; }
.hero-logo-panel img { display:block; width:100%; max-width:none; height:auto; filter:none; }
.hero-art { padding:35px 0 55px; }
.hero-actions .button-white { border-bottom:3px solid #f58a00; }
@media(max-width:767px) {
  .brand img { width:245px; }
  .hero-art { max-width:430px; padding:20px 0 45px; }
  .hero-logo-panel { padding:20px 15px; }
  .hero-art .hero-logo-panel img { max-width:none; }
}
@media(max-width:359px) { .brand img { width:210px; } }
