/* ============================================
   GLOW FIRST SOLUTIONS — Design Tokens
   Navy   #0B1220   deep base / dark sections
   Ink    #101B2D   secondary dark (cards on dark)
   Blue   #2563EB   primary action / link
   Cyan   #06B6D4   accent / highlight
   Slate  #475569   body copy
   Mist   #F6F8FB   light section background
   Line   #E6EAF0   hairline borders
   ============================================ */
*{ margin:0; padding:0; box-sizing:border-box; }

:root{
  --navy:#0B1220;
  --ink:#101B2D;
  --blue:#2563EB;
  --blue-deep:#1D4ED8;
  --cyan:#06B6D4;
  --slate:#475569;
  --mist:#F6F8FB;
  --line:#E6EAF0;
  --white:#FFFFFF;
}

html{ scroll-behavior:smooth; }

body{
  font-family:"Inter",sans-serif;
  background:var(--white);
  color:#1E293B;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

a{ color:inherit; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; }

.container{ max-width:1240px; margin:0 auto; padding:0 24px; }

/* ---------- WordPress required helper classes ---------- */
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute;
  width:1px; word-wrap:normal !important;
}
.alignleft{ float:left; margin:0 24px 12px 0; }
.alignright{ float:right; margin:0 0 12px 24px; }
.aligncenter{ display:block; margin:0 auto 12px; }
.wp-caption{ max-width:100%; }
.wp-caption-text{ font-size:0.85rem; color:var(--slate); margin-top:6px; }

/* ---------- focus visibility ---------- */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
}

/* ============== NAVBAR ============== */
.navbar{
  background:var(--navy);
  padding:14px 0;
  position:sticky;
  top:0;
  z-index:200;
  box-shadow:0 4px 24px rgba(2,6,23,0.25);
}
.nav-wrapper{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo-link{ display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.logo-link img{ height:38px; width:auto; }

.nav-links{ display:flex; gap:24px; align-items:center; }
.nav-links > a, .nav-links > .nav-item > button{
  color:#E2E8F0; text-decoration:none; font-weight:500; font-size:0.95rem;
  background:none; border:none; cursor:pointer; font-family:inherit;
  display:flex; align-items:center; gap:6px; padding:8px 0; transition:color .2s;
}
.nav-links > a:hover, .nav-links > .nav-item > button:hover{ color:var(--cyan); }

.nav-item{ position:relative; }
.nav-item .chev{ width:9px; height:9px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s; }
.nav-item:hover .chev{ transform:rotate(225deg) translateY(2px); }

.mega-menu{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  background:var(--white); border-radius:18px; box-shadow:0 24px 60px -12px rgba(2,6,23,0.35);
  padding:22px; width:560px; display:none; grid-template-columns:1fr 1fr; gap:6px 28px; z-index:50;
}
.nav-item:hover .mega-menu, .nav-item:focus-within .mega-menu{ display:grid; }
.mega-menu a{ display:flex; flex-direction:column; text-decoration:none; color:#1E293B; padding:10px 12px; border-radius:10px; transition:background .15s; }
.mega-menu a:hover{ background:var(--mist); }
.mega-menu a strong{ font-size:0.92rem; font-weight:600; color:var(--navy); }
.mega-menu a span{ font-size:0.78rem; color:var(--slate); margin-top:2px; }
.mega-menu .col-label{ font-size:0.7rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--blue); padding:8px 12px 2px; }

.nav-cta-group{ display:flex; align-items:center; gap:16px; }

.nav-social{ display:flex; gap:6px; align-items:center; margin:0; }
.nav-social a{ width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; background:#1B2740; border-radius:50%; color:#CBD5E1; transition:background .2s, color .2s; padding:0; }
.nav-social a:hover{ background:var(--blue); color:white; }
.nav-social svg{ width:12px; height:12px; fill:currentColor; }
.header-social{ flex:1; justify-content:center; }
@media (max-width: 980px){ .header-social{ display:none !important; } }

.menu-toggle{ display:none; background:none; border:none; color:white; width:38px; height:38px; cursor:pointer; flex-direction:column; justify-content:center; align-items:center; gap:5px; }
.menu-toggle span{ width:22px; height:2px; background:white; border-radius:2px; }

/* ============== BUTTONS ============== */
.btn-outline-light{ border:1.5px solid #2563EB; background:transparent; color:white; padding:9px 22px; border-radius:40px; font-weight:600; font-size:0.92rem; transition:all .2s; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; text-align:center; white-space:nowrap; }
.btn-outline-light:hover{ background:var(--blue); border-color:var(--blue); }
.nav-links > .btn-outline-light{ padding:6px 14px; font-size:0.76rem; font-weight:600; letter-spacing:0.01em; }

.btn-primary{ background:var(--blue); border:none; color:white; padding:14px 34px; border-radius:40px; font-weight:600; font-size:1rem; transition:background .2s, transform .15s; cursor:pointer; text-decoration:none; display:inline-block; box-shadow:0 10px 24px -8px rgba(37,99,235,0.55); }
.btn-primary:hover{ background:var(--blue-deep); transform:translateY(-2px); }
.btn-primary:disabled{ opacity:0.6; cursor:not-allowed; transform:none; }

.btn-secondary{ background:transparent; border:1.5px solid var(--blue); color:var(--blue); padding:13px 32px; border-radius:40px; font-weight:600; transition:all .2s; cursor:pointer; text-decoration:none; display:inline-block; }
.btn-secondary:hover{ background:var(--blue); color:white; }

.btn-light{ background:white; color:var(--navy); border:none; padding:14px 34px; border-radius:40px; font-weight:700; cursor:pointer; text-decoration:none; display:inline-block; transition:transform .15s; }
.btn-light:hover{ transform:translateY(-2px); }

/* ============== WORDMARK ============== */
.wordmark{ font-weight:800; letter-spacing:-0.01em; text-decoration:none; color:var(--navy); }
.wordmark span{ color:var(--blue); }
.wordmark small{ display:block; font-size:0.55em; font-weight:600; letter-spacing:0.12em; color:var(--slate); text-transform:uppercase; margin-top:-2px; }

/* ============== HERO ============== */
.hero{
  background:radial-gradient(ellipse 900px 500px at 85% -10%, rgba(37,99,235,0.35), transparent 60%),
              linear-gradient(160deg, var(--navy) 0%, #0E1A30 60%, #0B1220 100%);
  color:white; padding:100px 0 110px; position:relative; overflow:hidden;
}
.hero-grain{ position:absolute; inset:0; background-image:radial-gradient(circle at 20% 80%, rgba(6,182,212,0.12), transparent 45%); pointer-events:none; }
.eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:0.78rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--cyan); background:rgba(6,182,212,0.12); border:1px solid rgba(6,182,212,0.3); padding:6px 16px; border-radius:40px; margin-bottom:22px; }
.hero-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:50px; align-items:center; position:relative; z-index:2; }
.hero h1{ font-size:3.4rem; font-weight:800; letter-spacing:-0.025em; line-height:1.08; margin-bottom:22px; }
.hero h1 .highlight{ color:var(--cyan); }
.hero p.lead{ font-size:1.18rem; color:#C7D2E3; max-width:560px; margin-bottom:14px; }
.hero p.sub{ font-size:0.98rem; color:#8FA0BC; max-width:560px; margin-bottom:30px; }
.hero-buttons{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:36px; }
.hero-trustline{ display:flex; gap:28px; flex-wrap:wrap; font-size:0.85rem; color:#94A3B8; }
.hero-trustline strong{ color:white; font-weight:700; }

.hero-panel{ background:linear-gradient(160deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02)); border:1px solid rgba(255,255,255,0.12); border-radius:26px; padding:34px; backdrop-filter:blur(6px); }
.hero-panel-row{ display:flex; justify-content:space-between; align-items:center; padding:16px 0; border-bottom:1px solid rgba(255,255,255,0.08); }
.hero-panel-row:last-child{ border-bottom:none; }
.hero-panel-row .metric{ font-size:1.6rem; font-weight:800; color:var(--cyan); }
.hero-panel-row .label{ font-size:0.88rem; color:#AFC0D6; }

/* ============== TRUST STRIP ============== */
.trust-stats{ background:var(--mist); padding:54px 0; border-bottom:1px solid var(--line); }
.stats-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:30px; text-align:center; }
.stat-item h3{ font-size:2.3rem; font-weight:800; color:var(--navy); }
.stat-item p{ color:var(--slate); font-weight:500; font-size:0.92rem; margin-top:4px; }

/* ============== SECTION SCAFFOLDING ============== */
.section-pad{ padding:90px 0; }
.bg-light{ background:var(--mist); }
.bg-dark{ background:var(--navy); color:white; }
.section-eyebrow{ font-size:0.78rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--blue); margin-bottom:10px; display:block; }
.bg-dark .section-eyebrow{ color:var(--cyan); }
.section-title{ font-size:2.3rem; font-weight:800; margin-bottom:14px; letter-spacing:-0.02em; line-height:1.18; }
.section-sub{ font-size:1.05rem; color:var(--slate); max-width:680px; }
.bg-dark .section-sub{ color:#AFC0D6; }
.section-head{ margin-bottom:46px; }
.section-head.center{ text-align:center; }
.section-head.center .section-sub{ margin:0 auto; }

/* ============== ABOUT ============== */
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.about-art{ background:linear-gradient(160deg, var(--navy), #16243C); border-radius:28px; padding:42px; color:white; position:relative; overflow:hidden; }
.about-art::after{ content:''; position:absolute; right:-60px; bottom:-60px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgba(6,182,212,0.25), transparent 70%); }
.about-pillars{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:24px; position:relative; z-index:1; }
.about-pillar{ background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); border-radius:16px; padding:18px; }
.about-pillar .num{ color:var(--cyan); font-weight:800; font-size:1.3rem; }
.about-pillar p{ font-size:0.85rem; color:#C7D2E3; margin-top:4px; }

/* ============== SERVICES GRID (home) ============== */
.services-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:26px; }
.service-card{ background:white; border-radius:20px; padding:30px 26px; box-shadow:0 8px 30px -10px rgba(15,23,42,0.08); border:1px solid var(--line); transition:transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s cubic-bezier(.22,.61,.36,1), border-color .28s; text-decoration:none; color:inherit; display:block; }
.service-card:hover{ transform:translateY(-10px) scale(1.02); border-color:rgba(37,99,235,0.35); box-shadow:0 32px 56px -14px rgba(37,99,235,0.26); }
.service-card .icon-badge{ width:48px; height:48px; border-radius:14px; background:rgba(37,99,235,0.1); display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:1.4rem; }
.service-card h4{ font-size:1.18rem; font-weight:700; margin-bottom:10px; color:var(--navy); }
.service-card p{ color:var(--slate); font-size:0.92rem; }
.service-card .learn-more{ display:inline-flex; align-items:center; gap:6px; color:var(--blue); font-weight:600; font-size:0.85rem; margin-top:16px; }

/* ============== PROCESS ============== */
.process-steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:24px; margin-top:10px; }
.step{ background:white; padding:30px 22px; border-radius:22px; box-shadow:0 4px 24px rgba(15,23,42,0.06); border:1px solid var(--line); position:relative; }
.step .step-index{ font-size:0.78rem; font-weight:700; color:var(--cyan); letter-spacing:0.08em; }
.step h3{ font-size:1.15rem; color:var(--navy); font-weight:700; margin:8px 0 6px; }
.step p{ font-size:0.9rem; color:var(--slate); }

/* ============== PORTFOLIO / RESULTS ============== */
.portfolio-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; }
.portfolio-item{ background:white; padding:24px; border-radius:18px; border:1px solid var(--line); transition:.18s; }
.portfolio-item:hover{ border-color:rgba(37,99,235,0.3); }
.portfolio-item .result-figure{ font-size:1.6rem; font-weight:800; color:var(--blue); }
.portfolio-item strong{ display:block; color:var(--navy); margin-top:6px; }
.portfolio-item span{ color:var(--slate); font-size:0.88rem; }

/* ============== TESTIMONIALS ============== */
.testimonial-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:26px; }
.testimonial{ background:white; padding:30px; border-radius:22px; box-shadow:0 4px 24px rgba(15,23,42,0.06); border:1px solid var(--line); }
.testimonial .stars{ color:#F59E0B; font-size:0.85rem; margin-bottom:12px; letter-spacing:2px; }
.testimonial p{ font-style:italic; color:#1E293B; font-size:0.96rem; }
.testimonial .author{ font-weight:700; margin-top:18px; color:var(--navy); font-size:0.92rem; }
.testimonial .author span{ display:block; font-weight:500; color:var(--slate); font-size:0.82rem; margin-top:1px; }

/* ============== FAQ ============== */
.faq-list{ max-width:780px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{ width:100%; background:none; border:none; text-align:left; padding:22px 0; font-size:1.02rem; font-weight:600; color:var(--navy); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; font-family:inherit; }
.faq-q .plus{ flex-shrink:0; width:22px; height:22px; position:relative; }
.faq-q .plus::before, .faq-q .plus::after{ content:''; position:absolute; background:var(--blue); transition:transform .25s; }
.faq-q .plus::before{ width:14px; height:2px; top:10px; left:4px; }
.faq-q .plus::after{ width:2px; height:14px; left:10px; top:4px; }
.faq-item.open .plus::after{ transform:rotate(90deg) translateX(0); opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-item.open .faq-a{ max-height:600px; }
.faq-a p{ padding-bottom:22px; color:var(--slate); font-size:0.95rem; max-width:680px; }

/* ============== CTA BANNER ============== */
.cta-section{ background:linear-gradient(135deg, var(--navy), #122038); color:white; padding:80px 0; text-align:center; position:relative; overflow:hidden; }
.cta-section::before{ content:''; position:absolute; left:50%; top:0; transform:translateX(-50%); width:600px; height:300px; background:radial-gradient(ellipse, rgba(6,182,212,0.18), transparent 70%); pointer-events:none; }
.cta-section h2{ font-size:2.4rem; font-weight:800; position:relative; z-index:1; }
.cta-section .cta-sub{ opacity:0.8; max-width:560px; margin:14px auto 28px; position:relative; z-index:1; }
.cta-buttons{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }

/* ============== CONTACT ============== */
.contact-layout{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:start; }
.contact-info-card{ display:flex; flex-direction:column; gap:22px; }
.contact-row{ display:flex; gap:14px; align-items:center; }
.contact-row .icon-circle{ width:34px; height:34px; border-radius:50%; background:rgba(37,99,235,0.08); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-row .icon-circle svg{ width:15px; height:15px; fill:var(--slate); }
.contact-row h4{ font-size:0.95rem; color:var(--navy); margin-bottom:2px; }
.contact-row p, .contact-row a{ color:var(--slate); font-size:0.92rem; text-decoration:none; }
.contact-row a:hover{ color:var(--blue); }

.contact-form{ background:white; padding:34px; border-radius:26px; box-shadow:0 16px 50px -16px rgba(15,23,42,0.18); border:1px solid var(--line); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-form input, .contact-form select, .contact-form textarea{ width:100%; padding:14px 18px; border:1px solid var(--line); border-radius:14px; margin-bottom:14px; font-family:inherit; font-size:0.95rem; background:var(--mist); color:#1E293B; }
.contact-form label{ font-size:0.82rem; font-weight:600; color:var(--navy); margin-bottom:6px; display:block; }
.contact-form textarea{ border-radius:18px; min-height:120px; resize:vertical; }
.contact-form button{ background:var(--blue); border:none; color:white; padding:16px 36px; border-radius:40px; font-weight:700; width:100%; cursor:pointer; font-size:1rem; transition:background .2s; }
.contact-form button:hover{ background:var(--blue-deep); }
.contact-form button:disabled{ opacity:0.6; cursor:not-allowed; }
.form-note{ font-size:0.8rem; color:var(--slate); text-align:center; margin-top:12px; }
.form-note.error{ color:#DC2626; }
.form-note.success{ color:#16A34A; font-weight:600; }
.quick-contact-row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
.quick-contact-row a{ display:inline-flex; align-items:center; gap:6px; padding:9px 18px; border-radius:40px; color:white; text-decoration:none; font-weight:600; font-size:0.82rem; }
.quick-contact-row a svg{ width:14px; height:14px; fill:white; }

.contact-social{ display:flex; gap:8px; margin-top:24px; align-items:center; }
.contact-social a{ width:30px; height:30px; border-radius:50%; background:var(--navy); color:#94A3B8; display:inline-flex; align-items:center; justify-content:center; transition:background .2s, color .2s; }
.contact-social a:hover{ background:var(--blue); color:white; }
.contact-social svg{ width:13px; height:13px; fill:currentColor; }
.map-embed{ border-radius:22px; overflow:hidden; margin-top:24px; border:1px solid var(--line); }
.map-embed iframe{ width:100%; height:260px; border:0; display:block; }
.map-note{ font-size:0.85rem; color:var(--slate); margin-top:10px; text-align:center; }
.map-note a{ color:var(--blue); font-weight:600; text-decoration:none; }
.map-note a:hover{ text-decoration:underline; }

/* ============== FOOTER ============== */
.footer{ background:var(--navy); color:#AFC0D6; padding:64px 0 28px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.footer-brand img{ height:34px; margin-bottom:14px; }
.footer-brand p{ font-size:0.9rem; color:#8FA0BC; max-width:280px; }
.footer h4{ color:white; font-size:0.95rem; font-weight:700; margin-bottom:18px; letter-spacing:0.02em; }
.footer a.flink{ color:#9AB0CC; text-decoration:none; display:block; margin-bottom:10px; font-size:0.9rem; transition:color .15s; }
.footer a.flink:hover{ color:var(--cyan); }
.footer-social{ display:flex; gap:8px; margin-top:18px; flex-wrap:wrap; align-items:center; }
.footer-social a{ width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,0.08); display:inline-flex; align-items:center; justify-content:center; color:#94A3B8; transition:background .2s, color .2s; }
.footer-social a:hover{ background:var(--blue); color:white; }
.footer-social svg{ width:13px; height:13px; fill:currentColor; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,0.08); margin-top:44px; padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.84rem; color:#7B8FAE; }

/* ============== FLOATING WHATSAPP ============== */
@keyframes wa-pulse{ 0%{ box-shadow:0 8px 24px rgba(37,211,102,0.4), 0 0 0 0 rgba(37,211,102,0.55); } 70%{ box-shadow:0 8px 24px rgba(37,211,102,0.4), 0 0 0 14px rgba(37,211,102,0); } 100%{ box-shadow:0 8px 24px rgba(37,211,102,0.4), 0 0 0 0 rgba(37,211,102,0); } }
.floating-whatsapp{ position:fixed; bottom:24px; right:24px; background:#25D366; color:white; width:56px; height:56px; border-radius:50%; box-shadow:0 8px 24px rgba(37,211,102,0.4); z-index:999; display:flex; align-items:center; justify-content:center; text-decoration:none; transition:transform .2s; animation:wa-pulse 2.2s ease-out infinite; }
.floating-whatsapp svg{ width:24px; height:24px; fill:white; }
.floating-whatsapp:hover{ transform:scale(1.12); animation:none; }

/* ============== SERVICE DETAIL PAGE ============== */
.service-hero{ background:linear-gradient(160deg, var(--navy), #0E1A30); color:white; padding:70px 0 64px; position:relative; overflow:hidden; }
.service-hero::after{ content:''; position:absolute; right:-8%; top:-30%; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(6,182,212,0.18), transparent 70%); pointer-events:none; }
.breadcrumb{ font-size:0.85rem; color:#9AB0CC; margin-bottom:20px; position:relative; z-index:1; }
.breadcrumb a{ color:#9AB0CC; text-decoration:none; }
.breadcrumb a:hover{ color:var(--cyan); }
.service-hero h1{ font-size:2.6rem; font-weight:800; letter-spacing:-0.02em; max-width:760px; position:relative; z-index:1; }
.service-hero .tagline{ font-size:1.15rem; color:var(--cyan); font-weight:600; margin-top:12px; position:relative; z-index:1; }
.service-hero .intro{ font-size:1.02rem; color:#C7D2E3; max-width:700px; margin-top:18px; position:relative; z-index:1; }
.service-hero .hero-cta-row{ display:flex; gap:14px; margin-top:28px; flex-wrap:wrap; position:relative; z-index:1; }

.subservice-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:26px; }
.subservice-card{ background:white; border:1px solid var(--line); border-radius:22px; padding:30px; transition:.2s; }
.subservice-card:hover{ box-shadow:0 20px 44px -16px rgba(15,23,42,0.14); border-color:rgba(37,99,235,0.25); }
.subservice-card .sub-index{ font-size:0.78rem; font-weight:700; color:var(--blue); letter-spacing:0.06em; margin-bottom:10px; display:block; }
.subservice-card h3{ font-size:1.18rem; color:var(--navy); font-weight:700; margin-bottom:10px; }
.subservice-card p{ color:var(--slate); font-size:0.93rem; }
.subservice-card p + p{ margin-top:10px; }

.related-services{ display:flex; gap:14px; flex-wrap:wrap; margin-top:18px; }
.related-pill{ border:1px solid var(--line); border-radius:40px; padding:9px 20px; font-size:0.88rem; font-weight:600; color:var(--navy); text-decoration:none; transition:.18s; }
.related-pill:hover{ border-color:var(--blue); color:var(--blue); background:rgba(37,99,235,0.06); }

/* ============== BLOG ============== */
.blog-hero{ background:var(--mist); padding:70px 0 50px; text-align:center; }
.blog-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:28px; }
.blog-card{ background:white; border:1px solid var(--line); border-radius:22px; overflow:hidden; transition:.2s; text-decoration:none; color:inherit; display:block; }
.blog-card:hover{ box-shadow:0 20px 44px -16px rgba(15,23,42,0.14); transform:translateY(-4px); }
.blog-card .blog-thumb{ height:160px; background:linear-gradient(135deg, var(--navy), #1B2A45); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.35); font-size:0.85rem; font-weight:600; overflow:hidden; }
.blog-card .blog-thumb img{ width:100%; height:100%; object-fit:cover; }
.blog-card .blog-body{ padding:24px; }
.blog-card .blog-tag{ font-size:0.72rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--blue); }
.blog-card h3{ font-size:1.08rem; color:var(--navy); margin:10px 0 8px; font-weight:700; }
.blog-card p{ font-size:0.88rem; color:var(--slate); }
.blog-empty{ text-align:center; padding:60px 30px; background:white; border:1px dashed var(--line); border-radius:24px; color:var(--slate); }
.pagination-row{ display:flex; justify-content:center; gap:10px; margin-top:40px; }
.pagination-row a, .pagination-row span{ padding:9px 18px; border-radius:40px; border:1px solid var(--line); color:var(--navy); text-decoration:none; font-weight:600; font-size:0.88rem; }
.pagination-row .current{ background:var(--blue); color:white; border-color:var(--blue); }

/* single blog post */
.single-post-content{ max-width:760px; margin:0 auto; }
.single-post-content img{ border-radius:16px; margin:20px 0; }
.single-post-content h2{ font-size:1.6rem; margin:28px 0 12px; color:var(--navy); }
.single-post-content h3{ font-size:1.3rem; margin:24px 0 10px; color:var(--navy); }
.single-post-content p{ margin-bottom:16px; color:#334155; }
.single-post-meta{ color:var(--slate); font-size:0.9rem; margin-bottom:24px; }

/* ============== MISC PAGE UTIL ============== */
.back-link{ display:inline-flex; align-items:center; gap:6px; margin-bottom:20px; color:var(--blue); font-weight:600; text-decoration:none; font-size:0.92rem; }
.page-fade{ animation:fadeIn .35s ease; }
@keyframes fadeIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:translateY(0); } }

ul.checklist{ list-style:none; padding:0; }
ul.checklist li{ padding:10px 0; border-bottom:1px solid var(--line); display:flex; gap:12px; align-items:flex-start; font-size:0.95rem; color:#334155; }
ul.checklist li::before{ content:"✓"; color:var(--blue); font-weight:700; flex-shrink:0; margin-top:1px; }

/* ---------- scroll fade-in ---------- */
.fade-in-up{ opacity:0; transform:translateY(36px); transition:opacity 0.65s cubic-bezier(.22,.61,.36,1), transform 0.65s cubic-bezier(.22,.61,.36,1); }
.fade-in-up.visible{ opacity:1; transform:translateY(0); }
.fade-in-up.delay-1{ transition-delay:0.1s; }
.fade-in-up.delay-2{ transition-delay:0.2s; }
.fade-in-up.delay-3{ transition-delay:0.3s; }
.fade-in-up.delay-4{ transition-delay:0.4s; }
.fade-in-up.delay-5{ transition-delay:0.5s; }

/* ============== RESPONSIVE ============== */
@media (max-width: 980px){
  .hero-grid, .about-grid, .contact-layout{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .hero h1{ font-size:2.7rem; }
  .nav-links{ display:none; }
  .menu-toggle{ display:flex; }
  .section-title{ font-size:1.9rem; }
  .service-hero h1{ font-size:2.1rem; }
}
@media (max-width: 600px){
  .hero{ padding:64px 0 70px; }
  .hero h1{ font-size:2.1rem; }
  .section-pad{ padding:64px 0; }
  .form-row{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .cta-section h2{ font-size:1.8rem; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
}

/* ---------- mobile nav drawer ---------- */
.mobile-nav{ display:none; position:fixed; inset:0; top:66px; background:var(--navy); z-index:150; padding:20px 24px 40px; overflow-y:auto; }
.mobile-nav.open{ display:block; }
.mobile-nav a, .mobile-nav .m-group-label{ display:block; color:#E2E8F0; text-decoration:none; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.08); font-weight:500; }
.mobile-nav .m-group-label{ color:var(--cyan); font-weight:700; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; border-bottom:none; padding-top:22px; padding-bottom:8px; }
.mobile-nav .btn-primary{ margin-top:20px; width:100%; text-align:center; }

/* ============== COOKIE CONSENT ============== */
.cookie-consent{ position:fixed; bottom:0; left:0; right:0; background:var(--navy); color:white; padding:16px 24px; z-index:1000; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px; box-shadow:0 -4px 12px rgba(0,0,0,0.2); font-size:0.9rem; }
.cookie-consent a{ color:var(--cyan); text-decoration:underline; }
.cookie-consent .btn-primary{ padding:8px 24px; font-size:0.85rem; }
.cookie-consent .btn-secondary{ padding:8px 24px; font-size:0.85rem; border-color:rgba(255,255,255,0.3); color:white; }
.cookie-consent .btn-secondary:hover{ background:rgba(255,255,255,0.1); border-color:white; }
@media (max-width: 600px){ .cookie-consent{ flex-direction:column; text-align:center; } }

/* ============== 404 ============== */
.notfound-section{ text-align:center; }
