/* The Rocking Star - site styles (IH master framework build, Nov 2026)
   Visual layer copied from the 2017-2020 WordPress "Tilt" theme: values below were measured on the
   live site (computed styles) so the rebuild matches it. Sections:
   1 fonts + tokens  2 base  3 header + nav  4 rows, backgrounds, headings  5 buttons
   6 home  7 about  8 services  9 contact + forms  10 blog  11 footer  12 motion  13 responsive */

/* 1. Fonts + tokens ------------------------------------------------------- */
@font-face { font-family: "Roboto Slab"; src: url("../fonts/roboto-slab.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Open Sans"; src: url("../fonts/open-sans.woff2") format("woff2"); font-weight: 300 800; font-style: normal; font-display: swap; }

:root {
  --blue: #00a4ed;
  --blue-tag: #00a8ee;
  --orange: #f46a38;
  --ink: #282020;           /* body text */
  --heading: #36353c;
  --heading-2: #363b3e;
  --gray: #7e828b;
  --gray-2: #9ca8ae;
  --gray-3: #8e9bb0;
  --rule: #36353c;
  --charcoal: #191919;      /* header + footer */
  --charcoal-2: #1e1e1e;
  --charcoal-3: #262626;
  --tile: #262628;
  --line: #ededed;
  --slab: "Roboto Slab", Georgia, serif;
  --sans: "Open Sans", Helvetica, Arial, sans-serif;
  --ease: cubic-bezier(.645, .045, .355, 1);   /* GSAP Power3.easeInOut, as Slider Revolution used */
  --ease-in: cubic-bezier(.55, .085, .68, .53);
  --header-h: 80px;
  --wrap: 1200px;
}

/* 2. Base ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; font-family: var(--slab); font-size: 15px; line-height: 1.5; color: var(--ink); background: #fff; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--blue); text-decoration: none; transition: color .2s ease-in-out; }
a:hover { color: #0088c6; }
h1, h2, h3, h4, h5, h6 { font-family: var(--slab); color: var(--heading); margin: 0 0 .6em; line-height: 1.2; }
h1 { font-size: 52px; } h2 { font-size: 44px; } h3 { font-size: 36px; } h4 { font-size: 28px; } h5 { font-size: 20px; } h6 { font-size: 17px; line-height: 26px; }
p { margin: 0 0 1em; }
ul { margin: 0 0 1em; padding-left: 1.3em; }
::selection { background: var(--blue); color: #fff; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 1000; background: #fff; color: #000; padding: 10px 14px; border-radius: 3px; font-family: var(--sans); font-weight: 700; }
.skip-link:focus { top: 12px; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
main:focus { outline: none; }

/* 3. Header + nav --------------------------------------------------------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; height: var(--header-h); background: rgba(25, 25, 25, 1);
  box-shadow: 0 2px 3px 0 rgba(0, 0, 0, .2); transition: background-color .2s ease-in-out; }
.header-inner { max-width: var(--wrap); height: 100%; margin: 0 auto; padding: 0 15px; display: flex; align-items: center; justify-content: space-between; position: relative; }
.site-logo { position: relative; display: block; height: 70px; width: 291px; flex: none; }
.site-logo img { position: absolute; left: 0; top: 0; height: 70px; width: auto; transition: opacity .2s; }
.site-logo .logo-star { opacity: 0; }
.is-stuck .site-logo .logo-full { opacity: 0; }
.is-stuck .site-logo .logo-star { opacity: 1; }

.primary-nav > ul { list-style: none; margin: 0; padding: 0; display: flex; }
.primary-nav > ul > li { position: relative; display: flex; align-items: center; }
.primary-nav > ul > li > a { display: inline-block; padding: 0 20px; line-height: var(--header-h); font-family: var(--sans); font-size: 11px; font-weight: 700;
  letter-spacing: 1.1px; text-transform: uppercase; color: var(--blue); transition: color .2s ease-in-out, opacity .2s ease-in-out; }
.primary-nav > ul > li > a:hover, .primary-nav > ul > li > a.current { color: var(--blue); opacity: .8; }
.primary-nav > ul > li > a.current { opacity: 1; }
.sub-toggle { display: none; }
.sub-menu { list-style: none; margin: 0; padding: 0; position: absolute; top: 64px; left: 0; width: 180px; background: #fff; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .3);
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .3s, transform .3s, visibility 0s linear .3s; z-index: 5; }
.has-sub:hover .sub-menu, .has-sub:focus-within .sub-menu, .has-sub.open .sub-menu { opacity: 1; visibility: visible; transform: none; transition: opacity .3s, transform .3s; }
.sub-menu a { display: block; padding: 12px 20px; font-family: var(--sans); font-size: 11px; font-weight: 600; line-height: 1.7; text-transform: uppercase; color: var(--gray-2);
  transition: background .2s ease-in-out, color .2s ease-in-out; }
.sub-menu a:hover, .sub-menu a:focus { background: var(--blue); color: #fff; }

.menu-toggle { display: none; background: none; border: 0; padding: 12px; margin-right: -12px; cursor: pointer; color: var(--blue); }
.menu-bars, .menu-bars::before, .menu-bars::after { display: block; width: 24px; height: 2px; background: currentColor; position: relative; transition: transform .3s, background .3s; }
.menu-bars::before, .menu-bars::after { content: ""; position: absolute; left: 0; }
.menu-bars::before { top: -7px; } .menu-bars::after { top: 7px; }
.menu-open .menu-bars { background: transparent; }
.menu-open .menu-bars::before { transform: translateY(7px) rotate(45deg); }
.menu-open .menu-bars::after { transform: translateY(-7px) rotate(-45deg); }
.mobile-menu { position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0; z-index: 99; background: #191919; padding: 10px 0; overflow-y: auto;
  transform: translateX(100%); transition: transform .35s var(--ease); }
.mobile-menu.is-open { transform: none; }
.mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.mobile-menu a { display: block; padding: 16px 24px; border-bottom: 1px solid rgba(255, 255, 255, .06); font-family: var(--sans); font-size: 13px; font-weight: 700;
  letter-spacing: 1.3px; text-transform: uppercase; color: #fff; }
.mobile-menu a[aria-current] { color: var(--blue); }

/* 4. Rows, backgrounds, headings --------------------------------------------- */
.row { position: relative; overflow: hidden; }
.row-inner { position: relative; z-index: 2; max-width: var(--wrap); margin: 0 auto; padding: 0 15px; }
.row-inner.full { max-width: none; padding: 0; }
.center { text-align: center; }
.row-bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }
.row-bg.parallax { top: -12%; bottom: -12%; will-change: transform; }
.row-pattern { position: absolute; inset: 0; z-index: 1; background: url("../images/sm_cell_w.png") repeat; pointer-events: none; }
.row-shade { position: absolute; left: 0; right: 0; bottom: 0; height: 10px; z-index: 3; box-shadow: inset 0 -8px 8px -8px rgba(0, 0, 0, .2); pointer-events: none; }
.row-dark { color: #fff; }

.heading { text-align: center; }
.heading-title { margin: 0; font-family: var(--slab); font-size: 24px; font-weight: 800; letter-spacing: 1.2px; line-height: 1.2; text-transform: uppercase; color: #fff; }
.heading-rule { display: block; width: 60px; height: 1px; margin: 10px auto; background: var(--rule); }
.heading-sub { margin: 5px 0 0; font-family: var(--slab); font-size: 13px; font-weight: 600; letter-spacing: 3.9px; line-height: 1.3; text-transform: uppercase; color: #fff; }
.band { background: #000; padding: 60px 0; }
.band-light { background: #fff; }

/* 5. Buttons ----------------------------------------------------------------- */
.btn { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 15px; border: 2px solid transparent; border-radius: 3px; background: var(--blue); color: #fff;
  font-family: var(--slab); font-size: 11px; font-weight: 700; letter-spacing: 1.1px; line-height: 30px; text-transform: uppercase;
  transition: color .2s ease-in-out, background-color .2s ease-in-out, border-color .2s ease-in-out; }
.btn:hover { background: #1e1e1e; color: #fff; }
.btn .icon { width: 13px; height: 13px; }
.btn-outline { background: transparent; border-color: #fff; color: #fff; border-radius: 0; height: 38px; padding: 0 18px; letter-spacing: 1.65px; }
.btn-outline:hover { background: #fff; color: var(--blue); }
.btn-ghost { background: transparent; border: 2px solid rgba(255, 255, 255, .85); color: #fff; border-radius: 0; height: 38px; padding: 0 20px; }
.btn-ghost:hover { background: var(--blue); border-color: var(--blue); color: #fff; }

/* 6. Home ------------------------------------------------------------------- */
/* Hero: replaces Slider Revolution slider 6 (full screen, zoom-out bg, layered entrances) */
.hero { position: relative; height: 100vh; height: 100svh; min-height: 560px; background: var(--charcoal-3); overflow: hidden; color: #fff; }
.hero-par { position: absolute; left: 0; right: 0; top: -12%; bottom: -12%; z-index: 0; will-change: transform; }
.hero .row-bg { background-position: right bottom; transform-origin: 50% 50%; }
.hero .row-pattern { opacity: .3; }
.hero-dim { position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .4); opacity: 0; }
.hero-glow { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; pointer-events: none; opacity: 0; }
.hero-glow img { width: 100%; height: 100%; object-fit: cover; }
.hero-stage { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; padding-top: 30px; }
.hero-lockup { display: flex; align-items: center; justify-content: center; gap: 0; width: 100%; }
.hero-word { flex: 1 1 0; font-family: var(--slab); font-size: 30px; font-weight: 400; line-height: 31px; white-space: nowrap; color: #fff; }
.hero-word.left { text-align: right; padding-right: 2px; }
.hero-word.right { text-align: left; padding-left: 0; }
.hero-star { flex: none; width: clamp(180px, 18vw, 330px); }
.hero-star img { width: 100%; height: auto; }
.hero-tag { max-width: 1000px; margin: clamp(30px, 6vh, 70px) auto 0; padding: 0 20px; font-family: var(--slab); font-size: 13px; line-height: 2; letter-spacing: 2.2px;
  color: var(--blue-tag); text-align: center; text-transform: uppercase; }
.hero-tag br { display: none; }
@media (min-width: 1100px) { .hero-tag br { display: inline; } }

/* Purpose split row (rocket + astronaut photo on the right) */
.purpose { background: #fff; min-height: 937px; display: flex; align-items: flex-end; }
.purpose .row-bg { background-position: right top; background-size: auto; }
.purpose .row-inner { width: 100%; padding-bottom: 40px; }
.purpose-copy { max-width: 58%; padding-top: 350px; }
.purpose-copy h2 { font-size: 44px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; color: var(--heading); margin-bottom: 18px; }
.purpose-copy h5 { font-size: 20px; font-weight: 600; letter-spacing: 2px; line-height: 24px; color: var(--heading); margin-bottom: 20px; }

/* Services row on the star field */
.svc-row { background: var(--charcoal-2); min-height: 637px; display: flex; align-items: center; }
.svc-row .row-pattern { opacity: .2; }
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; padding: 60px 0; text-align: center; }
.svc-box { margin-top: 20px; }
.hex { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 86px; height: 48px; margin: 30px 0; background: var(--blue); color: #fff; }
.hex::before, .hex::after { content: ""; position: absolute; left: 0; width: 0; border-left: 43px solid transparent; border-right: 43px solid transparent; }
.hex::before { bottom: 100%; border-bottom: 25px solid var(--blue); }
.hex::after { top: 100%; border-top: 25px solid var(--blue); }
.hex .icon { width: 30px; height: 30px; }
.svc-box h3 { margin: 15px 0; font-size: 17px; font-weight: 700; letter-spacing: .85px; line-height: 30px; text-transform: uppercase; color: #fff; }
.svc-box p { font-size: 15px; line-height: 30px; color: #fff; margin: 0; }
.svc-more { display: inline-block; margin: 30px 0 50px; }

/* News & Press tiles (was Essential Grid / WPBakery columns) */
.news-head { padding: 60px 0; background: #fff; }
.news-head .heading-title { color: var(--heading-2); }
.news-head .heading-sub { color: var(--gray-2); }
.tiles { background: var(--tile); display: grid; grid-template-columns: repeat(4, 1fr); }
.tile { height: 300px; position: relative; overflow: hidden; }
.tile-img { background-size: cover; background-position: center; background-repeat: no-repeat; }
.tile-text { background: var(--blue); padding: 30px; color: #fff; }
.tile-text h3 { font-size: 17px; font-weight: 600; letter-spacing: 1.7px; line-height: normal; color: #fff; text-transform: uppercase; margin: 0 0 15px; }
.tile-text p { font-size: 13px; line-height: normal; color: #fff; margin: 0 0 20px; }

/* 7. About -------------------------------------------------------------------- */
.about-hero { background: #014ba6; min-height: 920px; padding: 80px 0 0; }
.about-hero .row-bg { background-position: right top; background-size: auto 100%; }
.about-box { position: relative; max-width: 66.6%; margin: 20px 0; padding: 16px; background: url("../images/uploads/2017/05/ov-bl.png") repeat; color: #fff; }
.about-box h1 { font-size: 28px; color: #fff; margin: 0 0 14px; }
.about-box > p { font-size: 15px; line-height: 1.6; text-align: left; }
.values { list-style: none; margin: 11px 0 0; padding: 0; }
.values li { display: grid; grid-template-columns: 46px 1fr; align-items: start; margin-top: 11px; }
.values .icon { width: 26px; height: 26px; color: var(--blue); margin-top: 6px; }
.values h2 { font-size: 17px; font-weight: 700; letter-spacing: .85px; line-height: 30px; text-transform: uppercase; margin: 0; color: #fff; }
.values li:nth-child(odd) h2 { color: var(--blue); }
.values p { margin: 0; font-size: 15px; line-height: 30px; color: #fff; }

/* 8. Services page ------------------------------------------------------------ */
.svc-intro { background: #fff; padding: 160px 0 80px; }
.svc-intro .row-bg { background-position: center bottom; background-repeat: repeat-x; background-size: auto; }
.svc-intro .heading-title { color: var(--charcoal-2); }
.svc-section { padding: 120px 0; }
.svc-section.dark { background: #000; padding: 60px 0; }
.svc-lead { max-width: 1170px; margin: 24px auto 0; text-align: center; }
.svc-lead h3, .svc-lead h6 { font-size: 17px; line-height: 26px; font-weight: 400; margin: 0 0 24px; }
.svc-lead h4, .svc-lead h5 { font-size: 20px; margin: 0 0 10px; }
.svc-lead p { font-size: 15px; line-height: 1.8; }
.row-dark .svc-lead, .row-dark .svc-lead h3, .row-dark .svc-lead h4, .row-dark .svc-lead h5, .row-dark .svc-lead h6, .row-dark .svc-lead p { color: #fff; }
.svc-cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; padding: 60px 0 20px; text-align: left; }
.svc-cols.three { grid-template-columns: repeat(3, 1fr); }
.svc-cols h3 { font-size: 17px; font-weight: 700; color: #fff; margin: 0 0 24px; line-height: 26px; }
.svc-cols ul { margin: 0; padding-left: 18px; color: #fff; line-height: 1.9; }
.svc-cols .star { max-width: 260px; margin: 0 auto; }
.spacer-band { height: 24px; background: var(--charcoal); }

/* 9. Contact + forms ----------------------------------------------------------- */
.contact-hero { background: #161010; padding: 180px 0 120px; text-align: center; }
.contact-hero .row-bg { background-position: right top; background-repeat: repeat-x; background-size: auto 100%; }
.contact-hero h1.heading-title { font-size: 44px; letter-spacing: 2px; }
.fade-out { will-change: opacity, transform; }
.contact-main { padding: 100px 0 70px; }
.contact-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; align-items: start; }
.contact-grid .heading { text-align: left; }
.contact-grid .heading-title { color: var(--heading-2); }
.contact-grid .heading-rule { margin-left: 0; display: none; }
.office { padding-left: 40px; }
.office h2 { font-size: 20px; font-weight: 700; margin: 0 0 20px; }
.office-line { display: grid; grid-template-columns: 28px 1fr; gap: 6px; margin: 0 0 14px; color: var(--heading); line-height: 1.6; }
.office-line .icon { margin-top: 4px; color: var(--heading); }
.office-line a { color: var(--blue); }

.form { margin-top: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.form .full { grid-column: 1 / -1; }
.form label { display: block; font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--heading); margin-bottom: 6px; }
.form label .req { color: var(--orange); }
.form input, .form select, .form textarea { width: 100%; padding: 12px 14px; border: 1px solid #ddd; border-radius: 0; background: #f9f9f9; font-family: var(--slab); font-size: 15px; color: var(--ink); }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--blue); background: #fff; }
.form textarea { min-height: 150px; resize: vertical; }
.form .hp { position: absolute; left: -9999px; }
.form button { justify-self: start; height: 44px; padding: 0 26px; border: 0; background: var(--blue); color: #fff; font-family: var(--slab); font-size: 12px; font-weight: 700;
  letter-spacing: 1.2px; text-transform: uppercase; cursor: pointer; transition: background .2s; }
.form button:hover { background: #1e1e1e; }
.form-note { grid-column: 1 / -1; font-size: 13px; color: var(--gray); margin: 0; }
.form-error { grid-column: 1 / -1; padding: 12px 14px; background: #fdecea; color: #a12a1e; font-size: 14px; }

.apply { padding: 60px 0; }
.apply-inner { max-width: 800px; }
.apply-inner img { margin-bottom: 30px; }
.apply-inner h1 { font-size: 36px; }

/* 10. Blog ------------------------------------------------------------------------ */
.news-slider { position: relative; height: 500px; background: #111; overflow: hidden; margin-top: var(--header-h); color: #fff; }
.ns-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.2s var(--ease), visibility 0s linear 1.2s; }
.ns-slide.on { opacity: 1; visibility: visible; transition: opacity 1.2s var(--ease); z-index: 1; }
.ns-bg { position: absolute; inset: -10% 0; background-size: cover; background-position: center; transform: translateY(8%); transition: transform 1.6s var(--ease); }
.ns-slide.on .ns-bg { transform: none; }
.ns-slide::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .35); }
.ns-copy { position: absolute; z-index: 2; left: max(15px, calc((100% - var(--wrap)) / 2 + 15px)); top: 140px; max-width: 520px; }
.ns-date { font-family: var(--slab); font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--blue); margin: 0 0 6px; }
.ns-title { display: inline-block; background: var(--blue); padding: 14px 16px; font-size: 22px; font-weight: 400; line-height: 1.3; color: #fff; margin: 0 0 60px; }
.ns-title a { color: #fff; }
.ns-copy .btn-ns { display: inline-block; padding: 0 30px; line-height: 35px; background: rgba(0, 0, 0, .75); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: 1.1px; text-transform: uppercase; }
.ns-copy .btn-ns:hover { background: var(--blue); }
.ns-tabs { position: absolute; z-index: 3; right: max(15px, calc((100% - var(--wrap)) / 2 + 15px)); top: 70px; width: 270px; list-style: none; margin: 0; padding: 0; }
.ns-tabs li { margin-bottom: 18px; }
.ns-tabs button { all: unset; cursor: pointer; display: block; }
.ns-tabs .k { display: block; font-family: var(--slab); font-size: 9px; letter-spacing: 1px; text-transform: uppercase; color: var(--blue); opacity: .8; }
.ns-tabs .t { display: block; font-family: var(--slab); font-size: 14px; line-height: 1.35; color: rgba(255, 255, 255, .6); transition: color .3s; }
.ns-tabs .on .t, .ns-tabs button:hover .t, .ns-tabs button:focus-visible .t { color: #fff; }

.blog-wrap { max-width: var(--wrap); margin: 0 auto; padding: 30px 15px 60px; display: grid; grid-template-columns: 1fr 292px; gap: 0 40px; }
.post-entry { position: relative; padding: 30px 0 60px 200px; margin: 0 0 30px; border-bottom: 1px solid var(--line); }
.post-entry h2, .post-head h1 { font-size: 30px; font-weight: 300; line-height: 39px; text-transform: uppercase; color: var(--heading); margin: 0 0 2px; }
.post-entry h2 a { color: var(--ink); }
.post-entry h2 a:hover { color: var(--blue); }
.post-entry .summary { font-size: 14px; line-height: 28px; color: var(--ink); margin: 14px 0 50px; }
.meta { position: absolute; left: 0; top: 30px; width: 175px; text-align: right; padding-right: 0; }
.meta .d { font-family: var(--sans); font-size: 48px; font-weight: 400; line-height: 1; color: #b9bec4; }
.meta .my { font-family: var(--sans); font-size: 13px; font-weight: 700; text-transform: uppercase; color: #9ca8ae; margin-top: 2px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.meta .by { display: flex; justify-content: flex-end; align-items: center; gap: 4px; margin-top: 14px; font-family: var(--sans); font-size: 11px; color: var(--heading); }
.meta .by .icon { width: 12px; height: 12px; color: var(--gray); }
.meta .by a { color: var(--gray-2); }
.read-more { display: table; margin: 0 auto; padding: 0 30px; line-height: 35px; border-top: 1px solid #f4f4f3; border-bottom: 1px solid #f4f4f3; font-size: 11px; font-weight: 700;
  letter-spacing: 3.3px; text-transform: uppercase; color: var(--gray); transition: background .2s, color .2s; }
.read-more:hover { background: var(--blue); color: #fff; }
.sidebar { padding: 30px 0 0 20px; }
.search { position: relative; margin-bottom: 40px; }
.search input { width: 100%; padding: 9px 36px 9px 12px; border: 1px solid #e6e6e6; font-family: var(--sans); font-size: 12px; color: var(--heading); }
.search button { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); background: none; border: 0; color: #bbb; cursor: pointer; padding: 6px; }
.widget-title { font-family: var(--sans); font-size: 14px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: var(--heading); margin: 0 0 10px; }
.widget ul { list-style: none; padding: 0; margin: 0; }
.widget li { margin: 0 0 8px; }
.widget a { font-family: var(--sans); font-size: 13px; line-height: 19.5px; color: var(--gray-2); }
.widget a:hover { color: var(--blue); }
.pager { display: flex; gap: 8px; justify-content: center; margin-top: 10px; font-family: var(--sans); font-size: 13px; }
.pager a, .pager span { display: inline-block; min-width: 34px; padding: 6px 10px; text-align: center; border: 1px solid var(--line); color: var(--gray); }
.pager span { background: var(--blue); border-color: var(--blue); color: #fff; }
.search-note { font-family: var(--sans); font-size: 14px; color: var(--gray); margin: 30px 0 0; }

.post-single { max-width: var(--wrap); margin: 0 auto; padding: calc(var(--header-h) + 60px) 15px 60px; }
.post-head { position: relative; padding: 0 0 0 200px; min-height: 90px; }
.post-head .meta { top: 0; }
.post-body { padding-left: 200px; font-size: 14px; line-height: 28px; color: var(--ink); }
.post-body .feature { margin: 20px 0 20px; }
.post-body img { margin: 10px 0; }
.post-body h2 { font-size: 24px; letter-spacing: -1px; margin: 1.2em 0 .5em; }
.post-body h3 { font-size: 22px; margin: 1.2em 0 .5em; }
.post-body h4 { font-size: 20px; } .post-body h5, .post-body h6 { font-size: 17px; }
.post-body p { margin: 0 0 14px; }
.post-body blockquote { margin: 20px 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--blue); font-style: italic; }
.post-body iframe { max-width: 100%; }
.post-form { padding-left: 200px; max-width: 900px; }
.post-form .form { margin-top: 10px; }
.post-share { padding-left: 200px; margin-top: 30px; display: flex; gap: 10px; flex-wrap: wrap; }
.post-share a { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 4px; background: #eef0f2; color: var(--heading); }
.post-share a:hover { background: var(--blue); color: #fff; }
.post-nav a { position: fixed; top: 50%; z-index: 20; width: 34px; height: 84px; margin-top: -42px; display: flex; align-items: center; justify-content: center; background: #f2f2f2; color: #bbb;
  transition: background .2s, color .2s, width .3s; overflow: hidden; }
.post-nav a:hover { background: var(--blue); color: #fff; }
.post-nav .prev { left: 0; } .post-nav .next { right: 0; }
.post-nav .label { position: absolute; left: -9999px; }

/* 11. Footer ----------------------------------------------------------------------- */
.site-footer { background: var(--charcoal); padding: 60px 0 15px; text-align: center; }
.footer-inner { max-width: var(--wrap); margin: 0 auto; padding: 0 15px; }
.footer-follow { font-family: var(--sans); font-size: 13px; font-weight: 700; text-transform: uppercase; color: #7e828b; margin: 0 0 22px; }
.social-row { display: flex; justify-content: center; gap: 0; margin: 0 0 30px; }
.social-row a { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; margin: 0 18px; border-radius: 4px; background: #fff; color: #191919;
  transition: background .2s, color .2s; }
.social-row a:hover { background: var(--blue); color: #fff; }
.footer-line { font-family: var(--sans); font-size: 13px; font-weight: 700; color: #7e828b; margin: 0 0 12px; }
.footer-line a { color: #7e828b; }
.footer-powered { font-family: var(--sans); font-size: 13px; color: #9a9a9a; margin: 0 0 10px; }
.footer-powered a { color: #9a9a9a; }
.to-top { position: fixed; right: 15px; bottom: 15px; z-index: 90; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; color: var(--gray-3);
  opacity: 0; visibility: hidden; transform: translateY(10px); transition: transform .3s ease-in-out, opacity .3s ease-in-out, visibility 0s linear .3s; }
.to-top.show { opacity: 1; visibility: visible; transform: none; transition: transform .3s ease-in-out, opacity .3s ease-in-out; }
.to-top:hover { color: var(--blue); }

.nf-hero { padding: 200px 0 120px; background: #111; }
.nf-text { margin: 30px 0 14px; color: #fff; }
.nf-links { list-style: none; padding: 0; display: flex; gap: 10px 24px; justify-content: center; flex-wrap: wrap; font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; }

/* 12. Motion ------------------------------------------------------------------------- */
/* Home hero entrance (timings from the Slider Revolution layer frames) */
.js .hero .row-bg { transform: scale(1.18); transition: transform 2s var(--ease); }
.js .hero.go .row-bg { transform: scale(1); }
.js .hero-dim { transition: opacity 1s var(--ease) .01s; }
.js .hero.go .hero-dim { opacity: 1; }
.js .hero-glow { transform: translateY(-100vh); }
.js .hero.go .hero-glow { animation: glow 8.96s linear .02s forwards; }
@keyframes glow {
  0%      { transform: translateY(-100vh); opacity: 1; animation-timing-function: var(--ease); }
  44.6%   { transform: none; opacity: 1; }             /* 4.0s in */
  78.8%   { transform: none; opacity: 1; animation-timing-function: var(--ease-in); }   /* +3.06s hold */
  100%    { transform: none; opacity: 0; }             /* 1.9s fade */
}
.js .hero-word.left  { transform: translateX(calc(50vw + 100%)); }
.js .hero-word.right { transform: translateX(calc(-50vw - 100%)); }
.js .hero-star       { transform: translateY(-100vh); }
.js .hero-tag        { opacity: 0; transform: scale(.9); }
.js .hero.go .hero-word.left  { transform: none; transition: transform 5s var(--ease) .01s; }
.js .hero.go .hero-word.right { transform: none; transition: transform 5s var(--ease) .03s; }
.js .hero.go .hero-star       { transform: none; transition: transform 4.5s var(--ease) .02s; }
.js .hero.go .hero-tag        { opacity: 1; transform: none; transition: opacity 5s var(--ease) .1s, transform 5s var(--ease) .1s; }

/* Reveal on scroll (WPBakery "animate when almost visible") */
.js .rv { opacity: 0; transition: opacity .7s ease, transform .7s ease; }
.js .rv.btt { transform: translateY(80px); }
.js .rv.ttb { transform: translateY(-80px); }
.js .rv.rtl { transform: translateX(80px); }
.js .rv.ltr { transform: translateX(-80px); }
.js .rv.in { opacity: 1; transform: none; }
.rv.d200 { transition-delay: .2s; } .rv.d400 { transition-delay: .4s; } .rv.d600 { transition-delay: .6s; }
.rv.d700 { transition-delay: .7s; } .rv.d800 { transition-delay: .8s; }

@media (prefers-reduced-motion: reduce) {
  .js .hero .row-bg, .js .hero-word.left, .js .hero-word.right, .js .hero-star, .js .hero-tag, .js .rv { transform: none !important; opacity: 1 !important; transition: none !important; }
  .js .hero-dim { opacity: 1; }
  .js .hero-glow { display: none; }
  .row-bg.parallax { transform: none !important; }
}

/* 13. Responsive ------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .purpose-copy { max-width: 60%; padding-top: 220px; }
  .blog-wrap { grid-template-columns: 1fr 240px; }
}
@media (max-width: 960px) {
  .tiles { grid-template-columns: repeat(2, 1fr); }
  .svc-grid { grid-template-columns: 1fr; gap: 0; }
  .about-box { max-width: 100%; }
  .about-hero .row-bg { opacity: .35; }
  .svc-cols.three { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .office { padding-left: 0; }
}
@media (max-width: 768px) {
  .primary-nav { display: none; }
  .menu-toggle { display: block; }
  .site-logo { width: 220px; height: 54px; }
  .site-logo img { height: 54px; }
  h1 { font-size: 36px; } h2 { font-size: 30px; }
  .hero-lockup { flex-direction: column; gap: 16px; }
  .hero-word { flex: none; font-size: 22px; text-align: center !important; padding: 0 !important; }
  .hero-word.left { order: 2; } .hero-star { order: 1; width: 200px; } .hero-word.right { order: 3; }
  .hero-tag { font-size: 11px; letter-spacing: 1.5px; }
  .purpose { min-height: 0; display: block; }
  .purpose .row-bg { position: relative; height: 320px; background-size: cover; background-position: right top; }
  .purpose-copy { max-width: 100%; padding: 30px 0 20px; }
  .purpose-copy h2 { font-size: 32px; }
  .purpose-copy h5 { font-size: 17px; letter-spacing: 1px; }
  .tiles { grid-template-columns: 1fr; }
  .tile { height: auto; min-height: 220px; }
  .about-hero { min-height: 0; padding: calc(var(--header-h) + 10px) 0 30px; }
  .svc-intro { padding: 130px 0 60px; }
  .svc-section { padding: 70px 0; }
  .svc-cols, .svc-cols.three { grid-template-columns: 1fr; }
  .contact-hero { padding: 140px 0 80px; }
  .contact-hero h1.heading-title { font-size: 32px; }
  .contact-main { padding: 60px 0 40px; }
  .form { grid-template-columns: 1fr; }
  .news-slider { height: 420px; }
  .ns-tabs { display: none; }
  .ns-copy { top: 90px; right: 15px; }
  .ns-title { font-size: 18px; }
  .blog-wrap { grid-template-columns: 1fr; }
  .sidebar { padding: 0; }
  .post-entry, .post-head, .post-body, .post-share, .post-form { padding-left: 0; }
  .meta { position: static; width: auto; text-align: left; display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; }
  .meta .d { font-size: 30px; } .meta .my { border: 0; padding: 0; } .meta .by { margin: 0 0 0 auto; }
  .post-entry h2, .post-head h1 { font-size: 22px; line-height: 30px; }
  .post-nav { display: none; }
  .social-row a { margin: 0 10px; }
}
