/* AptSoft brand refresh — intentionally loaded after the legacy styles. */
.aptsoft-nav-logo{display:block;width:92px;height:68px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 0 10px rgba(111,75,255,.18));transition:transform .25s ease,filter .25s ease}
.navbar-brand:hover .aptsoft-nav-logo{transform:translateY(-1px);filter:drop-shadow(0 0 15px rgba(0,190,255,.3))}
.glass-navbar .nav-container{gap:1.25rem}
.nav-actions{display:flex;align-items:center;gap:.7rem}
.nav-start-project,.nav-pay-online{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;min-height:42px;padding:.68rem 1.05rem;border-radius:999px;font-size:.88rem;font-weight:700;text-decoration:none;transition:all .25s ease}
.nav-start-project{color:var(--text-main)!important;border:1px solid rgba(117,105,255,.55);background:linear-gradient(110deg,rgba(222,35,185,.10),rgba(20,170,255,.10))}
.nav-start-project:hover{color:var(--text-main)!important;border-color:#a855f7;box-shadow:0 0 22px rgba(168,85,247,.2);transform:translateY(-2px)}
.nav-pay-online{color:#fff!important}

/* New image-led hero: the supplied artwork remains crisp and unmodified. */
.apt-hero{position:relative;isolation:isolate;overflow:hidden;width:100%;min-height:clamp(430px,37.2vw,762px);background:#05091e;display:flex;align-items:flex-end;justify-content:flex-start}
.apt-hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:-2}
.apt-hero-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,7,25,.04) 0%,rgba(5,7,25,0) 58%,rgba(5,7,25,.08) 100%);pointer-events:none}
.apt-hero-actions{display:flex;gap:.85rem;align-items:center;margin:0 clamp(1.25rem,7.6vw,9.5rem) clamp(1.25rem,3vw,2.6rem);position:relative;z-index:1}
.apt-hero-primary,.apt-hero-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.78rem 1.2rem;border-radius:999px;text-decoration:none;font-weight:700;font-size:.93rem;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.apt-hero-primary{color:#fff!important;background:linear-gradient(105deg,#e52cb7,#6d45ef 55%,#079de8);box-shadow:0 8px 28px rgba(112,48,220,.32)}
.apt-hero-primary:hover{color:#fff!important;transform:translateY(-3px);box-shadow:0 12px 34px rgba(112,48,220,.48)}
.apt-hero-secondary{color:#fff!important;border:1px solid rgba(255,255,255,.36);background:rgba(8,12,38,.48);backdrop-filter:blur(12px)}
.apt-hero-secondary:hover{color:#fff!important;background:rgba(255,255,255,.13);transform:translateY(-3px)}
.apt-hero-mobile-copy{display:none}

/* Keep all key navigation and page copy legible in both themes. */
[data-theme="light"] .glass-navbar{background:rgba(255,255,255,.9)!important;border-color:rgba(20,25,45,.10)!important;box-shadow:0 8px 30px rgba(20,25,45,.08)}
[data-theme="light"] .glass-navbar .nav-links a,[data-theme="light"] .glass-navbar .navbar-brand,[data-theme="light"] .glass-navbar .nav-toggle-label{color:#17172b!important;-webkit-text-fill-color:#17172b}
[data-theme="light"] .theme-toggle-btn{border-color:rgba(20,25,45,.18);color:#4338ca}
[data-theme="light"] .nav-start-project{color:#272044!important;background:linear-gradient(110deg,rgba(222,35,185,.08),rgba(20,170,255,.08));border-color:rgba(109,69,239,.42)}
[data-theme="light"] body,[data-theme="light"] #page-wrapper{color:#202033}
[data-theme="light"] main p,[data-theme="light"] main li,[data-theme="light"] main .card-title,[data-theme="light"] main h1:not(.text-gradient),[data-theme="light"] main h2:not(.text-gradient),[data-theme="light"] main h3:not(.text-gradient),[data-theme="light"] main h4,[data-theme="light"] main label{color:#242438}
[data-theme="light"] main .text-muted,[data-theme="light"] main .hero-subtitle,[data-theme="light"] main .section-description,[data-theme="light"] main .tech-desc{color:#55566b!important;-webkit-text-fill-color:#55566b}
[data-theme="light"] main .glass-card,[data-theme="light"] main .tech-card,[data-theme="light"] main .project-card,[data-theme="light"] main .product-card,[data-theme="light"] main .automation-card,[data-theme="light"] main .glass-panel{color:#242438;background-color:#fff;border-color:rgba(30,35,60,.12)}
[data-theme="light"] main .glass-card p,[data-theme="light"] main .tech-card p,[data-theme="light"] main .project-card p,[data-theme="light"] main .product-card p,[data-theme="light"] main .automation-card p{color:#55566b!important;-webkit-text-fill-color:#55566b}
[data-theme="light"] main .btn-secondary,[data-theme="light"] main .btn-outline,[data-theme="light"] main .btn-outline-light{color:#27243a!important;-webkit-text-fill-color:#27243a!important;border-color:rgba(30,35,60,.22)!important;background:rgba(30,35,60,.035)!important}
[data-theme="light"] .footer,[data-theme="light"] footer{color:#242438}

@media(max-width:900px){
 .aptsoft-nav-logo{width:76px;height:57px}
 .nav-actions{gap:.45rem}
 .nav-start-project,.nav-pay-online{padding:.62rem .82rem;font-size:.82rem}
 .apt-hero{min-height:0;display:block;padding:2.8rem 1.35rem 1.5rem;background:radial-gradient(ellipse at 12% 10%,rgba(219,31,184,.25),transparent 42%),radial-gradient(ellipse at 88% 82%,rgba(0,145,255,.24),transparent 45%),#060a20}
 .apt-hero-art{display:none}
 .apt-hero-overlay{background:linear-gradient(135deg,rgba(12,10,39,.45),transparent)}
 .apt-hero-mobile-copy{display:block;max-width:680px;margin:0 auto;color:#fff}
 .apt-hero-eyebrow{display:inline-flex;gap:.65rem;align-items:center;color:#c5c5e3;font-size:.72rem;letter-spacing:.2em;font-weight:700}
 .apt-hero-eyebrow i{width:5px;height:5px;border-radius:50%;background:#e52cb7;display:inline-block}
 .apt-hero-mobile-copy h1{font-size:clamp(2.35rem,8vw,4.5rem);line-height:1.04;letter-spacing:-.045em;color:#fff;margin:1rem 0 .8rem;font-weight:800}
 .apt-hero-mobile-copy h1 span{background:linear-gradient(100deg,#ec35c0,#8c53f5,#08b5ee);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
 .apt-hero-mobile-copy p{max-width:38rem;color:#c5c8dc;font-size:1.03rem;line-height:1.6}
 .apt-hero-mobile-copy ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1.2rem;list-style:none;padding:0;margin:1.4rem 0 1.7rem}
 .apt-hero-mobile-copy li{color:#e4e5f3;font-size:.9rem;padding-left:1.1rem;position:relative}
 .apt-hero-mobile-copy li:before{content:"";position:absolute;left:0;top:.48em;width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,#ed35bb,#08b5ee)}
 .apt-hero-actions{margin:0;flex-wrap:wrap}
}
@media(max-width:520px){.apt-hero{padding:2.2rem 1.1rem 1.25rem}.apt-hero-actions{gap:.6rem}.apt-hero-primary,.apt-hero-secondary{min-height:45px;padding:.7rem .95rem;font-size:.85rem}.apt-hero-mobile-copy ul{grid-template-columns:1fr;gap:.55rem}}
@media(prefers-reduced-motion:reduce){.aptsoft-nav-logo,.apt-hero-primary,.apt-hero-secondary,.nav-start-project{transition:none}}
/* Higher-specificity light-theme text correction for legacy components. */
[data-theme="light"] main p:not(.apt-hero-mobile-copy p),
[data-theme="light"] main li:not(.apt-hero-mobile-copy li),
[data-theme="light"] main small,
[data-theme="light"] main label,
[data-theme="light"] main blockquote,
[data-theme="light"] main .card-title,
[data-theme="light"] main .section-header > p,
[data-theme="light"] main .section-description,
[data-theme="light"] main .tech-desc{color:#505166!important;-webkit-text-fill-color:#505166}
[data-theme="light"] main h1:not(.apt-hero-mobile-copy h1),
[data-theme="light"] main h2,
[data-theme="light"] main h3,
[data-theme="light"] main h4,
[data-theme="light"] main h5,
[data-theme="light"] main h6{color:#202033}
[data-theme="light"] main .text-dark{color:#202033!important;-webkit-text-fill-color:#202033!important}

/* =========================================================
   FOLLOW-UP FIX: LIGHT THEME VISIBILITY + HERO CTA PLACEMENT
   Keep these rules at the end so they win over legacy component
   styles that are repeated in components.css.
========================================================= */

/* Desktop CTA placement: keep buttons in their own clean row below the
   banner artwork. This avoids covering the baked-in headline or neon wave. */
@media (min-width: 901px) {
  .apt-hero {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    min-height: 0;
    padding: 0;
  }
  .apt-hero-art {
    position: relative;
    inset: auto;
    display: block;
    z-index: 0;
    width: 100%;
    height: auto;
    aspect-ratio: 2048 / 768;
    object-fit: cover;
    object-position: center;
  }
  .apt-hero-overlay { display: none; }
  .apt-hero-actions {
    position: relative;
    inset: auto;
    z-index: 2;
    align-self: center;
    justify-content: center;
    flex-wrap: wrap;
    width: min(100% - 2.5rem, 1120px);
    max-width: none;
    margin: 0 auto;
    padding: 1.15rem 0 1.35rem;
    gap: .85rem;
  }
}

@media (min-width: 901px) and (max-width: 1200px) {
  .apt-hero-primary,
  .apt-hero-secondary {
    min-height: 44px;
    padding: .68rem 1rem;
    font-size: .86rem;
  }
}

/* The About hero is intentionally dark in dark mode. Give it a proper
   light surface and explicit text colours in light mode. */
[data-theme="light"] main .about-hero {
  background:
    radial-gradient(circle at 15% 20%, rgba(225, 29, 72, .07), transparent 35%),
    linear-gradient(180deg, #ffffff 0%, #f3f4fa 100%) !important;
}

[data-theme="light"] main .about-hero h1 {
  color: #17172b !important;
  -webkit-text-fill-color: #17172b !important;
}

[data-theme="light"] main .about-hero h1 .text-gradient {
  background: linear-gradient(100deg, #d624a9 0%, #7046df 52%, #078fd0 100%) !important;
  background-clip: text !important;
  -webkit-background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

[data-theme="light"] main .about-hero p {
  color: #505166 !important;
  -webkit-text-fill-color: #505166 !important;
}

/* Ensure common legacy text elements use the light palette when they
   appear on the standard light page surfaces. Gradient text remains intact. */
[data-theme="light"] main .about-company .info-card h3,
[data-theme="light"] main .about-company .info-card p,
[data-theme="light"] main .vision-mission-section .vm-card h3,
[data-theme="light"] main .vision-mission-section .vm-card p,
[data-theme="light"] main .vision-mission-section .vm-card li,
[data-theme="light"] main .about-company .section-header h2,
[data-theme="light"] main .about-company .section-header > p {
  color: #242438 !important;
  -webkit-text-fill-color: #242438 !important;
}

[data-theme="light"] main .about-company .info-card p,
[data-theme="light"] main .vision-mission-section .vm-card p,
[data-theme="light"] main .vision-mission-section .vm-card li,
[data-theme="light"] main .about-company .section-header > p {
  color: #55566b !important;
  -webkit-text-fill-color: #55566b !important;
}


/* =========================================================
   LIGHT THEME READABILITY — LEGACY PAGE HEADINGS
   Several older sections set white text directly on headings. Reset
   the text fill as well as color; preserve intentional gradient spans.
========================================================= */
[data-theme="light"] main .about-hero h1,
[data-theme="light"] main .about-hero h1:not(.text-gradient) {
  color: #202033 !important;
  -webkit-text-fill-color: #202033 !important;
  background: none !important;
  text-shadow: none !important;
}
[data-theme="light"] main .about-hero h1 .text-gradient {
  background: linear-gradient(100deg, #df2cab 0%, #7847e8 52%, #079bdc 100%) !important;
  background-clip: text !important;
  -webkit-background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}
[data-theme="light"] main .about-hero .section-tag {
  color: #8b35c8 !important;
  -webkit-text-fill-color: #8b35c8 !important;
}
[data-theme="light"] main .about-hero p {
  color: #505166 !important;
  -webkit-text-fill-color: #505166 !important;
}
/* Legacy headings often carry a white -webkit-text-fill-color inline via
   old component rules. Use readable ink on light surfaces, while retaining
   the brand gradient on elements explicitly marked .text-gradient. */
[data-theme="light"] main h1:not(.text-gradient),
[data-theme="light"] main h2:not(.text-gradient),
[data-theme="light"] main h3:not(.text-gradient),
[data-theme="light"] main h4:not(.text-gradient),
[data-theme="light"] main h5:not(.text-gradient),
[data-theme="light"] main h6:not(.text-gradient) {
  color: #202033;
  -webkit-text-fill-color: #202033;
}
[data-theme="light"] main .text-gradient {
  background-image: linear-gradient(100deg, #df2cab 0%, #7847e8 52%, #079bdc 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}


/* LIGHT-MODE-CONTACT-FIX-V3 */
/* Contact page light mode: form + interactive helper */
html[data-theme="light"] .contact-card,
html[data-theme="light"] .project-help-card,
html[data-theme="light"] .hero-contact-card {
  background: #ffffff !important;
  border: 1px solid rgba(20,25,45,.12) !important;
  box-shadow: 0 12px 32px rgba(15,23,42,.08);
}
html[data-theme="light"] .project-help-card h3,
html[data-theme="light"] .project-help-card .text-white,
html[data-theme="light"] .project-help-card .help-title,
html[data-theme="light"] .project-help-card li {
  color: #18181b !important;
  -webkit-text-fill-color: #18181b !important;
}
html[data-theme="light"] .project-help-card p,
html[data-theme="light"] .project-help-card .text-secondary {
  color: #52525b !important;
  -webkit-text-fill-color: #52525b !important;
}
html[data-theme="light"] .project-help-card .btn-outline-light,
html[data-theme="light"] .project-help-card .btn-outline-secondary,
html[data-theme="light"] .project-help-card .help-cta {
  background: #fff !important;
  border: 1px solid rgba(20,25,45,.22) !important;
  color: #18181b !important;
  -webkit-text-fill-color: #18181b !important;
}
html[data-theme="light"] .contact-card .form-control,
html[data-theme="light"] .contact-card .form-select,
html[data-theme="light"] .contact-card .contact-input,
html[data-theme="light"] .contact-card .bg-dark,
html[data-theme="light"] .contact-card .form-control.bg-dark,
html[data-theme="light"] .contact-card .form-select.bg-dark,
html[data-theme="light"] .contact-card input,
html[data-theme="light"] .contact-card textarea,
html[data-theme="light"] .contact-card select {
  background: #ffffff !important;
  background-color: #ffffff !important;
  border: 1px solid rgba(20,25,45,.2) !important;
  color: #18181b !important;
  -webkit-text-fill-color: #18181b !important;
  color-scheme: light !important;
}
html[data-theme="light"] .contact-card .form-control::placeholder,
html[data-theme="light"] .contact-card input::placeholder,
html[data-theme="light"] .contact-card textarea::placeholder {
  color: #71717a !important;
  -webkit-text-fill-color: #71717a !important;
  opacity: 1 !important;
}
html[data-theme="light"] .contact-card .form-label,
html[data-theme="light"] .contact-card .form-label.text-white,
html[data-theme="light"] .contact-card .text-white,
html[data-theme="light"] .contact-card h2 {
  color: #18181b !important;
  -webkit-text-fill-color: #18181b !important;
}
html[data-theme="light"] .pill-selector label {
  background: #f4f4f5 !important;
  border: 1px solid rgba(20,25,45,.22) !important;
  color: #18181b !important;
  -webkit-text-fill-color: #18181b !important;
}
html[data-theme="light"] .pill-selector input:checked + label,
html[data-theme="light"] main .pill-selector input:checked + label {
  background: linear-gradient(135deg,#e11d48,#7c3aed) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  border-color: transparent !important;
}
/* Override brand-refresh global dark text on dark helper if card stays dark */
html[data-theme="light"] .project-help-card * {
  /* children get explicit colors above; keep icons red */
}
html[data-theme="light"] .project-help-card .bi-check2-circle,
html[data-theme="light"] .project-help-card .text-danger {
  color: #e11d48 !important;
  -webkit-text-fill-color: #e11d48 !important;
}
