/* ═══════════════════════════════════════════
   4Rs&P GRÁFICA — index.css
   Aesthetic: Editorial Gold × Dark Ink
═══════════════════════════════════════════ */

:root {
  --ink: #0f0a06;
  --text: #1e1409;
  --text2: #5a4030;
  --gold: #c9832a;
  --gold2: #e8a84c;
  --gold-light: #f5d8a0;
  --red: #b5272b;
  --cyan: #0097c4;
  --magenta: #d42b5a;
  --yellow: #e8ad00;
  --bg: #fffbf5;
  --bg2: #fff8ee;
  --bg3: #fef3e0;
  --card: #ffffff;
  --border: rgba(201,131,42,.14);
  --border2: rgba(201,131,42,.3);
  --radius: 16px;
  --nav-h: 70px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth }

body {
  font-family: 'DM Sans', sans-serif;
  background: var(--bg);
  color: var(--text);
  overflow-x: hidden;
  cursor: none;
}

/* ── CUSTOM CURSOR ─────────────────────────── */
.cursor {
  position: fixed;
  width: 12px; height: 12px;
  background: var(--gold);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99999;
  transform: translate(-50%, -50%);
  transition: width .15s, height .15s;
  mix-blend-mode: difference;
}
.cursor-ring {
  position: fixed;
  width: 36px; height: 36px;
  border: 1.5px solid rgba(201,131,42,.55);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99998;
  transform: translate(-50%, -50%);
  transition: width .28s, height .28s, border-color .28s, left .06s, top .06s;
}
@media(hover:none) { .cursor, .cursor-ring { display:none } body { cursor:auto } }

/* ── LOADER ────────────────────────────────── */
.loader {
  position: fixed; inset:0; z-index: 10000;
  background: var(--ink);
  display: flex; align-items:center; justify-content:center;
  transition: opacity .6s .2s, visibility .6s .2s;
}
.loader.hidden { opacity:0; visibility:hidden }
.loader-inner { text-align:center }
.loader-logo {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 4rem; color: #fff;
  letter-spacing: 4px;
  animation: loaderPulse 1.2s ease-in-out infinite;
}
.loader-logo span { color: var(--gold) }
.loader-bar {
  width: 200px; height: 3px;
  background: rgba(255,255,255,.12);
  border-radius: 3px; margin: 20px auto 16px;
  overflow: hidden;
}
.loader-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--gold), var(--gold2));
  border-radius: 3px;
  width: 0;
  transition: width .4s ease;
}
.loader-text { color: rgba(255,255,255,.5); font-size: .8rem; letter-spacing: 2px; text-transform: uppercase }

@keyframes loaderPulse {
  0%,100% { opacity:1; transform:scale(1) }
  50% { opacity:.7; transform:scale(.98) }
}

/* ── NAV ───────────────────────────────────── */
nav {
  position: fixed; top:0; left:0; right:0; z-index:500;
  height: var(--nav-h);
  display: flex; align-items:center; justify-content:space-between;
  padding: 0 5%;
  backdrop-filter: blur(24px) saturate(180%);
  background: rgba(255,251,245,.94);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 24px rgba(180,100,30,.06);
  transition: all .3s;
}
nav.scrolled {
  background: rgba(255,251,245,.98);
  box-shadow: 0 4px 32px rgba(180,100,30,.12);
}
.nav-logo {
  display: flex; align-items:center; gap:10px;
  text-decoration: none;
}
.logo-img {
  width: 42px; height: 42px; border-radius: 10px;
  object-fit: contain; background: #fff; padding: 3px;
  border: 1.5px solid rgba(201,131,42,.25);
}
.logo-text strong {
  font-family: 'Playfair Display', serif;
  font-size: 1rem; color: var(--ink); display:block;
}
.logo-text strong span { color: var(--gold) }

.nav-links { display:flex; align-items:center; gap:28px; list-style:none }
.nav-link {
  color: var(--text2); text-decoration:none;
  font-size: .85rem; font-weight: 500;
  position: relative; padding-bottom: 2px;
  transition: color .2s;
}
.nav-link::after {
  content:''; position:absolute; bottom:-2px; left:0; right:100%;
  height: 2px; background: var(--gold);
  transition: right .25s ease;
}
.nav-link:hover { color: var(--gold) }
.nav-link:hover::after { right:0 }

.nav-actions { display:flex; align-items:center; gap:10px }
.btn-nav-cta {
  display: inline-flex; align-items:center; gap:6px;
  padding: 9px 18px;
  background: linear-gradient(135deg, var(--gold), #a86020);
  border-radius: 8px; color:#fff; font-size:.82rem; font-weight:700;
  text-decoration:none; transition:all .25s;
  box-shadow: 0 4px 16px rgba(201,131,42,.28);
}
.btn-nav-cta:hover { transform:translateY(-1px); box-shadow:0 8px 24px rgba(201,131,42,.4) }

.nav-toggle {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; padding:4px; background:none; border:none;
}
.nav-toggle span {
  display:block; width:24px; height:2px;
  background: var(--gold); border-radius:2px; transition:all .3s;
}
.nav-toggle.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px) }
.nav-toggle.open span:nth-child(2) { opacity:0 }
.nav-toggle.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px) }

.nav-mobile {
  display:none; position:fixed; top:var(--nav-h); left:0; right:0; z-index:490;
  background: rgba(255,251,245,.97); backdrop-filter:blur(20px);
  border-bottom: 1px solid var(--border);
  padding: 16px 5% 22px; flex-direction:column; gap:4px;
  transform: translateY(-10px); opacity:0; transition:all .3s;
}
.nav-mobile.open { display:flex; transform:translateY(0); opacity:1 }
.nav-mobile a {
  color: var(--text2); text-decoration:none;
  font-size: .95rem; font-weight:500;
  padding: 11px 0; border-bottom: 1px solid rgba(201,131,42,.08);
  transition: color .2s, padding-left .2s;
}
.nav-mobile a:hover { color:var(--gold); padding-left:6px }
.nav-mobile .btn-nav-cta { margin-top:10px; justify-content:center }

/* ── HERO ──────────────────────────────────── */
.hero {
  min-height: 100vh;
  padding: calc(var(--nav-h) + 40px) 6% 80px;
  display: grid;
  grid-template-columns: 1fr 420px;
  grid-template-rows: 1fr auto;
  align-items: center;
  gap: 40px;
  position: relative; overflow: hidden;
}

/* BG */
.hero::before {
  content:''; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(ellipse 70% 60% at 0% 0%, rgba(201,131,42,.12) 0%, transparent 50%),
    radial-gradient(ellipse 60% 60% at 100% 100%, rgba(181,39,43,.07) 0%, transparent 50%),
    linear-gradient(160deg, #fffbf5 0%, #fff8ee 50%, #fef3e0 100%);
}

/* Particles */
.hero-particles { position:absolute; inset:0; z-index:0; pointer-events:none }
.particle {
  position:absolute; border-radius:50%;
  animation: particleFloat var(--dur, 8s) var(--delay, 0s) ease-in-out infinite;
  opacity: var(--op, .4);
  background: var(--col, rgba(201,131,42,.3));
  width: var(--s, 6px); height: var(--s, 6px);
}
@keyframes particleFloat {
  0%,100% { transform: translate(0,0) scale(1) }
  33%   { transform: translate(var(--dx1,20px), var(--dy1,-30px)) scale(1.2) }
  66%   { transform: translate(var(--dx2,-15px), var(--dy2,20px)) scale(.8) }
}

/* Shapes */
.shape {
  position:absolute; border-radius:50%; pointer-events:none; z-index:0;
}
.shape-1 {
  width:600px; height:600px; right:-200px; top:-150px;
  background: radial-gradient(circle, rgba(201,131,42,.07) 0%, transparent 70%);
  animation: shapeDrift 12s ease-in-out infinite;
}
.shape-2 {
  width:400px; height:400px; left:-150px; bottom:100px;
  background: radial-gradient(circle, rgba(181,39,43,.05) 0%, transparent 70%);
  animation: shapeDrift 15s 2s ease-in-out infinite reverse;
}
.shape-3 {
  width:200px; height:200px; right:30%; top:30%;
  border:1px dashed rgba(201,131,42,.18); border-radius:50%;
  animation: spin 25s linear infinite;
}
.shape-4 {
  width:100px; height:100px; right:20%; top:20%;
  border:1px dashed rgba(201,131,42,.1); border-radius:50%;
  animation: spin 18s linear infinite reverse;
}
@keyframes shapeDrift {
  0%,100% { transform:translate(0,0) }
  50% { transform:translate(20px,-20px) }
}
@keyframes spin {
  from { transform:rotate(0deg) }
  to { transform:rotate(360deg) }
}

.hero-content { position:relative; z-index:2 }

.hero-eyebrow {
  display:flex; align-items:center; gap:10px;
  margin-bottom:24px; overflow:hidden;
}
.eyebrow-dot {
  width:8px; height:8px; border-radius:50%;
  background: linear-gradient(135deg, var(--gold), var(--red));
  animation: eyebrowPulse 2s ease-in-out infinite;
  flex-shrink:0;
}
@keyframes eyebrowPulse {
  0%,100% { transform:scale(1); box-shadow:0 0 0 0 rgba(201,131,42,.4) }
  50% { transform:scale(1.2); box-shadow:0 0 0 6px rgba(201,131,42,0) }
}
.eyebrow-text {
  font-size:.7rem; letter-spacing:3px; text-transform:uppercase;
  color: var(--gold); font-weight:600;
  opacity:0; animation: eyebrowIn .6s .3s forwards;
}
@keyframes eyebrowIn { from{opacity:0;transform:translateX(-10px)} to{opacity:1;transform:none} }
.eyebrow-line {
  flex:1; height:1px;
  background: linear-gradient(90deg, rgba(201,131,42,.4), transparent);
  opacity:0; animation: eyebrowIn .6s .5s forwards;
}

.hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2.8rem, 5.5vw, 5.5rem);
  font-weight: 900; line-height: 1.04;
  margin-bottom: 22px;
  color: var(--ink);
  display:block;
}
.word-reveal {
  display: inline-block;
  overflow: hidden; vertical-align:bottom;
  opacity:0; transform:translateY(60px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1);
}
.word-reveal.visible { opacity:1; transform:translateY(0) }
.word-reveal:not(:last-child)::after { content:' ' }
.italic-gold {
  font-style: italic;
  background: linear-gradient(90deg, var(--gold), #e07820, var(--red));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hero-sub {
  max-width: 500px; font-size: 1rem; line-height: 1.8;
  color: var(--text2); margin-bottom:32px;
  opacity:0; transition:opacity .7s ease, transform .7s ease;
}
.hero-sub.visible { opacity:1; transform:none }

.hero-actions {
  display:flex; align-items:center; gap:14px; margin-bottom:52px; flex-wrap:wrap;
  opacity:0; transition:opacity .7s ease, transform .7s ease;
}
.hero-actions.visible { opacity:1; transform:none }

.reveal-fade {
  opacity:0; transform:translateY(20px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal-fade.visible { opacity:1; transform:none }

.btn-primary {
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; gap:8px;
  padding: 14px 28px;
  background: linear-gradient(135deg, var(--gold), #a06018);
  border-radius: 10px; color:#fff; font-size:.92rem; font-weight:700;
  text-decoration:none; transition:all .3s;
  box-shadow: 0 6px 24px rgba(201,131,42,.32);
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 12px 36px rgba(201,131,42,.44) }
.btn-primary span { position:relative; z-index:1 }
.btn-glow {
  position:absolute; inset:-50%;
  background: radial-gradient(circle, rgba(255,255,255,.2) 0%, transparent 60%);
  opacity:0; transition:opacity .3s;
}
.btn-primary:hover .btn-glow { opacity:1; animation:glowSweep .6s ease }
@keyframes glowSweep {
  from { transform:translateX(-100%) }
  to { transform:translateX(100%) }
}
.btn-large { padding:18px 38px; font-size:1rem }

.btn-outline {
  display:inline-flex; align-items:center; gap:8px;
  padding: 14px 28px;
  border:1.5px solid rgba(201,131,42,.4);
  border-radius: 10px; color:var(--gold); font-size:.92rem; font-weight:600;
  text-decoration:none; transition:all .25s; background:transparent;
}
.btn-outline:hover { background:rgba(201,131,42,.06); border-color:var(--gold); transform:translateY(-1px) }

.hero-stats {
  display:flex; align-items:center; gap:32px; flex-wrap:wrap;
}
.stat-item { text-align:left }
.stat-num {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2.8rem; color:var(--gold); line-height:1;
}
.stat-label {
  font-size: .65rem; letter-spacing:1.5px; text-transform:uppercase;
  color: var(--text2); margin-top:2px;
}
.stat-sep { width:1px; height:50px; background:rgba(201,131,42,.2) }

/* Hero Deco (right side) */















@keyframes cmykFloat {
  0%,100% { transform:translateY(0) }
  50% { transform:translateY(-8px) }
}



@keyframes scrollAnim {
  0% { transform:scaleY(0); transform-origin:top; opacity:0 }
  50% { transform:scaleY(1); transform-origin:top; opacity:1 }
  100% { transform:scaleY(0); transform-origin:bottom; opacity:0 }
}

/* ── MARQUEE ───────────────────────────────── */
.marquee-wrap {
  overflow:hidden; border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:14px 0; background:rgba(201,131,42,.04);
}
.marquee-track {
  display:flex; gap:48px;
  animation:marquee 32s linear infinite; width:max-content;
}
.marquee-item {
  display:flex; align-items:center; gap:10px;
  font-size:.7rem; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--text2); white-space:nowrap; font-weight:500;
}
.marquee-dot {
  width:6px; height:6px; background:var(--gold); border-radius:50%;
  box-shadow:0 0 6px rgba(201,131,42,.4); flex-shrink:0;
}
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── SERVICES PREVIEW ──────────────────────── */
.services-preview {
  padding: 96px 6%;
}
.sp-header { margin-bottom:56px }
.section-chip {
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 14px; border-radius:100px;
  background:rgba(201,131,42,.1); border:1px solid rgba(201,131,42,.2);
  font-size:.68rem; letter-spacing:2px; text-transform:uppercase;
  color:var(--gold); font-weight:700; margin-bottom:16px;
}
.section-title {
  font-family:'Playfair Display',serif;
  font-size:clamp(1.9rem,3.8vw,3.2rem);
  font-weight:900; line-height:1.1; color:var(--ink); margin-bottom:12px;
}
.section-title.text-center { text-align:center }
.gradient-text {
  font-style:italic;
  background:linear-gradient(90deg,var(--gold),#e07820,var(--red));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.section-sub { color:var(--text2); font-size:.95rem; line-height:1.75; max-width:520px }

/* Services Ticker */
.services-ticker-wrap {
  overflow:hidden; margin-bottom:52px; position:relative;
}
.services-ticker-wrap::before,.services-ticker-wrap::after {
  content:''; position:absolute; top:0; bottom:0; width:80px; z-index:1;
}
.services-ticker-wrap::before { left:0; background:linear-gradient(90deg,var(--bg),transparent) }
.services-ticker-wrap::after { right:0; background:linear-gradient(-90deg,var(--bg),transparent) }
.services-ticker {
  display:flex; gap:16px; width:max-content;
  animation:marquee 22s linear infinite;
}
.ticker-service {
  padding:10px 20px; background:var(--card);
  border:1px solid var(--border); border-radius:100px;
  font-size:.84rem; font-weight:500; color:var(--text2);
  text-decoration:none; white-space:nowrap;
  transition:all .2s;
}
.ticker-service:hover { border-color:var(--gold); color:var(--gold); background:rgba(201,131,42,.06) }

/* Services Cards */
.services-cards-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
}
.sc-card {
  position:relative; overflow:hidden;
  padding:28px 24px; border-radius:var(--radius);
  background:var(--card); border:1px solid var(--border);
  text-decoration:none; color:var(--text);
  transition:all .35s cubic-bezier(.23,1,.32,1);
  box-shadow:0 2px 12px rgba(180,100,30,.06);
}
.sc-card.reveal { opacity:0; transform:translateY(30px) }
.sc-card.reveal.visible { opacity:1; transform:none }
.sc-card:hover { transform:translateY(-6px); box-shadow:0 16px 48px rgba(180,100,30,.14); border-color:var(--border2) }
.sc-bg {
  position:absolute; inset:0; z-index:0;
  background:radial-gradient(ellipse at 80% 80%, rgba(201,131,42,.08) 0%, transparent 60%);
  opacity:0; transition:opacity .35s;
}
.sc-card:hover .sc-bg { opacity:1 }
.sc-icon {
  font-size:2rem; margin-bottom:14px; position:relative; z-index:1;
  animation:iconBounce 2s ease-in-out infinite;
  animation-delay:calc(var(--i) * .3s);
}
@keyframes iconBounce {
  0%,100% { transform:translateY(0) }
  50% { transform:translateY(-5px) }
}
.sc-card h3 {
  font-family:'Playfair Display',serif;
  font-size:1.1rem; font-weight:700; line-height:1.25;
  margin-bottom:8px; position:relative; z-index:1; color:var(--ink);
}
.sc-card p {
  font-size:.82rem; color:var(--text2); line-height:1.6;
  position:relative; z-index:1;
}
.sc-arrow {
  position:absolute; bottom:20px; right:20px;
  font-size:1.2rem; color:var(--gold); opacity:0;
  transition:all .3s; transform:translateX(-6px);
}
.sc-card:hover .sc-arrow { opacity:1; transform:translateX(0) }
.sc-card-cta {
  background:linear-gradient(135deg,var(--gold) 0%, #a06018 100%);
  border-color:transparent; color:#fff !important;
}
.sc-card-cta h3,.sc-card-cta p { color:rgba(255,255,255,.95) !important }
.sc-card-cta .sc-arrow { color:rgba(255,255,255,.9); opacity:1; transform:none }
.sc-card-cta:hover { transform:translateY(-6px) scale(1.02) }

/* Reveal base */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .65s ease, transform .65s cubic-bezier(.23,1,.32,1) }
.reveal.visible { opacity:1; transform:none }

/* ── WHY ───────────────────────────────────── */
.why-section {
  padding:96px 6%;
  display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:center;
  background:rgba(201,131,42,.03);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  position:relative; overflow:hidden;
}
.why-bg-text {
  position:absolute; left:-20px; top:50%; transform:translateY(-50%);
  font-family:'Bebas Neue',sans-serif; font-size:14vw;
  color:rgba(201,131,42,.04); pointer-events:none; white-space:nowrap; user-select:none;
  animation:bgTextDrift 8s ease-in-out infinite;
}
@keyframes bgTextDrift {
  0%,100% { transform:translateY(-50%) translateX(0) }
  50% { transform:translateY(-50%) translateX(20px) }
}
.why-cards { display:flex; flex-direction:column; gap:16px; margin-top:32px }
.why-card {
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 18px; border-radius:12px;
  background:var(--card); border:1px solid var(--border);
  box-shadow:0 2px 10px rgba(180,100,30,.05);
  transition:all .3s;
}
.why-card:hover {
  border-color:var(--border2); transform:translateX(4px);
  box-shadow:0 6px 24px rgba(180,100,30,.1);
}
.why-card-icon {
  width:42px; height:42px; border-radius:10px; flex-shrink:0;
  background:rgba(201,131,42,.1); border:1px solid rgba(201,131,42,.2);
  display:flex; align-items:center; justify-content:center; color:var(--gold);
}
.why-card h4 { font-size:.92rem; font-weight:700; margin-bottom:3px; color:var(--ink) }
.why-card p { font-size:.8rem; color:var(--text2); line-height:1.55 }

/* Numbers stack */
.why-numbers-stack { display:flex; flex-direction:column; gap:14px }
.wn-card {
  border-radius:16px; padding:24px; background:var(--card);
  border:1px solid var(--border); box-shadow:0 4px 20px rgba(180,100,30,.07);
  transition:transform .3s, box-shadow .3s;
}
.wn-card:hover { transform:translateY(-3px); box-shadow:0 12px 40px rgba(180,100,30,.12) }
.wn-big { padding:32px }
.wn-row { display:flex; gap:14px }
.wn-small { flex:1 }
.wn-accent {
  background:linear-gradient(135deg,var(--gold),#a06018);
  border-color:transparent;
}
.wn-num {
  font-family:'Bebas Neue',sans-serif;
  font-size:3.2rem; color:var(--gold); line-height:1;
}
.wn-big .wn-num { font-size:4.5rem }
.wn-accent .wn-num { color:#fff }
.wn-label { font-size:.75rem; color:var(--text2); margin-top:4px; line-height:1.4 }
.wn-accent .wn-label { color:rgba(255,255,255,.85) }
.wn-quote { background:var(--ink); border-color:transparent }
.quote-marks {
  font-family:'Playfair Display',serif; font-size:3rem;
  color:var(--gold); line-height:.8; margin-bottom:6px;
}
.wn-quote p { color:rgba(255,255,255,.85); font-size:.9rem; line-height:1.6; font-style:italic }
.quote-sig { font-size:.72rem; color:var(--gold); margin-top:10px; letter-spacing:1px }

/* ── PROCESS ───────────────────────────────── */
.process-section { padding:96px 6%; text-align:center }
.process-steps {
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:60px; position:relative;
}
.process-step {
  background:var(--card); border:1px solid var(--border); border-radius:16px;
  padding:32px 24px; position:relative; text-align:left;
  box-shadow:0 2px 12px rgba(180,100,30,.06);
  transition:all .35s;
}
.process-step:hover {
  border-color:var(--border2); transform:translateY(-6px);
  box-shadow:0 16px 48px rgba(180,100,30,.13);
}
.ps-num {
  font-family:'Bebas Neue',sans-serif; font-size:4rem; line-height:1;
  color:rgba(201,131,42,.12); position:absolute; top:16px; right:20px;
}
.ps-icon { font-size:1.8rem; margin-bottom:16px; display:block }
.process-step h3 {
  font-family:'Playfair Display',serif; font-size:1.05rem; font-weight:700;
  color:var(--ink); margin-bottom:8px;
}
.process-step p { font-size:.82rem; color:var(--text2); line-height:1.6 }
.ps-line {
  position:absolute; top:50%; right:-25px; width:26px; height:2px;
  background:linear-gradient(90deg, var(--gold), transparent); z-index:1;
}

/* ── CTA BANNER ────────────────────────────── */
.cta-banner {
  margin:0 6% 96px; border-radius:24px; overflow:hidden;
  position:relative; padding:80px 8%;
  background:linear-gradient(135deg, var(--ink) 0%, #2a1408 100%);
  text-align:center;
}
.cta-bg-anim { position:absolute; inset:0; pointer-events:none }
.cta-circle {
  position:absolute; border-radius:50%; opacity:.3;
}
.cta-circle.c1 {
  width:400px; height:400px; left:-100px; top:-100px;
  background:radial-gradient(circle, rgba(201,131,42,.3) 0%, transparent 60%);
  animation:ctaOrb 8s ease-in-out infinite;
}
.cta-circle.c2 {
  width:300px; height:300px; right:-80px; bottom:-80px;
  background:radial-gradient(circle, rgba(181,39,43,.3) 0%, transparent 60%);
  animation:ctaOrb 10s 2s ease-in-out infinite reverse;
}
.cta-circle.c3 {
  width:200px; height:200px; left:50%; top:50%; transform:translate(-50%,-50%);
  border:1px dashed rgba(201,131,42,.2); border-radius:50%;
  animation:spin 20s linear infinite;
  opacity:.5;
}
@keyframes ctaOrb {
  0%,100% { transform:scale(1) translate(0,0) }
  50% { transform:scale(1.1) translate(10px,-10px) }
}
.cta-content { position:relative; z-index:1 }
.cta-chip {
  display:inline-block; padding:6px 16px; border-radius:100px;
  border:1px solid rgba(201,131,42,.4); color:var(--gold-light);
  font-size:.68rem; letter-spacing:3px; text-transform:uppercase; font-weight:700;
  margin-bottom:24px;
}
.cta-title {
  font-family:'Playfair Display',serif;
  font-size:clamp(2rem,4.5vw,3.8rem);
  font-weight:900; color:#fff; line-height:1.1; margin-bottom:16px;
}
.cta-title .italic-gold { font-style:italic }
.cta-banner>div>p { color:rgba(255,255,255,.65); margin-bottom:36px; font-size:.95rem }

/* ── FOOTER ────────────────────────────────── */
footer {
  border-top:2px solid var(--border);
  background:linear-gradient(180deg, rgba(255,248,238,.6), var(--bg3));
  padding:60px 6% 24px;
}
.footer-inner {
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px;
}
.footer-brand .footer-logo {
  display:flex; align-items:center; gap:10px;
  text-decoration:none; margin-bottom:12px;
}
.footer-brand .footer-logo strong {
  font-family:'Playfair Display',serif; font-size:1rem; color:var(--ink);
}
.footer-brand p { font-size:.82rem; color:var(--text2); line-height:1.7 }
.footer-nav h4,.footer-cta-col h4 {
  font-size:.64rem; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--gold); font-weight:700; margin-bottom:16px;
}
.footer-nav ul { list-style:none; display:flex; flex-direction:column; gap:8px }
.footer-nav ul li a {
  color:var(--text2); text-decoration:none; font-size:.83rem; transition:color .2s;
}
.footer-nav ul li a:hover { color:var(--gold) }
.footer-cta-col p { font-size:.82rem; color:var(--text2); line-height:1.7; margin-bottom:16px }
.footer-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:10px 18px; border-radius:8px;
  background:rgba(201,131,42,.1); border:1px solid rgba(201,131,42,.25);
  color:var(--gold); font-size:.82rem; font-weight:700;
  text-decoration:none; transition:all .2s;
}
.footer-btn:hover { background:rgba(201,131,42,.18) }
.footer-bottom {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:20px; border-top:1px solid var(--border);
  flex-wrap:wrap; gap:10px;
}
.footer-bottom p { font-size:.76rem; color:var(--text2) }
.footer-dots { display:flex; gap:6px; align-items:center }
.fd {
  width:10px; height:10px; border-radius:50%;
  animation:fdPulse 2s ease-in-out infinite;
}
.fd.c { background:var(--cyan); animation-delay:0s }
.fd.m { background:var(--magenta); animation-delay:.4s }
.fd.y { background:var(--yellow); animation-delay:.8s }
.fd.k { background:#555; animation-delay:1.2s }
@keyframes fdPulse {
  0%,100% { transform:scale(1); opacity:.7 }
  50% { transform:scale(1.3); opacity:1 }
}

/* ── RESPONSIVE ────────────────────────────── */
@media(max-width:1100px) {
  .hero { grid-template-columns:1fr; }
  
  .services-cards-grid { grid-template-columns:repeat(2,1fr) }
  .process-steps { grid-template-columns:repeat(2,1fr) }
  .ps-line { display:none }
  .why-section { grid-template-columns:1fr }
  .footer-inner { grid-template-columns:1fr 1fr }
}
@media(max-width:768px) {
  .nav-links { display:none }
  .nav-toggle { display:flex }
  .hero { padding-top:calc(var(--nav-h) + 24px) }
  .services-cards-grid { grid-template-columns:1fr }
  .process-steps { grid-template-columns:1fr }
  .cta-banner { margin:0 5% 64px; padding:60px 6% }
  .footer-inner { grid-template-columns:1fr }
}
@media(max-width:480px) {
  .hero-stats { gap:16px }
  .stat-sep { display:none }
  
  .hero-actions { flex-direction:column; align-items:flex-start }
  .btn-primary, .btn-outline { width:100%; justify-content:center }
}
/* ── HERO SPIN DECO ─────────────────────────── */
.hero-spin-deco {
  position:absolute;
  right: 8%;
  top: 50%;
  transform: translateY(-50%);
  width: 260px;
  height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.spin-ring {
  position: absolute;
  width: 100%;
  height: 100%;
  animation: spinRing 18s linear infinite;
}
@keyframes spinRing {
  from { transform: rotate(0deg) }
  to   { transform: rotate(360deg) }
}
.spin-logo-center {
  position: absolute;
  width: 130px;
  height: 130px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0a0a0f;
  box-shadow: 0 0 30px rgba(201,131,42,.25), 0 0 60px rgba(181,39,43,.12);
  animation: spinRing 12s linear infinite;
  z-index: 2;
}
.spin-logo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.logo-colors-orbit {
  position: absolute;
  width: 100%;
  height: 100%;
  animation: spinRing 10s linear infinite reverse;
}
.orb-dot {
  position: absolute;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform-origin: 0 0;
}
.orb-gold    { background: #c9832a; box-shadow: 0 0 10px #c9832a88; transform: rotate(0deg)   translateX(88px) translateY(-7px); }
.orb-red     { background: #b5272b; box-shadow: 0 0 10px #b5272b88; transform: rotate(90deg)  translateX(88px) translateY(-7px); }
.orb-cyan    { background: #0097c4; box-shadow: 0 0 10px #0097c488; transform: rotate(180deg) translateX(88px) translateY(-7px); }
.orb-magenta { background: #d42b5a; box-shadow: 0 0 10px #d42b5a88; transform: rotate(270deg) translateX(88px) translateY(-7px); }

@media(max-width:900px) {
  .hero-spin-deco { display:none }
}