/* Innovity – bold agency styling. Colors/fonts come from theme.json. */
:root { --iv-radius: 28px; --iv-ease: cubic-bezier(.2,.7,.2,1); }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }

/* Header */
.iv-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--wp--preset--color--paper) 85%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(10,10,18,.08); padding-inline: var(--wp--preset--spacing--40); }
.iv-logo a { text-decoration: none; color: inherit; letter-spacing: -.04em; }
.iv-header .wp-block-navigation a { text-decoration: none; font-weight: 500; }
.iv-header .wp-block-navigation a:hover { color: var(--wp--preset--color--blue); }
@media (max-width: 781px) { .iv-header-cta { display: none; } }

/* Buttons */
.wp-block-button__link { transition: transform .25s var(--iv-ease), box-shadow .25s var(--iv-ease); }
.wp-block-button__link:hover { transform: translateY(-3px) rotate(-1deg); box-shadow: 0 10px 0 rgba(10,10,18,.9); }
.is-style-outline .wp-block-button__link { background: transparent; border: 2px solid currentColor; }

/* Hero */
.iv-hero { position: relative; overflow: hidden; min-height: 92vh; display: flex; align-items: center; }
.iv-hero h1 { max-width: 12ch; }
.iv-hero .iv-accent { color: var(--wp--preset--color--lime); }
.iv-hero::after { content: ""; position: absolute; right: -12vw; top: 8vh; width: 46vw; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--wp--preset--color--blue), transparent 65%); opacity: .7; filter: blur(10px);
  animation: iv-float 12s ease-in-out infinite alternate; pointer-events: none; }
.iv-eyebrow { font-family: var(--wp--preset--font-family--display); text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; font-weight: 600; }
@keyframes iv-float { to { transform: translate(-6vw, 6vh) scale(1.15); } }

/* Marquee */
.iv-marquee { overflow: hidden; white-space: nowrap; padding-block: 1.1rem; background: var(--wp--preset--color--lime); color: var(--wp--preset--color--ink); }
.iv-marquee p { display: inline-block; margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: clamp(1.4rem, 3vw, 2.4rem); animation: iv-scroll 28s linear infinite; }
@keyframes iv-scroll { to { transform: translateX(-50%); } }

/* Cards / services */
.iv-card { background: var(--wp--preset--color--white); border-radius: var(--iv-radius); border: 1px solid rgba(10,10,18,.08); transition: transform .35s var(--iv-ease), box-shadow .35s var(--iv-ease); height: 100%; }
.iv-card:hover { transform: translateY(-6px); box-shadow: 0 18px 0 -6px var(--wp--preset--color--blue); }
.iv-card h3 { margin-top: 0; }
.iv-num { font-family: var(--wp--preset--font-family--display); font-weight: 700; color: var(--wp--preset--color--blue); font-size: 1rem; margin: 0; }
.iv-card .wp-block-post-featured-image img { border-radius: 18px; }

/* Stats */
.iv-stat-num { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: clamp(3.5rem, 8vw, 7rem); line-height: 1; margin: 0; color: var(--wp--preset--color--lime); letter-spacing: -.04em; }

/* Process */
.iv-step { border-top: 3px solid var(--wp--preset--color--ink); padding-top: 1rem; }

/* Portfolio tiles */
.iv-tile { border-radius: var(--iv-radius); min-height: 340px; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.75rem; overflow: hidden; position: relative; transition: transform .4s var(--iv-ease); }
.iv-tile:hover { transform: scale(1.02) rotate(-.6deg); }
.iv-tile h3, .iv-tile p { margin: 0; }

/* Footer */
.iv-footer a { color: var(--wp--preset--color--lime); text-decoration: none; }
.iv-footer a:hover { text-decoration: underline; }
.iv-footer-big { line-height: .9; margin-bottom: 3rem; }

/* Contact form (shortcode from Innovity Content plugin) */
.iv-form { display: grid; gap: 1rem; max-width: 640px; }
.iv-form label { display: grid; gap: .35rem; font-weight: 600; font-size: .9rem; }
.iv-form input, .iv-form textarea { font: inherit; padding: .9rem 1rem; border-radius: 14px; border: 2px solid rgba(10,10,18,.15); background: #fff; }
.iv-form input:focus, .iv-form textarea:focus { outline: none; border-color: var(--wp--preset--color--blue); }
.iv-form button { justify-self: start; font: 700 1rem var(--wp--preset--font-family--display); padding: .95rem 1.8rem; border: 0; border-radius: 999px; background: var(--wp--preset--color--lime); cursor: pointer; }
.iv-hp { position: absolute; left: -9999px; }
.iv-notice { padding: 1rem 1.25rem; border-radius: 14px; background: var(--wp--preset--color--lime); font-weight: 600; }
.iv-notice.is-error { background: var(--wp--preset--color--coral); color: #fff; }

/* Reveal on scroll */
.js .iv-reveal { opacity: 0; transform: translateY(32px); transition: opacity .8s var(--iv-ease), transform .8s var(--iv-ease); }
.js .iv-reveal.is-in { opacity: 1; transform: none; }

/* Focus + motion accessibility */
:focus-visible { outline: 3px solid var(--wp--preset--color--blue); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .iv-hero::after, .iv-marquee p { animation: none; }
  .js .iv-reveal { opacity: 1; transform: none; transition: none; }
  .wp-block-button__link:hover, .iv-card:hover, .iv-tile:hover { transform: none; }
}

/* Left-aligned text on one axis inside full-bleed sections */
.is-layout-constrained > p.has-lead-font-size { margin-left: 0 !important; max-width: 52ch; }
.iv-hero h1 { margin-left: 0 !important; }
.iv-hero > .wp-block-group { width: 100%; max-width: 1240px; margin-inline: auto; }
