/* ═══════════════════════════════════════════════
   EELE THE WAY FORWARD
   Theme: Pure White + Pastel Palette
   Lavender · Rose · Sky · Mint · Amber
   ═══════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Rubik:ital,wght@0,700;0,800;0,900;1,700&display=swap');

:root {
  /* ── Base ────────────────────────────────────── */
  --white:     #ffffff;
  --off-white: #fafafa;
  --ink:       #1e1b4b;       /* deep violet-ink for text */
  --ink-soft:  #4c4875;
  --ink-mute:  #8b85aa;
  --border:    #ede8ff;

  /* ── Pastel Palette ──────────────────────────── */
  --lav:       #7c3aed;       /* lavender accent      */
  --lav-soft:  #a78bfa;
  --lav-pale:  #ede9fe;       /* lavender bg tint     */
  --lav-xpale: #f5f3ff;

  --rose:      #ec4899;       /* rose/pink accent     */
  --rose-pale: #fce7f3;
  --rose-xpale:#fff0f9;

  --sky:       #0ea5e9;       /* sky blue accent      */
  --sky-pale:  #e0f2fe;
  --sky-xpale: #f0f9ff;

  --mint:      #10b981;       /* mint/emerald accent  */
  --mint-pale: #d1fae5;
  --mint-xpale:#ecfdf5;

  --amber:     #f59e0b;       /* warm amber accent    */
  --amber-pale:#fef3c7;
  --amber-xpale:#fffbeb;

  --peach:     #fb923c;       /* peach accent         */
  --peach-pale:#ffedd5;

  /* ── Shadows & Radii ─────────────────────────── */
  --radius-sm:   8px;
  --radius-md:   16px;
  --radius-lg:   24px;
  --radius-xl:   32px;
  --radius-full: 9999px;

  --shadow-xs:  0 1px 4px rgba(124,58,237,.08);
  --shadow-sm:  0 4px 16px rgba(124,58,237,.1);
  --shadow-md:  0 8px 32px rgba(124,58,237,.12);
  --shadow-lg:  0 20px 60px rgba(124,58,237,.14);

  --t-fast: .2s ease;
  --t-mid:  .35s ease;
}

/* ── RESET ───────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: 'Outfit', sans-serif;
  background: var(--white);
  color: var(--ink-soft);
  overflow-x: hidden;
  cursor: none;
}
img { max-width:100%; display:block; }
a   { text-decoration:none; color:inherit; }
ul  { list-style:none; }
button { cursor:none; font-family:inherit; border:none; background:none; }

/* ── CURSOR ──────────────────────────────────── */
.cursor-glow {
  position:fixed; top:0; left:0;
  width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(167,139,250,.25) 0%, transparent 70%);
  pointer-events:none;
  transform:translate(-50%,-50%);
  z-index:9998; mix-blend-mode:normal;
  transition:background .3s ease;
}

/* ── PRELOADER ───────────────────────────────── */
.preloader {
  position:fixed; inset:0; z-index:9999;
  background:var(--white);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .7s ease, visibility .7s ease;
}
.preloader.hidden { opacity:0; visibility:hidden; }
.preloader-inner  { text-align:center; }
.preloader-logo   { margin-bottom:2rem; }
.preloader-logo img {
  width:180px; height:auto;
  filter: invert(1) sepia(1) saturate(3) hue-rotate(230deg) brightness(.8);
  animation:preloaderPulse 1.4s ease-in-out infinite;
}
@keyframes preloaderPulse { 0%,100%{opacity:.4;transform:scale(.97)} 50%{opacity:1;transform:scale(1)} }
.preloader-bar {
  width:200px; height:3px; background:var(--lav-pale);
  border-radius:var(--radius-full); overflow:hidden; margin:0 auto 1rem;
}
.preloader-fill {
  height:100%; width:0%;
  background:linear-gradient(90deg, var(--lav), var(--rose), var(--sky));
  border-radius:var(--radius-full); transition:width .05s linear;
}
.preloader-text { color:var(--ink-mute); font-size:.85rem; letter-spacing:.1em; }

/* ── UTILITIES ───────────────────────────────── */
.container { max-width:1160px; margin:0 auto; padding:0 2rem; }

.section-tag {
  display:inline-flex; align-items:center; gap:.45rem;
  font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--lav); background:var(--lav-pale);
  border:1px solid rgba(167,139,250,.3);
  padding:.35rem .9rem; border-radius:var(--radius-full); margin-bottom:1.1rem;
}
.section-title {
  font-family:'Rubik', sans-serif;
  font-size:clamp(1.9rem,3.8vw,3rem);
  font-weight:800; line-height:1.2;
  color:var(--ink); margin-bottom:1.2rem;
}
.accent { color:var(--lav); }
.section-sub {
  font-size:1rem; line-height:1.75; max-width:560px; margin:0 auto;
  color:var(--ink-mute);
}
.section-header { text-align:center; margin-bottom:3.5rem; }

/* ── BUTTONS ─────────────────────────────────── */
.btn-primary {
  display:inline-flex; align-items:center; gap:.7rem;
  background:var(--lav); color:var(--white);
  font-weight:700; font-size:.95rem;
  padding:.85rem 2rem; border-radius:var(--radius-full);
  transition:background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  box-shadow:0 4px 20px rgba(124,58,237,.3);
}
.btn-primary:hover {
  background:var(--lav-soft); transform:translateY(-2px);
  box-shadow:0 10px 32px rgba(124,58,237,.4);
}
.btn-primary svg { width:18px; height:18px; }

.btn-outline {
  display:inline-flex; align-items:center; gap:.7rem;
  border:2px solid var(--border); color:var(--ink-soft);
  font-weight:600; font-size:.95rem;
  padding:.85rem 2rem; border-radius:var(--radius-full);
  transition:all var(--t-fast);
}
.btn-outline:hover {
  border-color:var(--lav); color:var(--lav);
  background:var(--lav-xpale);
}

/* ── REVEAL ──────────────────────────────────── */
.reveal-up, .reveal-left, .reveal-right {
  opacity:0;
  transition:opacity .75s cubic-bezier(.165,.84,.44,1), transform .75s cubic-bezier(.165,.84,.44,1);
}
.reveal-up    { transform:translateY(36px); }
.reveal-left  { transform:translateX(-48px); }
.reveal-right { transform:translateX(48px); }
.revealed { opacity:1 !important; transform:none !important; }
.delay-1 { transition-delay:.1s !important; }
.delay-2 { transition-delay:.2s !important; }
.delay-3 { transition-delay:.3s !important; }
.delay-4 { transition-delay:.4s !important; }

/* ═══ NAVBAR ════════════════════════════════════ */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:1rem 0;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(167,139,250,.15);
  transition:box-shadow var(--t-mid), padding var(--t-mid);
}
.navbar.scrolled {
  padding:.75rem 0;
  box-shadow:0 4px 24px rgba(124,58,237,.08);
}
.nav-container {
  max-width:1280px; margin:0 auto; padding:0 2rem;
  display:flex; align-items:center; gap:2rem;
}
/* Logo inverted to show dark on white */
.nav-logo { display:flex; align-items:center; }
.nav-logo-img {
  height:38px; width:auto;
  filter: invert(1) sepia(1) saturate(4) hue-rotate(235deg) brightness(.7);
  transition:transform var(--t-fast), filter var(--t-fast);
}
.nav-logo:hover .nav-logo-img { transform:scale(1.05); }

.nav-links { display:flex; gap:2rem; margin-left:auto; }
.nav-link  {
  font-size:.88rem; font-weight:500; color:var(--ink-mute);
  transition:color var(--t-fast); position:relative;
}
.nav-link::after {
  content:''; position:absolute; bottom:-3px; left:0; right:0; height:2px;
  background:var(--lav); border-radius:2px;
  transform:scaleX(0); transition:transform var(--t-fast); transform-origin:left;
}
.nav-link:hover, .nav-link.active { color:var(--lav); }
.nav-link:hover::after, .nav-link.active::after { transform:scaleX(1); }

.nav-cta {
  font-size:.85rem; font-weight:700;
  background:var(--lav); color:var(--white);
  padding:.55rem 1.4rem; border-radius:var(--radius-full);
  transition:background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  box-shadow:0 2px 12px rgba(124,58,237,.25);
}
.nav-cta:hover { background:var(--lav-soft); transform:translateY(-1px); box-shadow:0 6px 20px rgba(124,58,237,.35); }

.hamburger { display:none; flex-direction:column; gap:5px; padding:4px; }
.hamburger span {
  display:block; width:22px; height:2px;
  background:var(--ink); border-radius:2px;
  transition:transform var(--t-fast), opacity var(--t-fast);
}
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ═══ HERO ══════════════════════════════════════ */
.hero {
  min-height:100vh; display:flex; align-items:center;
  position:relative; overflow:hidden;
  padding:8rem 2rem 5rem;
  background:var(--white);
}

/* floating pastel blobs */
.hero-grid {
  position:absolute; inset:0; pointer-events:none; z-index:0;
}
.hero-grid::before,
.hero-grid::after {
  content:''; position:absolute; border-radius:50%;
  filter:blur(90px); opacity:.55;
  animation:blobFloat 10s ease-in-out infinite;
}
.hero-grid::before {
  width:600px; height:600px;
  background:radial-gradient(circle, #ede9fe 0%, #fce7f3 60%, transparent 100%);
  top:-120px; right:-80px; animation-delay:0s;
}
.hero-grid::after {
  width:500px; height:500px;
  background:radial-gradient(circle, #e0f2fe 0%, #d1fae5 60%, transparent 100%);
  bottom:-100px; left:-60px; animation-delay:-5s;
}
@keyframes blobFloat {
  0%,100%{ transform:translate(0,0) scale(1); }
  33%    { transform:translate(30px,-40px) scale(1.06); }
  66%    { transform:translate(-20px,20px) scale(.95); }
}

/* dot pattern */
.hero::before {
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:radial-gradient(circle, rgba(124,58,237,.07) 1.5px, transparent 1.5px);
  background-size:32px 32px;
}

.hero-particles { position:absolute; inset:0; z-index:1; pointer-events:none; }
.hero-content   { position:relative; z-index:2; max-width:1160px; margin:0 auto; width:100%; }

.hero-badge {
  display:inline-flex; align-items:center; gap:.55rem;
  font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--lav); border:1.5px solid rgba(124,58,237,.2);
  background:var(--lav-pale);
  padding:.45rem 1.1rem; border-radius:var(--radius-full); margin-bottom:2rem;
}
.badge-dot {
  width:7px; height:7px; border-radius:50%; background:var(--lav);
  animation:blink 2s infinite;
}
@keyframes blink { 0%,100%{box-shadow:0 0 0 0 rgba(124,58,237,.5)} 60%{box-shadow:0 0 0 6px rgba(124,58,237,0)} }

.hero-title {
  font-family:'Rubik', sans-serif;
  font-size:clamp(2.8rem,7vw,6.2rem);
  font-weight:900; line-height:1.06; letter-spacing:-.025em;
  color:var(--ink); margin-bottom:1.5rem;
}
.hero-title-accent {
  background:linear-gradient(135deg, var(--lav), var(--rose));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.hero-title em {
  font-style:italic; color:var(--sky);
  -webkit-text-fill-color:var(--sky);
}

.hero-subtitle {
  font-size:clamp(1rem,1.4vw,1.15rem);
  color:var(--ink-mute); line-height:1.85;
  max-width:540px; margin-bottom:2.75rem;
}
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:4.5rem; }

.hero-stats   { display:flex; align-items:center; gap:3rem; flex-wrap:wrap; }
.stat-item    { display:flex; flex-direction:column; gap:.1rem; }
.stat-num     {
  font-family:'Rubik',sans-serif;
  font-size:2.6rem; font-weight:900; line-height:1;
  color:var(--lav);
}
.stat-plus    { font-size:2rem; font-weight:900; color:var(--lav); }
.stat-label   {
  font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.12em;
  color:var(--ink-mute); margin-top:.1rem;
}
.stat-divider { width:1px; height:48px; background:var(--border); }

.hero-scroll-indicator {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  color:var(--ink-mute); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  animation:fadeUp 2s ease 2s both;
}
.scroll-mouse {
  width:22px; height:36px; border:2px solid var(--border);
  border-radius:11px; display:flex; justify-content:center; padding-top:5px;
}
.scroll-wheel { width:3px; height:7px; background:var(--lav); border-radius:2px; animation:scrollDn 2s ease-in-out infinite; }
@keyframes scrollDn { 0%{transform:translateY(0);opacity:1} 100%{transform:translateY(10px);opacity:0} }
@keyframes fadeUp   { from{opacity:0;transform:translate(-50%,14px)} to{opacity:1;transform:translate(-50%,0)} }

/* ── PARTICLES ───────────────────────────────── */
.particle { position:absolute; border-radius:50%; animation:floatP linear infinite; pointer-events:none; opacity:.5; }
@keyframes floatP {
  0%  { transform:translateY(100vh); opacity:0; }
  8%  { opacity:.5; }
  92% { opacity:.2; }
  100%{ transform:translateY(-5vh); opacity:0; }
}

/* ═══ TICKER ════════════════════════════════════ */
.ticker-wrap {
  overflow:hidden; background:var(--lav-pale);
  padding:.7rem 0; white-space:nowrap;
  border-top:1px solid rgba(124,58,237,.12);
  border-bottom:1px solid rgba(124,58,237,.12);
}
.ticker-track {
  display:inline-flex; gap:2rem; align-items:center;
  animation:ticker 28s linear infinite;
  font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--lav);
}
.ticker-sep { color:var(--rose); font-size:.5rem; }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ═══ ABOUT ═════════════════════════════════════ */
.about { padding:7rem 0; background:var(--white); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.about-visual { position:relative; }
.about-img-wrap {
  border-radius:var(--radius-xl); overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.about-img { width:100%; height:500px; object-fit:cover; }
.about-img-border {
  position:absolute; inset:-3px; border-radius:calc(var(--radius-xl)+3px);
  background:linear-gradient(135deg, var(--lav), var(--rose), var(--sky));
  z-index:-1;
}
.about-float-card {
  position:absolute;
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:.9rem 1.2rem;
  display:flex; align-items:center; gap:.75rem;
  box-shadow:var(--shadow-md); animation:floatCard 4s ease-in-out infinite;
}
.float-card-1 { bottom:-1.5rem; left:-1.5rem; animation-delay:0s; }
.float-card-2 { top:1.5rem;    right:-1.5rem; animation-delay:2s; }
@keyframes floatCard { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }
.float-icon  { font-size:1.4rem; }
.float-info  { display:flex; flex-direction:column; gap:.05rem; }
.float-info strong { font-size:.85rem; font-weight:700; color:var(--ink); }
.float-info span   { font-size:.72rem; color:var(--ink-mute); }

.about-content { }
.about-desc     { color:var(--ink-soft); line-height:1.85; margin-bottom:1.1rem; font-size:1rem; }
.about-features { margin:1.75rem 0 2.25rem; display:flex; flex-direction:column; gap:.7rem; }
.feature-item   { display:flex; align-items:center; gap:.875rem; color:var(--ink-soft); font-size:.93rem; }
.feature-check  {
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  background:var(--lav-pale); color:var(--lav);
  font-size:.75rem; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid rgba(124,58,237,.25);
}

/* ═══ SERVICES ══════════════════════════════════ */
.services { padding:7rem 0; background:var(--lav-xpale); position:relative; overflow:hidden; }
.services-bg-img,.services-bg-overlay { display:none; }
.services .container { position:relative; z-index:1; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }

/* each card has a pastel top stripe */
.service-card {
  background:var(--white); border:1px solid rgba(167,139,250,.2);
  border-radius:var(--radius-lg); padding:2rem;
  position:relative; overflow:hidden;
  transition:transform var(--t-mid), box-shadow var(--t-mid), border-color var(--t-mid);
}
.service-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  opacity:1; transition:height var(--t-mid);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.service-card:nth-child(1)::before { background:linear-gradient(90deg, var(--lav), var(--rose)); }
.service-card:nth-child(2)::before { background:linear-gradient(90deg, var(--sky), var(--mint)); }
.service-card:nth-child(3)::before { background:linear-gradient(90deg, var(--rose), var(--peach)); }
.service-card:nth-child(4)::before { background:linear-gradient(90deg, var(--mint), var(--sky)); }
.service-card:nth-child(5)::before { background:linear-gradient(90deg, var(--amber), var(--peach)); }
.service-card:nth-child(6)::before { background:linear-gradient(90deg, var(--rose), var(--lav)); }
.service-card::after { display:none; }

.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(124,58,237,.25); }
.service-icon-wrap  { margin-bottom:1.25rem; }
.service-icon       { width:50px; height:50px; }
.service-title      { font-size:1.02rem; font-weight:700; margin-bottom:.55rem; color:var(--ink); }
.service-desc       { font-size:.87rem; color:var(--ink-mute); line-height:1.72; margin-bottom:1rem; }
.service-list       { display:flex; flex-direction:column; gap:.3rem; font-size:.8rem; color:var(--ink-soft); }
.service-list li::before { content:'→ '; color:var(--lav); font-weight:700; }
.service-arrow { display:none; }

/* ═══ PROCESS ═══════════════════════════════════ */
.process { padding:7rem 0; background:var(--white); }
.process-timeline { position:relative; margin-top:3.5rem; }
.process-line {
  position:absolute; left:50px; top:0; bottom:0; width:2px;
  background:linear-gradient(to bottom, var(--lav-pale), var(--sky-pale), var(--mint-pale));
}
.process-step {
  display:flex; align-items:flex-start; gap:2rem;
  padding:2rem 0; position:relative;
}
.process-step + .process-step { border-top:1px solid var(--border); }
.step-number {
  flex-shrink:0; width:100px; text-align:center;
  font-family:'Rubik',sans-serif;
  font-size:3rem; font-weight:900; line-height:1;
}
.process-step:nth-child(2) .step-number { color:var(--lav); }
.process-step:nth-child(3) .step-number { color:var(--sky); }
.process-step:nth-child(4) .step-number { color:var(--rose); }
.process-step:nth-child(5) .step-number { color:var(--mint); }

.step-content h3 { font-size:1.2rem; font-weight:700; margin-bottom:.45rem; color:var(--ink); }
.step-content p  { font-size:.92rem; color:var(--ink-mute); line-height:1.78; max-width:640px; }

/* ═══ PORTFOLIO ══════════════════════════════════ */
.portfolio { padding:7rem 0; background:var(--off-white); }
.portfolio-filter { display:flex; justify-content:center; gap:.6rem; flex-wrap:wrap; margin-bottom:2.5rem; }
.filter-btn {
  font-size:.82rem; font-weight:600; letter-spacing:.04em;
  padding:.48rem 1.4rem; border-radius:var(--radius-full);
  border:1.5px solid var(--border); color:var(--ink-mute);
  background:var(--white); transition:all var(--t-fast);
}
.filter-btn:hover, .filter-btn.active {
  background:var(--lav); color:var(--white); border-color:var(--lav);
  box-shadow:0 4px 16px rgba(124,58,237,.25);
}
.portfolio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.portfolio-item { border-radius:var(--radius-lg); overflow:hidden; }
.portfolio-wide { grid-column:1/3; }
.portfolio-img-wrap { position:relative; overflow:hidden; height:100%; min-height:260px; }
.portfolio-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.portfolio-item:hover .portfolio-img-wrap img { transform:scale(1.05); }
.portfolio-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(30,27,75,.95) 0%, rgba(30,27,75,.4) 50%, transparent 100%);
  opacity:0; transition:opacity var(--t-mid);
  display:flex; align-items:flex-end; padding:1.75rem;
}
.portfolio-item:hover .portfolio-overlay { opacity:1; }
.port-cat {
  display:inline-block; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--lav); background:var(--lav-pale);
  padding:.25rem .7rem; border-radius:var(--radius-full); margin-bottom:.4rem;
}
.portfolio-overlay-content h3 { font-size:1.05rem; font-weight:700; margin-bottom:.25rem; color:var(--white); }
.portfolio-overlay-content p  { font-size:.82rem; color:rgba(255,255,255,.6); margin-bottom:.6rem; }
.port-view-btn {
  font-size:.8rem; font-weight:600; color:var(--lav-soft);
  background:none; border:none; cursor:pointer; transition:letter-spacing var(--t-fast);
}
.port-view-btn:hover { letter-spacing:.05em; }
.portfolio-cta { text-align:center; margin-top:2.5rem; }

/* ═══ TESTIMONIALS ════════════════════════════════ */
.testimonials { padding:7rem 0; background:var(--rose-xpale); overflow:hidden; }
.testi-slider  { position:relative; }
.testi-track   { display:flex; gap:1.25rem; transition:transform .5s ease; }
.testi-card {
  flex:0 0 calc(100% / 1.5); max-width:520px;
  background:var(--white); border:1px solid rgba(236,72,153,.12);
  border-radius:var(--radius-xl); padding:2.25rem;
  box-shadow:0 4px 20px rgba(236,72,153,.08);
}
.testi-stars  { font-size:1rem; letter-spacing:.06em; margin-bottom:1rem; color:var(--amber); }
.testi-text   { font-size:.97rem; color:var(--ink-soft); line-height:1.82; margin-bottom:1.5rem; font-style:italic; }
.testi-author { display:flex; align-items:center; gap:.875rem; }
.testi-avatar {
  width:44px; height:44px; border-radius:50%;
  background:var(--c, var(--lav)); display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:.85rem; color:var(--white); flex-shrink:0;
}
.testi-author strong { display:block; font-size:.9rem; color:var(--ink); font-weight:700; }
.testi-author span   { font-size:.78rem; color:var(--ink-mute); }
.testi-controls { display:flex; align-items:center; justify-content:center; gap:1.25rem; margin-top:2.5rem; }
.testi-prev, .testi-next {
  width:44px; height:44px; border-radius:50%;
  border:1.5px solid rgba(236,72,153,.2); color:var(--rose); font-size:1.4rem;
  display:flex; align-items:center; justify-content:center;
  background:var(--white); transition:all var(--t-fast);
}
.testi-prev:hover, .testi-next:hover { background:var(--rose); color:var(--white); border-color:var(--rose); }
.testi-dots { display:flex; gap:.45rem; }
.testi-dot { width:7px; height:7px; border-radius:50%; background:rgba(236,72,153,.2); cursor:pointer; transition:all var(--t-fast); }
.testi-dot.active { background:var(--rose); width:20px; border-radius:3px; }

/* ═══ CONTACT ════════════════════════════════════ */
.contact { padding:7rem 0; background:var(--sky-xpale); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.contact-desc { color:var(--ink-mute); line-height:1.85; margin-bottom:2.25rem; font-size:1rem; }
.contact-details { display:flex; flex-direction:column; gap:1.25rem; margin-bottom:2.25rem; }
.contact-detail-item { display:flex; align-items:flex-start; gap:1rem; }
.detail-icon {
  font-size:1.1rem; width:40px; height:40px; flex-shrink:0;
  background:var(--sky-pale); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.contact-detail-item strong { display:block; font-size:.82rem; font-weight:700; color:var(--ink); margin-bottom:.15rem; }
.contact-detail-item span   { font-size:.87rem; color:var(--ink-mute); line-height:1.6; }
.contact-detail-item a      { color:var(--ink-mute); transition:color var(--t-fast); }
.contact-detail-item a:hover { color:var(--lav); }
.contact-socials { display:flex; gap:.6rem; }
.social-link {
  width:40px; height:40px; border-radius:50%;
  border:1.5px solid var(--border); color:var(--ink-mute);
  background:var(--white);
  display:flex; align-items:center; justify-content:center;
  transition:all var(--t-fast);
}
.social-link svg { width:15px; height:15px; }
.social-link:hover { background:var(--lav); color:var(--white); border-color:var(--lav); transform:translateY(-2px); box-shadow:var(--shadow-sm); }

.contact-form-wrap {
  background:var(--white); border:1px solid rgba(167,139,250,.2);
  border-radius:var(--radius-xl); padding:2.25rem;
  box-shadow:var(--shadow-sm);
}
.contact-form { display:flex; flex-direction:column; gap:1.1rem; }
.form-row     { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.form-group   { display:flex; flex-direction:column; gap:.4rem; }
.form-group.full { grid-column:1/-1; }
.form-group label {
  font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-mute);
}
.form-group input,
.form-group select,
.form-group textarea {
  background:var(--off-white); border:1.5px solid var(--border);
  border-radius:var(--radius-md); color:var(--ink);
  font-family:'Outfit',sans-serif; font-size:.93rem;
  padding:.8rem 1rem; width:100%; outline:none;
  transition:border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
}
.form-group select option { background:var(--white); color:var(--ink); }
.form-group select { appearance:none; }
.form-group input::placeholder,
.form-group textarea::placeholder { color:var(--ink-mute); opacity:.6; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color:var(--lav); background:var(--white);
  box-shadow:0 0 0 3px rgba(124,58,237,.1);
}
.form-group textarea { resize:vertical; min-height:120px; }
.form-submit { justify-content:center; margin-top:.4rem; }
.form-success {
  display:none; text-align:center;
  background:var(--mint-pale); border:1px solid rgba(16,185,129,.25);
  border-radius:var(--radius-md); padding:.875rem;
  color:var(--mint); font-weight:600; font-size:.9rem;
}
.form-success.show { display:block; }

/* ═══ FOOTER ═════════════════════════════════════ */
.footer { background:var(--ink); border-top:none; }
.footer-top { padding:4.5rem 0 3.5rem; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:3rem; }
.footer-brand .footer-logo { display:flex; align-items:center; margin-bottom:1rem; }
.footer-logo-img {
  height:42px; width:auto;
  mix-blend-mode:screen; filter:brightness(1.1);
}
.footer-brand-desc { font-size:.87rem; color:rgba(255,255,255,.35); line-height:1.75; max-width:280px; }
.footer-links-col h4 {
  font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em;
  color:rgba(255,255,255,.3); margin-bottom:1.1rem;
}
.footer-links-col ul  { display:flex; flex-direction:column; gap:.5rem; }
.footer-links-col a,
.footer-links-col li  { font-size:.87rem; color:rgba(255,255,255,.35); transition:color var(--t-fast); }
.footer-links-col a:hover { color:var(--lav-soft); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); padding:1.25rem 0; }
.footer-bottom-inner {
  display:flex; justify-content:space-between; align-items:center;
  font-size:.8rem; color:rgba(255,255,255,.22);
}
.footer-made { color:var(--lav-soft); font-weight:600; }

/* ═══ BACK TO TOP ════════════════════════════════ */
.back-to-top {
  position:fixed; bottom:2rem; right:2rem; z-index:50;
  width:46px; height:46px; border-radius:50%;
  background:var(--lav); color:var(--white);
  box-shadow:0 4px 20px rgba(124,58,237,.35);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(20px);
  transition:opacity var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  pointer-events:none;
}
.back-to-top.visible { opacity:1; transform:translateY(0); pointer-events:auto; }
.back-to-top:hover { box-shadow:0 8px 28px rgba(124,58,237,.5); transform:translateY(-2px); }
.back-to-top svg { width:18px; height:18px; }

/* ═══ RESPONSIVE ═════════════════════════════════ */
@media (max-width:1024px) {
  .services-grid  { grid-template-columns:repeat(2,1fr); }
  .about-grid     { grid-template-columns:1fr; gap:3.5rem; }
  .about-visual   { max-width:520px; margin:0 auto; }
  .footer-grid    { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .portfolio-grid { grid-template-columns:repeat(2,1fr); }
  .portfolio-wide { grid-column:1/-1; }
}
@media (max-width:768px) {
  .nav-links,.nav-cta { display:none; }
  .hamburger { display:flex; margin-left:auto; }
  .nav-links.open {
    display:flex; flex-direction:column;
    position:fixed; inset:0; top:65px;
    background:rgba(255,255,255,.98); backdrop-filter:blur(16px);
    padding:3rem 2rem; gap:1.75rem; z-index:99;
    align-items:center; justify-content:center;
  }
  .nav-links.open .nav-link { font-size:1.4rem; color:var(--ink); }
  .hero { padding:6.5rem 1.5rem 5rem; }
  .hero-actions   { flex-direction:column; align-items:flex-start; }
  .hero-stats     { gap:1.5rem; }
  .stat-num       { font-size:2.1rem; }
  .services-grid  { grid-template-columns:1fr; }
  .portfolio-grid { grid-template-columns:1fr; }
  .portfolio-wide { grid-column:auto; }
  .contact-grid   { grid-template-columns:1fr; gap:3rem; }
  .form-row       { grid-template-columns:1fr; }
  .process-line   { left:28px; }
  .step-number    { width:65px; font-size:2.2rem; }
  .footer-grid    { grid-template-columns:1fr; gap:2rem; }
  .testi-card     { flex:0 0 88vw; max-width:88vw; }
  .footer-bottom-inner { flex-direction:column; gap:.4rem; text-align:center; }
}
@media (max-width:480px) {
  .hero-title   { font-size:2.5rem; }
  .hero-stats   { flex-direction:column; align-items:flex-start; gap:1rem; }
  .stat-divider { display:none; }
}
