/* ─── Reset & Base ─────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:        #07080f;
  --bg2:       #0d0f1c;
  --bg3:       #11132a;
  --blue:      #38bdf8;
  --violet:    #a78bfa;
  --cyan:      #22d3ee;
  --text:      #e2e8f0;
  --muted:     #64748b;
  --border:    rgba(56,189,248,0.15);
  --glow-b:    rgba(56,189,248,0.25);
  --glow-v:    rgba(167,139,250,0.25);
}

html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
  line-height: 1.7;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--blue); border-radius: 2px; }

/* ─── Nav ───────────────────────────────────────────────── */
#site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.25rem 4rem;
  backdrop-filter: blur(18px);
  background: rgba(7,8,15,0.6);
  border-bottom: 1px solid var(--border);
  transition: all 0.3s;
}
#site-header.scrolled { padding: 0.85rem 4rem; background: rgba(7,8,15,0.9); }

.nav-logo {
  font-size: 1.1rem; font-weight: 700; letter-spacing: 0.05em;
  color: var(--text); text-decoration: none;
}
.nav-logo span { color: var(--blue); }

.nav-menu { display: flex; gap: 2rem; list-style: none; }
.nav-menu a {
  color: var(--muted); text-decoration: none; font-size: 0.875rem;
  letter-spacing: 0.04em; transition: color 0.2s;
}
.nav-menu a:hover,
.nav-menu .current-menu-item a,
.nav-menu .current_page_item a { color: var(--blue); }

.nav-cta {
  padding: 0.5rem 1.25rem; border-radius: 6px;
  background: transparent; border: 1px solid var(--blue);
  color: var(--blue); font-size: 0.875rem; cursor: pointer;
  text-decoration: none; transition: all 0.2s;
}
.nav-cta:hover { background: var(--blue); color: var(--bg); }

/* ─── Canvas ─────────────────────────────────────────────── */
#starfield {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
}

/* ─── Layout ────────────────────────────────────────────── */
section, .page-wrap { position: relative; z-index: 1; }
.container {
  max-width: 1180px; margin: 0 auto;
  padding-left: 2rem; padding-right: 2rem;
}

/* ─── Grid overlay ──────────────────────────────────────── */
.grid-overlay {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(56,189,248,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(56,189,248,0.04) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 80% at 50% 0%, black 40%, transparent 100%);
}

/* ─── Orbs ──────────────────────────────────────────────── */
.orb {
  position: absolute; border-radius: 50%;
  filter: blur(80px); pointer-events: none; z-index: 0;
}
.orb-1 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(56,189,248,0.12), transparent);
  top: -100px; right: -100px;
  animation: float1 12s ease-in-out infinite;
}
.orb-2 {
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(167,139,250,0.1), transparent);
  bottom: 50px; left: -80px;
  animation: float2 15s ease-in-out infinite;
}
@keyframes float1 { 0%,100%{transform:translate(0,0)} 50%{transform:translate(-30px,30px)} }
@keyframes float2 { 0%,100%{transform:translate(0,0)} 50%{transform:translate(20px,-20px)} }

/* ─── Reveal animations ─────────────────────────────────── */
.reveal { opacity:0; transform:translateY(40px); transition:opacity .7s,transform .7s; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-left  { opacity:0; transform:translateX(-50px); transition:opacity .7s,transform .7s; }
.reveal-right { opacity:0; transform:translateX(50px);  transition:opacity .7s,transform .7s; }
.reveal-left.visible,.reveal-right.visible { opacity:1; transform:translateX(0); }
.stagger > * { opacity:0; transform:translateY(30px); transition:opacity .6s,transform .6s; }
.stagger.visible > *:nth-child(1){opacity:1;transform:none;transition-delay:0s}
.stagger.visible > *:nth-child(2){opacity:1;transform:none;transition-delay:.12s}
.stagger.visible > *:nth-child(3){opacity:1;transform:none;transition-delay:.24s}
.stagger.visible > *:nth-child(4){opacity:1;transform:none;transition-delay:.36s}
.stagger.visible > *:nth-child(5){opacity:1;transform:none;transition-delay:.48s}
.stagger.visible > *:nth-child(6){opacity:1;transform:none;transition-delay:.60s}

/* ─── Buttons ───────────────────────────────────────────── */
.btn-primary {
  padding:.875rem 2rem; border-radius:8px;
  background:linear-gradient(135deg,var(--blue),var(--violet));
  color:#fff; font-weight:600; font-size:.95rem;
  text-decoration:none; border:none; cursor:pointer;
  display:inline-block; transition:transform .2s,box-shadow .2s;
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(56,189,248,.3); color:#fff; }
.btn-secondary {
  padding:.875rem 2rem; border-radius:8px;
  background:transparent; border:1px solid var(--border);
  color:var(--text); font-weight:500; font-size:.95rem;
  text-decoration:none; cursor:pointer; display:inline-block;
  transition:border-color .2s,color .2s;
}
.btn-secondary:hover { border-color:var(--blue); color:var(--blue); }

/* ─── Section typography ────────────────────────────────── */
.section-eyebrow {
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--blue); margin-bottom:1rem;
}
.section-title {
  font-size:clamp(1.8rem,4vw,3rem); font-weight:800;
  letter-spacing:-.02em; line-height:1.1; margin-bottom:1.25rem;
}
.section-title span {
  background:linear-gradient(135deg,var(--blue),var(--violet));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.section-sub { color:var(--muted); max-width:520px; font-size:1rem; }

/* ─── HERO ──────────────────────────────────────────────── */
#hero {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:8rem 2rem 4rem;
}
.hero-eyebrow {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.75rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--blue); background:rgba(56,189,248,.08);
  border:1px solid var(--border); padding:.35rem .9rem;
  border-radius:100px; margin-bottom:2rem;
}
.hero-eyebrow .dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--blue); animation:pulse 2s infinite;
}
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }
.hero-name {
  font-size:clamp(3rem,8vw,7rem); font-weight:800;
  letter-spacing:-.03em; line-height:1.05; margin-bottom:1.25rem;
}
.hero-name .first { color:var(--text); }
.hero-name .last {
  background:linear-gradient(135deg,var(--blue) 0%,var(--violet) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.hero-tagline { font-size:clamp(1rem,2.5vw,1.4rem); color:var(--muted); max-width:560px; margin:0 auto 2.5rem; }
.hero-tagline strong { color:var(--text); font-weight:600; }
.hero-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.hero-scroll {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  color:var(--muted); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
  animation:bob 2.5s ease-in-out infinite;
}
.hero-scroll svg { stroke:var(--muted); }
@keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

/* ─── STATS ─────────────────────────────────────────────── */
#stats {
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding:3.5rem 0; background:var(--bg2);
}
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:2rem; text-align:center; }
.stat-number {
  font-size:2.8rem; font-weight:800; line-height:1;
  background:linear-gradient(135deg,var(--blue),var(--violet));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.stat-label { font-size:.8rem; color:var(--muted); letter-spacing:.08em; margin-top:.4rem; }

/* ─── SERVICES ──────────────────────────────────────────── */
#services { padding:7rem 0; }
.services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.5rem; margin-top:3.5rem; }
.service-card {
  background:var(--bg2); border:1px solid var(--border); border-radius:16px; padding:2rem;
  position:relative; overflow:hidden; transition:transform .3s,border-color .3s,box-shadow .3s; cursor:default;
}
.service-card::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at top left,var(--glow-b),transparent 60%);
  opacity:0; transition:opacity .4s;
}
.service-card:hover { transform:translateY(-6px); border-color:rgba(56,189,248,.4); box-shadow:0 20px 60px rgba(56,189,248,.08); }
.service-card:hover::before { opacity:1; }
.service-card.violet::before { background:radial-gradient(ellipse at top left,var(--glow-v),transparent 60%); }
.service-card.violet:hover { border-color:rgba(167,139,250,.4); box-shadow:0 20px 60px rgba(167,139,250,.08); }
.service-icon {
  width:48px; height:48px; border-radius:12px; margin-bottom:1.5rem;
  display:flex; align-items:center; justify-content:center; font-size:1.4rem;
  background:rgba(56,189,248,.1); border:1px solid rgba(56,189,248,.2);
}
.service-card.violet .service-icon { background:rgba(167,139,250,.1); border-color:rgba(167,139,250,.2); }
.service-card h3 { font-size:1.1rem; font-weight:700; margin-bottom:.6rem; }
.service-card p { font-size:.875rem; color:var(--muted); line-height:1.65; }
.service-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.25rem; }
.tag {
  font-size:.68rem; padding:.2rem .55rem; border-radius:4px;
  background:rgba(56,189,248,.07); border:1px solid rgba(56,189,248,.15);
  color:var(--blue); letter-spacing:.05em;
}
.service-card.violet .tag { background:rgba(167,139,250,.07); border-color:rgba(167,139,250,.15); color:var(--violet); }

/* ─── ABOUT ─────────────────────────────────────────────── */
#about { padding:7rem 0; background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 50%,var(--bg) 100%); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.about-visual { position:relative; aspect-ratio:1; max-width:420px; }
.about-ring {
  position:absolute; inset:0; border-radius:50%; border:1px solid var(--border);
  animation:spin 20s linear infinite;
}
.about-ring:nth-child(2) { inset:15%; border-color:rgba(167,139,250,.2); animation-duration:14s; animation-direction:reverse; }
.about-ring:nth-child(3) { inset:30%; border-color:rgba(56,189,248,.15); animation-duration:9s; }
@keyframes spin { to{transform:rotate(360deg)} }
.about-core { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.about-core-inner {
  width:120px; height:120px; border-radius:50%;
  background:linear-gradient(135deg,var(--bg3),var(--bg2));
  border:1px solid var(--border); display:flex; align-items:center; justify-content:center;
  font-size:3rem; box-shadow:0 0 40px var(--glow-b);
}
.about-text h2 { font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800; margin-bottom:1.25rem; line-height:1.2; }
.about-text p { color:var(--muted); margin-bottom:1rem; font-size:.95rem; }
.about-text strong { color:var(--text); }
.about-pills { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.5rem; }
.pill { padding:.4rem .9rem; border-radius:100px; font-size:.78rem; font-weight:500; background:var(--bg3); border:1px solid var(--border); color:var(--text); }

/* ─── PROCESS ───────────────────────────────────────────── */
#process { padding:7rem 0; }
.process-header { text-align:center; margin-bottom:4rem; }
.process-timeline { display:flex; flex-direction:column; position:relative; max-width:680px; margin:0 auto; }
.process-timeline::before {
  content:''; position:absolute; left:27px; top:0; bottom:0; width:1px;
  background:linear-gradient(to bottom,transparent,var(--blue) 20%,var(--violet) 80%,transparent);
}
.process-step { display:flex; gap:2rem; padding:0 0 3rem; position:relative; }
.step-num {
  min-width:55px; height:55px; border-radius:50%;
  background:var(--bg2); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:.8rem; font-weight:700; color:var(--blue);
  position:relative; z-index:1; flex-shrink:0; transition:background .3s,border-color .3s;
}
.process-step:hover .step-num { background:rgba(56,189,248,.12); border-color:var(--blue); }
.step-body h3 { font-size:1.05rem; font-weight:700; margin-bottom:.4rem; padding-top:.75rem; }
.step-body p { font-size:.875rem; color:var(--muted); }

/* ─── CONTACT ───────────────────────────────────────────── */
#contact { padding:7rem 0; }
.contact-inner {
  background:var(--bg2); border:1px solid var(--border); border-radius:24px; padding:4rem;
  position:relative; overflow:hidden;
}
.contact-inner::before {
  content:''; position:absolute; top:-100px; right:-100px; width:400px; height:400px;
  background:radial-gradient(circle,var(--glow-v),transparent 70%); pointer-events:none;
}
.contact-inner::after {
  content:''; position:absolute; bottom:-80px; left:-80px; width:300px; height:300px;
  background:radial-gradient(circle,var(--glow-b),transparent 70%); pointer-events:none;
}
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; position:relative; z-index:1; }
.contact-info h2 { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:800; margin-bottom:1rem; }
.contact-info p { color:var(--muted); font-size:.9rem; margin-bottom:2rem; }
.contact-links { display:flex; flex-direction:column; gap:1rem; }
.contact-link { display:flex; align-items:center; gap:.75rem; color:var(--text); font-size:.9rem; transition:color .2s; }
.contact-link:hover { color:var(--blue); }
.contact-link-icon {
  width:36px; height:36px; border-radius:8px;
  background:rgba(56,189,248,.08); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center; font-size:.9rem;
}
.contact-form { display:flex; flex-direction:column; gap:1rem; }
.form-group { display:flex; flex-direction:column; gap:.35rem; }
.form-group label { font-size:.75rem; color:var(--muted); letter-spacing:.06em; }
.form-group input,.form-group textarea,.wpcf7-form input,.wpcf7-form textarea {
  background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:8px;
  padding:.75rem 1rem; color:var(--text); font-size:.9rem; font-family:inherit;
  outline:none; transition:border-color .2s; resize:none; width:100%;
}
.form-group input:focus,.form-group textarea:focus,.wpcf7-form input:focus,.wpcf7-form textarea:focus { border-color:var(--blue); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.wpcf7-submit { margin-top:.5rem; }

/* ─── BLOG INDEX ────────────────────────────────────────── */
.blog-hero {
  padding: 10rem 0 5rem;
  text-align: center;
  position: relative;
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 1.75rem;
  padding: 4rem 0 7rem;
}
.post-card {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 16px; overflow: hidden;
  position: relative; transition: transform .3s, border-color .3s, box-shadow .3s;
  display: flex; flex-direction: column;
}
.post-card:hover { transform: translateY(-5px); border-color: rgba(56,189,248,.4); box-shadow: 0 20px 50px rgba(56,189,248,.07); }
.post-card-thumb {
  width: 100%; aspect-ratio: 16/9; overflow: hidden; background: var(--bg3);
}
.post-card-thumb img { width:100%; height:100%; object-fit:cover; transition: transform .5s; }
.post-card:hover .post-card-thumb img { transform: scale(1.05); }
.post-card-thumb .thumb-placeholder {
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, rgba(56,189,248,.06), rgba(167,139,250,.06));
  font-size: 2.5rem;
}
.post-card-body { padding: 1.75rem; flex:1; display:flex; flex-direction:column; }
.post-meta {
  display: flex; align-items: center; gap: .75rem;
  font-size: .72rem; color: var(--muted); letter-spacing: .05em;
  margin-bottom: .85rem;
}
.post-cat {
  background: rgba(56,189,248,.08); border: 1px solid rgba(56,189,248,.15);
  color: var(--blue); padding: .15rem .5rem; border-radius: 4px;
  font-size: .68rem; letter-spacing: .06em; text-transform: uppercase;
}
.post-card h2 { font-size: 1.1rem; font-weight: 700; line-height: 1.35; margin-bottom: .65rem; }
.post-card h2 a { color: var(--text); transition: color .2s; }
.post-card h2 a:hover { color: var(--blue); }
.post-excerpt { font-size: .85rem; color: var(--muted); line-height: 1.65; flex:1; }
.post-read-more {
  display: inline-flex; align-items: center; gap: .35rem;
  margin-top: 1.25rem; font-size: .8rem; color: var(--blue); font-weight: 600;
  transition: gap .2s;
}
.post-read-more:hover { gap: .6rem; color: var(--blue); }

/* pagination */
.blog-pagination { display:flex; justify-content:center; gap:.5rem; padding-bottom:5rem; }
.blog-pagination a, .blog-pagination span {
  width:38px; height:38px; border-radius:8px; display:flex; align-items:center; justify-content:center;
  font-size:.85rem; border:1px solid var(--border); background:var(--bg2); color:var(--muted);
  transition:all .2s;
}
.blog-pagination a:hover, .blog-pagination .current {
  background:rgba(56,189,248,.1); border-color:var(--blue); color:var(--blue);
}

/* ─── SINGLE POST ───────────────────────────────────────── */
.single-hero { padding:9rem 0 3rem; text-align:center; position:relative; }
.single-hero .post-meta { justify-content:center; margin-bottom:1.25rem; }
.single-hero h1 {
  font-size: clamp(1.8rem,5vw,3.2rem); font-weight:800; letter-spacing:-.03em;
  line-height:1.15; max-width:780px; margin:0 auto 1.5rem;
}
.single-featured { width:100%; max-height:480px; object-fit:cover; border-radius:16px; margin-bottom:3rem; border:1px solid var(--border); }
.single-content-wrap { display:grid; grid-template-columns:1fr 280px; gap:4rem; padding-bottom:7rem; }
.single-content {
  font-size:1.05rem; line-height:1.85; color:var(--text);
}
.single-content h2,.single-content h3 { font-weight:700; margin:2rem 0 .75rem; line-height:1.2; }
.single-content h2 { font-size:1.6rem; }
.single-content h3 { font-size:1.25rem; color:var(--blue); }
.single-content p { color:#94a3b8; margin-bottom:1.25rem; }
.single-content a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.single-content strong { color:var(--text); }
.single-content ul,.single-content ol { padding-left:1.5rem; color:#94a3b8; margin-bottom:1.25rem; }
.single-content li { margin-bottom:.4rem; }
.single-content blockquote {
  border-left:3px solid var(--blue); padding:.75rem 1.25rem; margin:1.5rem 0;
  background:rgba(56,189,248,.05); border-radius:0 8px 8px 0; color:var(--muted);
  font-style:italic;
}
.single-content pre,.single-content code {
  background:var(--bg3); border:1px solid var(--border); border-radius:6px;
  font-family:'Fira Code',monospace; font-size:.85rem;
}
.single-content pre { padding:1.25rem; overflow-x:auto; margin-bottom:1.25rem; }
.single-content code { padding:.15rem .4rem; }
.single-content img { border-radius:10px; margin:1.5rem 0; border:1px solid var(--border); }

/* sidebar */
.single-sidebar { display:flex; flex-direction:column; gap:2rem; }
.sidebar-widget {
  background:var(--bg2); border:1px solid var(--border); border-radius:14px; padding:1.5rem;
}
.sidebar-widget h4 { font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); margin-bottom:1rem; }
.recent-post-item { display:flex; flex-direction:column; gap:.2rem; padding:.75rem 0; border-bottom:1px solid var(--border); }
.recent-post-item:last-child { border-bottom:none; }
.recent-post-item a { font-size:.85rem; color:var(--text); transition:color .2s; line-height:1.4; }
.recent-post-item a:hover { color:var(--blue); }
.recent-post-item span { font-size:.72rem; color:var(--muted); }
.category-list { display:flex; flex-direction:column; gap:.5rem; }
.category-list a {
  display:flex; justify-content:space-between; align-items:center;
  font-size:.85rem; color:var(--muted); padding:.4rem .6rem; border-radius:6px; transition:all .2s;
}
.category-list a:hover { color:var(--blue); background:rgba(56,189,248,.06); }
.category-count { font-size:.72rem; background:rgba(56,189,248,.08); border:1px solid rgba(56,189,248,.15); color:var(--blue); padding:.1rem .4rem; border-radius:4px; }

/* post navigation */
.post-nav {
  display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:3rem;
}
.post-nav a {
  background:var(--bg2); border:1px solid var(--border); border-radius:12px;
  padding:1.25rem 1.5rem; transition:border-color .2s,box-shadow .2s; display:block;
}
.post-nav a:hover { border-color:var(--blue); box-shadow:0 8px 30px rgba(56,189,248,.08); }
.post-nav-label { font-size:.68rem; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; margin-bottom:.35rem; }
.post-nav-title { font-size:.9rem; font-weight:600; color:var(--text); }
.post-nav .next-post { text-align:right; }

/* ─── Footer ────────────────────────────────────────────── */
#site-footer {
  border-top:1px solid var(--border);
  padding:2.5rem 0; text-align:center;
  color:var(--muted); font-size:.8rem; position:relative; z-index:1;
}
#site-footer span { color:var(--blue); }

/* ─── Responsive ────────────────────────────────────────── */
@media(max-width:1024px) {
  .single-content-wrap { grid-template-columns:1fr; }
  .single-sidebar { display:none; }
}
@media(max-width:768px) {
  #site-header { padding:1rem 1.5rem; }
  #site-header.scrolled { padding:.75rem 1.5rem; }
  .nav-menu { display:none; }
  .about-grid,.contact-grid { grid-template-columns:1fr; gap:2.5rem; }
  .contact-inner { padding:2rem; }
  .blog-grid { grid-template-columns:1fr; }
  .post-nav { grid-template-columns:1fr; }
}

/* ─── Cookie Banner ─────────────────────────────────────── */
#cookie-banner {
  position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
  z-index: 9999; width: calc(100% - 3rem); max-width: 800px;
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 16px; padding: 1.5rem 2rem;
  backdrop-filter: blur(20px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
  animation: slideUp .4s ease;
}
@keyframes slideUp { from{opacity:0;transform:translateX(-50%) translateY(20px)} to{opacity:1;transform:translateX(-50%) translateY(0)} }
.cookie-main { display:flex; align-items:center; gap:2rem; flex-wrap:wrap; }
.cookie-text { flex:1; min-width:200px; }
.cookie-text strong { font-size:.95rem; color:var(--text); display:block; margin-bottom:.35rem; }
.cookie-text p { font-size:.8rem; color:var(--muted); line-height:1.5; }
.cookie-actions { display:flex; gap:.6rem; flex-shrink:0; flex-wrap:wrap; }
.cookie-btn {
  padding:.5rem 1.1rem; border-radius:7px; font-size:.8rem; font-weight:600;
  cursor:pointer; border:none; transition:all .2s; white-space:nowrap;
}
.cookie-accept { background:linear-gradient(135deg,var(--blue),var(--violet)); color:#fff; }
.cookie-accept:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(56,189,248,.3); }
.cookie-deny { background:transparent; border:1px solid var(--border); color:var(--muted); }
.cookie-deny:hover { border-color:var(--muted); color:var(--text); }
.cookie-customize { background:transparent; border:1px solid var(--border); color:var(--blue); }
.cookie-customize:hover { background:rgba(56,189,248,.08); }

/* ─── Cookie Modal ──────────────────────────────────────── */
#cookie-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.6);
  backdrop-filter:blur(4px); z-index:9998;
}
#cookie-modal {
  position:fixed; inset:0; z-index:10000;
  display:flex; align-items:center; justify-content:center; padding:1.5rem;
}
.cookie-modal-inner {
  background:var(--bg2); border:1px solid var(--border); border-radius:20px;
  padding:2.5rem; max-width:520px; width:100%; position:relative;
  box-shadow:0 30px 80px rgba(0,0,0,.6);
  animation:fadeScale .3s ease;
}
@keyframes fadeScale { from{opacity:0;transform:scale(.95)} to{opacity:1;transform:scale(1)} }
.cookie-modal-close {
  position:absolute; top:1.25rem; right:1.25rem;
  background:transparent; border:none; color:var(--muted);
  font-size:1rem; cursor:pointer; transition:color .2s;
}
.cookie-modal-close:hover { color:var(--text); }
.cookie-modal-inner h3 { font-size:1.15rem; font-weight:700; margin-bottom:.6rem; }
.cookie-modal-inner > p { font-size:.85rem; color:var(--muted); margin-bottom:1.75rem; }
.cookie-toggle-list { display:flex; flex-direction:column; gap:.1rem; margin-bottom:1.75rem; }
.cookie-toggle-item {
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
  padding:1rem 0; border-bottom:1px solid var(--border);
}
.cookie-toggle-item:last-child { border-bottom:none; }
.cookie-toggle-item > div { flex:1; }
.cookie-toggle-item strong { font-size:.875rem; display:block; margin-bottom:.2rem; }
.cookie-toggle-item p { font-size:.78rem; color:var(--muted); line-height:1.5; }
.cookie-toggle-item input[type=checkbox] {
  width:18px; height:18px; accent-color:var(--blue); cursor:pointer;
  flex-shrink:0; margin-top:.15rem;
}
.cookie-toggle-item input:disabled { opacity:.4; cursor:not-allowed; }
.cookie-modal-actions { display:flex; gap:.75rem; justify-content:flex-end; }

/* ─── Contact Form — radio/field ────────────────────────── */
.req { color:var(--blue); }
.field-sub { font-size:.7rem; color:var(--muted); margin-top:.25rem; display:block; }
.radio-group { display:flex; flex-direction:column; gap:.5rem; margin-top:.35rem; }
.radio-item {
  display:flex; align-items:center; gap:.65rem;
  padding:.6rem .85rem; border-radius:8px;
  border:1px solid var(--border); cursor:pointer;
  transition:border-color .2s, background .2s; font-size:.875rem;
}
.radio-item:hover { border-color:rgba(56,189,248,.35); background:rgba(56,189,248,.04); }
.radio-item input[type=radio] {
  accent-color:var(--blue); width:15px; height:15px; flex-shrink:0;
}
.radio-item input[type=radio]:checked + span { color:var(--text); }
.radio-item:has(input:checked) { border-color:rgba(56,189,248,.45); background:rgba(56,189,248,.06); }

@media(max-width:600px) {
  #cookie-banner { padding:1.25rem; }
  .cookie-main { flex-direction:column; gap:1rem; align-items:flex-start; }
  .cookie-actions { width:100%; }
  .cookie-btn { flex:1; text-align:center; }
}

/* ─── AWS Certifications ─────────────────────────────────── */
.aws-certs { display:flex; gap:1.25rem; flex-wrap:wrap; margin-top:2rem; align-items:center; }
.aws-cert { display:flex; flex-direction:column; align-items:center; gap:.5rem; text-align:center; text-decoration:none; }
.aws-cert img { width:80px; height:80px; object-fit:contain; filter:drop-shadow(0 0 12px rgba(255,153,0,.2)); transition:filter .3s,transform .3s; }
.aws-cert:hover img { filter:drop-shadow(0 0 18px rgba(255,153,0,.45)); transform:translateY(-3px); }
.aws-cert span { font-size:.65rem; color:var(--muted); letter-spacing:.04em; max-width:90px; line-height:1.3; }

/* ─── Delivery Strip ─────────────────────────────────────── */
.delivery-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:3rem; padding-top:3rem; border-top:1px solid var(--border); }
.delivery-item { background:var(--bg2); border:1px solid var(--border); border-radius:14px; padding:1.5rem; text-align:center; transition:border-color .3s,transform .3s; }
.delivery-item:hover { border-color:rgba(56,189,248,.4); transform:translateY(-4px); }
.delivery-icon { font-size:2rem; margin-bottom:.75rem; }
.delivery-item h4 { font-size:1rem; font-weight:700; margin-bottom:.4rem; }
.delivery-item p { font-size:.8rem; color:var(--muted); line-height:1.55; }

@media(max-width:640px) {
  .delivery-strip { grid-template-columns:1fr; }
  .aws-certs { justify-content:center; }
}
