/* ================================================================
   KRATĒ MEDIA - SHARED STYLESHEET
   Design system: strictly red / white / black, matched to the
   logo mark. Bricolage Grotesque display + Fraunces italic accent + Inter body.
   Signature: rotating seal (echoes the CAC certificate stamp) +
   the company's own A-K charter lettering used to structure the
   service pillars on services.html.
================================================================= */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root{
  --bg:        #070707;
  --bg-alt:    #0c0c0d;
  --panel:     #0f0f10;
  --ink:       #f6f4ef;
  --muted:     #96959c;
  --faint:     #504f57;
  --line:      #1d1d1f;
  --line2:     #2a2a2d;
  --red:       #cc0000;
  --red-hi:    #e60000;
  --red-deep:  #8c0000;
  --red-rgb:   204,0,0;
  /* legacy names kept so component rules below don't need touching -
     both now resolve to pure brand red, matching the logo exactly */
  --brass:     var(--red);
  --brass-dim: var(--red);
  --serif:     'Fraunces', Georgia, serif;
  --display:   'Bricolage Grotesque', 'Inter', sans-serif;
  --sans:      'Inter', system-ui, -apple-system, sans-serif;
}

html{ scroll-behavior: smooth; overflow-x: hidden; }
body{
  font-family: var(--sans);
  background: var(--bg);
  color: var(--ink);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  opacity: 0;
  animation: page-in .6s ease forwards;
  position: relative;
}
@keyframes page-in{ from{ opacity:0; } to{ opacity:1; } }

/* Faint film-grain texture over the whole site - pure black/white noise,
   no hue added, just a bit of tactile depth for the dark canvas. */
body::before{
  content:''; position:fixed; inset:0; z-index:2; pointer-events:none;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

a{ text-decoration:none; color:inherit; }
img{ display:block; max-width:100%; }
ul{ list-style:none; }
button{ font-family:inherit; cursor:pointer; }
::selection{ background: var(--red); color:#fff; }

/* Scroll progress bar */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0%; background:var(--red); z-index:999; transition:width .1s linear; box-shadow:0 0 8px rgba(var(--red-rgb),.7); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
  body{ opacity:1; animation:none; }
}

/* ── UTILITIES ─────────────────────────────────────────────── */
.wrap{ max-width:1320px; margin:0 auto; padding:0 80px; }
.eyebrow{
  font-family: var(--serif); font-style: italic; font-weight: 500;
  font-size: 14px; color: var(--brass); letter-spacing: 0.02em;
  display:flex; align-items:center; gap:12px; margin-bottom:22px;
}
.eyebrow::before{ content:''; width:28px; height:1px; background: var(--brass-dim); display:inline-block; }
.eyebrow.center{ justify-content:center; }
.h-display{
  font-family: var(--display); text-transform:uppercase;
  letter-spacing: -0.02em; line-height: 0.98; font-weight:700;
}
.outline{ -webkit-text-stroke: 1.5px var(--line2); color: transparent; }
.hl{ color: var(--red); }
.hl-brass{ color: var(--brass); }
.section-title{ font-size: clamp(2.3rem, 5vw, 4.4rem); }
.section-head{ max-width: 760px; margin-bottom: 64px; }
.section-lede{ font-family: var(--serif); font-style: italic; font-size: 1.25rem; line-height:1.6; color: var(--muted); margin-top:20px; max-width:620px; }

.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding: 17px 34px; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.24em;
  border-radius: 2px; transition: all 0.3s ease; white-space:nowrap;
  position:relative; overflow:hidden;
}
.btn::after{ content:''; position:absolute; inset:0; background:rgba(255,255,255,.18); transform:translateX(-105%); transition:transform .45s ease; }
.btn:hover::after{ transform:translateX(105%); }
.btn-primary{ background: var(--red); color:#fff; border:1px solid var(--red); }
.btn-primary:hover{ background: var(--red-hi); border-color: var(--red-hi); transform: translateY(-2px); box-shadow:0 10px 24px -8px rgba(var(--red-rgb),.55); }
.btn-ghost{ border:1px solid var(--line2); color: var(--ink); }
.btn-ghost:hover{ border-color: var(--red); color: var(--red); transform: translateY(-2px); }
/* Third button variant - solid white, inverts to solid red on hover.
   Keeps the palette to red / white / black only. */
.btn-brass{ background:#fff; color:#0a0a0a; border:1px solid #fff; }
.btn-brass:hover{ background:var(--red); color:#fff; border-color:var(--red); transform: translateY(-2px); box-shadow:0 10px 24px -8px rgba(var(--red-rgb),.55); }

.fade-up{ opacity:0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.fade-up.visible{ opacity:1; transform:none; }
.delay-1{ transition-delay:.1s; } .delay-2{ transition-delay:.2s; } .delay-3{ transition-delay:.3s; } .delay-4{ transition-delay:.4s; }

/* Tilt-on-hover utility, applied via JS to portfolio cards */
.tilt-card{ transform-style:preserve-3d; will-change:transform; transition:transform .15s ease-out, filter .3s ease; }

/* ── NAV ───────────────────────────────────────────────────── */
header.site-nav{
  position: fixed; top:0; left:0; width:100%; z-index: 200;
  padding: 26px 80px; display:flex; align-items:center; justify-content:space-between;
  background: linear-gradient(to bottom, rgba(7,7,7,.94), transparent);
  transition: all .35s ease;
}
header.site-nav.scrolled{
  padding: 15px 80px; background: rgba(7,7,7,.93);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--line);
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand-logo{ height:34px; width:auto; display:block; }
.brand-sub{ font-size:8px; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); display:block; margin-top:4px; }

.nav-links{ display:flex; gap:38px; align-items:center; }
.nav-links a:not(.nav-cta){ font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.28em; color: rgba(246,244,239,.55); transition: color .2s; position:relative; padding-bottom:4px; }
.nav-links a:not(.nav-cta)::after{ content:''; position:absolute; left:0; bottom:0; width:100%; height:1px; background:var(--red); transform:scaleX(0); transform-origin:right; transition:transform .3s ease; }
.nav-links a:not(.nav-cta):hover::after, .nav-links a.active::after{ transform:scaleX(1); transform-origin:left; }
.nav-links a:hover{ color:#fff; }
.nav-links a.active{ color: var(--red); }
.nav-cta{ padding:11px 22px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.28em; border:1px solid var(--red); color: var(--red); transition: all .3s; border-radius:2px; }
.nav-cta:hover{ background: var(--red); color:#fff; }
.nav-toggle{ display:none; background:none; border:none; color: var(--red); font-size:10px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }

.mobile-menu{ display:none; position:fixed; inset:0; z-index:199; background: var(--bg); flex-direction:column; align-items:center; justify-content:center; gap:22px; }
.mobile-menu.open{ display:flex; }
.mobile-menu a{ font-family:var(--display); font-size: clamp(2rem,9vw,3.4rem); text-transform:uppercase; letter-spacing:0; color: rgba(246,244,239,.85); }
.mobile-menu a.active, .mobile-menu a:hover{ color: var(--red); }
.mobile-cta{ margin-top:10px; padding:16px 38px; background:var(--red); color:#fff; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.3em; border-radius:2px; }

@media (max-width: 980px){
  header.site-nav, header.site-nav.scrolled{ padding: 20px 24px; }
  .nav-links{ display:none; }
  .nav-toggle{ display:block; }
  .wrap{ padding: 0 24px; }
}

/* ── SEAL (signature element) ─────────────────────────────── */
.seal{ position:relative; width:150px; height:150px; flex-shrink:0; }
.seal svg{ width:100%; height:100%; animation: spin 26s linear infinite; }
.seal .seal-core{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--display); color:var(--ink); font-size:11px; letter-spacing:.02em; text-align:center; }
@keyframes spin{ to{ transform: rotate(360deg); } }

/* ── MARQUEE ───────────────────────────────────────────────── */
.marquee{ overflow:hidden; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background: var(--bg-alt); }
.marquee-track{ display:flex; width:max-content; animation: scroll-x 30s linear infinite; }
.marquee-item{ display:flex; align-items:center; gap:22px; padding-right:22px; white-space:nowrap; }
.marquee-item span{ font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.35em; color: var(--muted); }
.marquee-item .dot{ color: var(--red); font-size:.9rem; }
@keyframes scroll-x{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ── FOOTER ────────────────────────────────────────────────── */
footer{ padding: 120px 80px 0; border-top:1px solid var(--line); }
.footer-cta{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:36px; padding-bottom:90px; border-bottom:1px solid var(--line); max-width:1320px; margin:0 auto; }
.footer-cta h2{ font-family:var(--display); text-transform:uppercase; font-size: clamp(2.2rem,6vw,4.6rem); line-height:.95; }
.footer-cta h2 span{ color: var(--red); }
.footer-cta-eyebrow{ font-family:var(--serif); font-style:italic; color:var(--brass); font-size:1.05rem; margin-bottom:16px; }
.footer-btns{ display:flex; gap:14px; flex-wrap:wrap; }
.footer-grid{ max-width:1320px; margin:0 auto; padding:70px 0; display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:40px; border-bottom:1px solid var(--line); }
.footer-brand-word{ font-family:var(--display); font-size:1.6rem; text-transform:uppercase; }
.footer-brand-word span{ color:var(--red); }
.footer-logo{ height:40px; width:auto; margin-bottom:18px; }
.footer-sub{ color:var(--muted); font-size:13px; line-height:1.9; margin-top:16px; max-width:260px; }
.footer-col h4{ font-size:10px; text-transform:uppercase; letter-spacing:.28em; color: var(--brass); margin-bottom:20px; }
.footer-col ul{ display:flex; flex-direction:column; gap:11px; }
.footer-col a{ font-size:13.5px; color: rgba(246,244,239,.65); transition:color .2s; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{ max-width:1320px; margin:0 auto; padding:26px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:11px; color: var(--faint); text-transform:uppercase; letter-spacing:.15em; }

@media (max-width: 980px){
  footer{ padding: 90px 24px 0; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px){
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-cta{ flex-direction:column; align-items:flex-start; }
}

/* ── PAGE HERO (inner pages) ──────────────────────────────── */
.page-hero{ padding:190px 0 80px; border-bottom:1px solid var(--line); position:relative; overflow:hidden; }
.page-hero h1{ font-family:var(--display); text-transform:uppercase; line-height:.9; font-size: clamp(3rem, 10vw, 8rem); }
.page-kicker{ font-family:var(--serif); font-style:italic; color:var(--muted); font-size:clamp(1rem,1.6vw,1.3rem); max-width:640px; margin-top:28px; line-height:1.7; }
.page-kicker strong{ color:#fff; font-style:normal; }

@media (max-width: 980px){ .page-hero{ padding: 150px 0 60px; } }

/* ── PORTFOLIO LIGHTBOX (in-site Behance preview) ─────────── */
.lightbox-overlay{
  position:fixed; inset:0; z-index:500; display:flex; align-items:center; justify-content:center;
  background:rgba(4,4,4,.92); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility 0s linear .3s; padding:40px;
}
.lightbox-overlay.open{ opacity:1; visibility:visible; transition:opacity .3s ease, visibility 0s; }
.lightbox-box{
  position:relative; width:100%; max-width:920px; max-height:88vh; overflow:auto;
  background:var(--panel); border:1px solid var(--line2); border-radius:4px;
  transform:scale(.94) translateY(14px); transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.lightbox-overlay.open .lightbox-box{ transform:scale(1) translateY(0); }
.lightbox-img-wrap{ width:100%; background:#000; }
.lightbox-img-wrap img{ width:100%; height:auto; display:block; filter:none; }
.lightbox-body{ padding:32px 36px 36px; }
.lightbox-cat{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--red); margin-bottom:10px; }
.lightbox-title{ font-family:var(--display); text-transform:uppercase; font-size:clamp(1.4rem,3vw,2rem); line-height:1.1; margin-bottom:22px; }
.lightbox-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.lightbox-close{
  position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%;
  background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.25); color:#fff; font-size:16px;
  display:flex; align-items:center; justify-content:center; transition:all .25s; z-index:2;
}
.lightbox-close:hover{ background:var(--red); border-color:var(--red); transform:rotate(90deg); }
@media (max-width:640px){ .lightbox-body{ padding:24px 22px 28px; } }
