/* ------------------------------------------------------------------
   RelentlessCTO - polish layer
   Loaded after site.css. Tightens vertical rhythm and adds visual
   accents without touching the compiled Tailwind utilities.
   ------------------------------------------------------------------ */

:root {
  --rc-blue: #1d4ed8;
  --rc-blue-deep: #1e3a8a;
  --rc-teal: #0d9488;
  --rc-gold: #f9ba00;
  --rc-section-y: 3.25rem;
  --rc-section-y-sm: 2.25rem;
}

html { scroll-behavior: smooth; scroll-padding-top: 4.5rem; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* ---------- Vertical rhythm: trim the generous Tailwind spacing ---------- */
section.py-20 { padding-top: var(--rc-section-y-sm); padding-bottom: var(--rc-section-y-sm); }
section.py-12 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
section .text-center.mb-16 { margin-bottom: 2rem; }
section .mb-12 { margin-bottom: 2rem; }
section .mt-16 { margin-top: 2rem; }
section .mt-12 { margin-top: 1.75rem; }
section .gap-12 { gap: 2rem; }
section h2.mb-6 { margin-bottom: 1rem; }
section .text-center > p.text-xl { margin-bottom: 0.75rem; }
@media (min-width: 768px) {
  section.py-20 { padding-top: var(--rc-section-y); padding-bottom: var(--rc-section-y); }
}

/* ---------- Section headings: gradient accent bar ---------- */
section h2 { position: relative; letter-spacing: -0.01em; }
section .text-center > h2::after {
  content: ""; display: block; width: 4.5rem; height: 4px; margin: 0.9rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--rc-blue) 0%, var(--rc-teal) 60%, var(--rc-gold) 100%);
}
section h2 em.font-serif { color: var(--rc-blue); }
section.text-white h2 em.font-serif, #home h1 em.font-serif { color: inherit; }

/* ---------- Hero: shorter, punchier ---------- */
#home .max-w-7xl { padding-top: 2rem !important; padding-bottom: 2.5rem !important; }
@media (min-width: 1024px) {
  #home .max-w-7xl { padding-top: 2.75rem !important; padding-bottom: 3rem !important; }
}
#home h1 { margin-bottom: 1rem; line-height: 1.08; }
#home h1 u { text-decoration-color: var(--rc-gold); text-underline-offset: 6px; text-decoration-thickness: 3px; }
#home h1 .text-yellow-400 {
  background: linear-gradient(90deg, #fde047, #f9ba00 50%, #fbbf24);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
#home p.mb-4 { margin-bottom: 0.5rem; }
#home p.mb-12 { margin-bottom: 1.75rem; font-size: 1.1rem; line-height: 1.6; }
@media (min-width: 768px) { #home p.mb-12 { font-size: 1.25rem; } }
#home .grid.mb-12 { margin-bottom: 1.75rem; gap: 1.25rem; }
#home .grid.mb-12 > div {
  padding: 1.1rem 0.9rem; border-radius: 1rem;
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(4px); transition: transform .25s ease, background .25s ease, border-color .25s ease;
}
#home .grid.mb-12 > div:hover { transform: translateY(-4px); background: rgba(255,255,255,0.11); border-color: rgba(249,186,0,0.55); }
#home .grid.mb-12 .rounded-full { margin-bottom: 0.75rem; padding: 0.85rem; box-shadow: 0 8px 24px rgba(249,186,0,0.35); }
#home .grid.mb-12 h3 { font-size: 1.05rem; margin-bottom: 0.35rem; }
#home .grid.mb-12 p { margin-bottom: 0.25rem; }
#home .backdrop-blur-sm.mb-12 { margin-bottom: 1.75rem; padding: 1rem 1.25rem; border: 1px solid rgba(255,255,255,0.15); }
#home .backdrop-blur-sm .text-2xl { font-size: 1.6rem; }

/* animated glow orbs behind the hero */
#home::before, #home::after {
  content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 1;
  filter: blur(70px); opacity: 0.55; animation: rc-float 14s ease-in-out infinite alternate;
}
#home::before { width: 32rem; height: 32rem; left: -10rem; top: -8rem; background: radial-gradient(circle, #38bdf8, transparent 65%); }
#home::after  { width: 28rem; height: 28rem; right: -8rem; bottom: -6rem; background: radial-gradient(circle, #f9ba00, transparent 65%); animation-delay: -6s; opacity: 0.35; }
@keyframes rc-float { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(2rem,1.5rem,0) scale(1.12); } }

/* ---------- Buttons ---------- */
a.bg-teal-600, button.bg-teal-600 {
  background-image: linear-gradient(135deg, #14b8a6, #0d9488 55%, #0f766e);
  box-shadow: 0 6px 18px rgba(13,148,136,0.28);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
a.bg-teal-600:hover, button.bg-teal-600:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(13,148,136,0.38); filter: brightness(1.05); }
#home a[href="#contact"] {
  background-image: linear-gradient(135deg, #ffd34d, #f9ba00 60%, #f59e0b);
  box-shadow: 0 8px 26px rgba(249,186,0,0.45); transition: transform .2s ease, box-shadow .2s ease;
}
#home a[href="#contact"]:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 12px 34px rgba(249,186,0,0.6); }

/* ---------- Cards: consistent hover lift ---------- */
section .rounded-xl.shadow-lg, section .rounded-xl.shadow-md, section .rounded-lg.shadow-sm,
section .rounded-xl.border, section .rounded-2xl {
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
section .rounded-xl.shadow-lg:hover, section .rounded-xl.shadow-md:hover, section .rounded-xl.border:hover {
  transform: translateY(-4px); box-shadow: 0 18px 40px -12px rgba(30,58,138,0.25);
}
section .rounded-lg.shadow-sm:hover { border-color: rgba(29,78,216,0.35); }

/* ---------- Header: subtle shadow once scrolled ---------- */
header { transition: box-shadow .25s ease, background-color .25s ease; }
header.rc-scrolled { box-shadow: 0 6px 24px -10px rgba(15,23,42,0.35); background-color: rgba(255,255,255,0.92); }
header nav a[href^="#"]:not(.bg-teal-600) { position: relative; }
header nav a[href^="#"]:not(.bg-teal-600)::after {
  content: ""; position: absolute; left: 0.75rem; right: 0.75rem; bottom: 0.35rem; height: 2px;
  background: linear-gradient(90deg, var(--rc-blue), var(--rc-teal)); border-radius: 2px;
  transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
header nav a[href^="#"]:not(.bg-teal-600):hover::after { transform: scaleX(1); }

/* ---------- Scroll reveal ---------- */
.rc-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.rc-reveal.rc-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .rc-reveal { opacity: 1; transform: none; transition: none; }
  #home::before, #home::after { animation: none; }
  html { scroll-behavior: auto; }
}

/* ---------- Footer / contact tidy ---------- */
footer, section#contact { padding-top: 2.5rem; }

/* ---------- Mobile: two-up pillars and tighter credibility bar ---------- */
@media (max-width: 767px) {
  #home .grid.mb-12 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
  #home .grid.mb-12 > div { padding: 0.9rem 0.6rem; }
  #home .grid.mb-12 h3 { font-size: 0.95rem; }
  #home .grid.mb-12 p.font-semibold { font-size: 0.85rem; }
  #home .grid.mb-12 p.text-sm { font-size: 0.78rem; }
  #home .backdrop-blur-sm .text-2xl { font-size: 1.3rem; }
  #home h1 { font-size: 2rem; }
}
