:root{
  --bg:#0f1724;
  --panel:#0b1220;
  --muted:#9aa4b2;
  --accent:#7dd3fc;
  --text:#e6eef6;
  --glass:rgba(255,255,255,0.04);
  --glass-bg:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  --glass-border:rgba(255,255,255,0.06);
}

/* Hero decorative V removed — styles cleaned up */
.hero { position: relative; overflow: hidden; }
.hero-inner { position: relative; z-index: 2; }
:root{
  /* Dark glass theme variables */
  --bg-900: #05060a; /* page background base */
  --bg-800: #0b0f16; /* subtle layer */
  --panel: rgba(255,255,255,0.04);
  --muted: #9aa4b2;
  --accent: #60e1ff;
  --accent-2: #7dd3fc;
  --text: #e6eef6;
  --glass-border: rgba(255,255,255,0.06);
  --glass-strong: rgba(255,255,255,0.06);
  --glass-soft: rgba(255,255,255,0.02);
  --glass-sheen: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.005));
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:'Poppins',Inter,system-ui,Segoe UI,Roboto,'Helvetica Neue',Arial;background:radial-gradient(800px 400px at 10% 10%, rgba(8, 126, 181, 0.035), transparent 12%), radial-gradient(600px 300px at 90% 90%, rgba(14,165,233,0.02), transparent 12%), var(--bg-900);color:var(--text);-webkit-font-smoothing:antialiased}

/* smooth scrolling for in-page anchors */
html { scroll-behavior: smooth; }

/* focus styles for accessibility */
:where(a, button)[href], :where(button, a){outline: none}
:where(a:focus, button:focus){box-shadow:0 0 0 3px rgba(96,225,255,0.14);border-radius:8px}

/* container */
.container{max-width: 1600px;margin:2.25rem auto;padding:0rem}

/* header */
.site-header{display:flex;align-items:center;justify-content:space-between;max-width: 1600px;margin:0 auto;padding:0.9rem 1.25rem;background:var(--glass-sheen);border:1px solid var(--glass-border);border-radius:12px;box-shadow:0 6px 20px rgba(3,6,12,0.6);backdrop-filter:blur(10px)}
.brand{display:inline-flex;align-items:center;gap:0.6rem;font-weight:700;color:var(--accent);text-decoration:none}
.brand-logo{width:40px;height:40px;border-radius:9px;display:inline-block}
.brand-text{line-height:1;color:var(--accent);}
.nav{display:flex;align-items:center;gap:0.75rem}
.nav a{color:var(--muted);text-decoration:none;padding:0.35rem 0.5rem;border-radius:8px}
.nav a:hover{color:var(--text);background:rgba(255,255,255,0.02)}
.nav button{background:transparent;border:0;padding:0.35rem;border-radius:8px;cursor:pointer;color:var(--muted)}
.nav button:hover{background:rgba(255,255,255,0.02)}
.icon{width:20px;height:20px;display:block}

.site-header{position:fixed;top:1rem;left:0;right:0;z-index:999;padding:0.6rem 1rem;gap:0.75rem}
.site-header .brand{display:inline-flex;align-items:center;gap:0.6rem}
.nav-toggle{display:none;background:transparent;border:0;color:var(--muted);font-size:1.6rem;padding:0.45rem;border-radius:8px;cursor:pointer}
.nav-toggle:focus{outline:none;box-shadow:none}
.nav-list{display:flex;gap:1.6rem;align-items:center;margin:0;padding:0;list-style:none}
.nav-list a{color:var(--muted);text-decoration:none;padding:0.45rem 0.9rem;border-radius:8px;display:inline-block}
.nav-list a:hover{color:var(--text);background:rgba(255,255,255,0.02)}

/* Contact link styled as a CTA */
.nav-list a.nav-cta{
  background: linear-gradient(90deg,var(--accent),var(--accent-2));
  color: #021022;
  padding: 0.45rem 0.9rem;
  border-radius: 12px;
  font-weight: 700;
  box-shadow: 0 8px 20px rgba(96,225,255,0.06);
  transition: transform .12s ease, box-shadow .12s ease;
}
.nav-list a.nav-cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(96,225,255,0.10);
}
.nav-list a.nav-cta:focus{
  outline: 3px solid rgba(96,225,255,0.12);
  outline-offset: 3px;
  border-radius: 12px;
}

/* Ensure CTA displays nicely in the mobile nav */
@media (max-width:760px){
  .nav-list a.nav-cta{
    display:block;
    width:100%;
    text-align:center;
    padding:0.75rem 0.9rem;
    border-radius:10px;
  }
}

@media (max-width:760px){
  .nav-toggle{display:inline-flex;font-size:1.8rem;padding:0.5rem}
  .nav{position:absolute;right:1rem;top:calc(100% + 0.6rem);display:none;background:var(--bg-900);border:1px solid var(--glass-border);border-radius:10px;padding:0.6rem 0.8rem;box-shadow:0 12px 28px rgba(3,6,12,0.4)}
  .nav.open{display:flex}
  .nav-list{flex-direction:column;gap:0.5rem}
  .site-header{padding:0.5rem 0.75rem}
}

/* hero */
.hero{padding:5rem 1rem}
.hero{padding:6rem 0;min-height:86vh;display:flex;align-items:center}
.hero-inner{display:flex;flex-direction:column;gap:2rem;align-items:center;justify-content:center;max-width:1400px;margin:0 auto;padding:0 0.75rem}
.hero-left{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:1100px}
.eyebrow{color:var(--accent);font-weight:800;font-size:1.6rem;margin-bottom:0.7rem;letter-spacing:0.8px}
.hero-title{font-size:4.4rem;margin:0 0 0.6rem;line-height:1.02}
.logo{width:120px;height:120px;margin-bottom:1rem}
.hero-inner .eyebrow{line-height:3}
.hero-left .lead{line-height:2}
#recaptcha-container{display:flex;justify-content:center;margin-top:1rem}
.social .bi{line-height:1}
.lead{color:var(--muted);max-width:70ch;margin:0 0 1.25rem;font-size:1.18rem}

/* Divider below hero content */

@media(max-width:760px){
  .hero-divider{width:90%;height:1.5px;margin-top:1rem}
}
.hero-actions{display:flex;gap:0.9rem;margin-bottom:1rem;flex-wrap:wrap;justify-content:center;align-items:center}
.hero-actions a{white-space:nowrap}
.hero-actions .btn{display:inline-flex;align-items:center;justify-content:center}

/* Hero CTA visuals (slightly smaller buttons) */
.hero-actions .btn{min-height:44px;padding:0.5rem 0.95rem;border-radius:12px;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,opacity .12s}
.hero-actions .btn.small{min-height:40px;padding:0.45rem 0.9rem;min-width:220px}

/* Primary CTA */
.hero-actions #get-quotes{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#021022;box-shadow:0 10px 30px rgba(96,225,255,0.07),inset 0 -6px 18px rgba(255,255,255,0.03)}
.hero-actions #get-quotes:hover{transform:translateY(-4px);box-shadow:0 26px 60px rgba(96,225,255,0.12)}
.hero-actions #get-quotes:active{transform:translateY(-1px);opacity:0.98}
.hero-actions #get-quotes:focus{outline:3px solid rgba(96,225,255,0.12);outline-offset:3px}

/* Ghost / secondary */
.hero-actions .btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.06);color:var(--muted)}
.hero-actions .btn.ghost:hover{background:rgba(255,255,255,0.02);color:var(--text);border-color:rgba(255,255,255,0.08)}
.hero-actions .btn.ghost:focus{outline:3px solid rgba(255,255,255,0.06);outline-offset:3px}

/* Reusable primary button style (matches hero primary CTA) */
.btn.primary,
.btn--primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#021022;box-shadow:0 10px 30px rgba(96,225,255,0.07),inset 0 -6px 18px rgba(255,255,255,0.03);min-height:56px;padding:0.75rem 1.25rem;border-radius:14px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.btn.primary:hover,
.btn--primary:hover{transform:translateY(-4px);box-shadow:0 26px 60px rgba(96,225,255,0.12)}
.btn.primary:active,
.btn--primary:active{transform:translateY(-1px);opacity:0.98}
.btn.primary:focus,
.btn--primary:focus{outline:3px solid rgba(96,225,255,0.12);outline-offset:3px}

/* small tweak for icons/text inside buttons */
.hero-actions .btn > svg{margin-right:0.5rem;display:inline-block;vertical-align:middle}

/* make the small hero secondary button transparent/ghost */
.hero-actions .btn.small{background:transparent;border:1px solid rgba(255,255,255,0.06);color:var(--text);padding:0.6rem 1rem;font-size:1rem;min-height:40px;border-radius:12px;min-width:200px}
.hero-actions .btn.small:hover{background:rgba(255,255,255,0.02);color:var(--text);border-color:rgba(255,255,255,0.08);transform:translateY(-2px)}
.hero-actions .btn.small:focus{outline:3px solid rgba(255,255,255,0.06);outline-offset:3px}
.btn{display:inline-block;background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#021022;padding:0.45rem 0.85rem;border-radius:8px;text-decoration:none;font-weight:700;box-shadow:0 8px 20px rgba(30,200,255,0.08);border:none}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.04);color:var(--muted)}

/* Remove shadow for project details button */
.btn.outline.details-btn,
.details-btn{box-shadow:none}

.chips{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.8rem}
.chip{background:rgba(255,255,255,0.02);padding:0.35rem 0.65rem;border-radius:999px;color:var(--muted);font-size:0.85rem;border:1px solid rgba(255,255,255,0.02)}
.socials{display:flex;gap:0.9rem;align-items:center}
.social{color:var(--muted);text-decoration:none;margin:0;padding:0;border-radius:10px;border:1px solid rgba(255,255,255,0.02);display:inline-flex;align-items:center;justify-content:center;padding:0.45rem 0.75rem;font-size:1.18rem}
.social .bi{font-size:1.25rem;line-height:1;display:block}

.hero-right{display:flex;justify-content:center}
.hero-illustration{width:100%;max-width:380px;border-radius:12px;box-shadow:0 18px 40px rgba(2,6,23,0.6);display:block;border:1px solid rgba(255,255,255,0.03)}

/* About section redesign */
.about-card{overflow:visible}
.about-grid{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}
.about-card{padding:1rem}
.about-avatar{flex:0 0 140px;margin-right:1rem}
.about-avatar img{width:100%;height:100%;object-fit:cover;border-radius:14px;border:1px solid rgba(255,255,255,0.06);box-shadow:0 18px 40px rgba(2,8,25,0.55);background:linear-gradient(180deg, rgba(255,255,255,0.015), rgba(255,255,255,0.005))}
.about-content{flex:1;min-width:0;text-align:center}
.about-content h2{margin:0 0 0.35rem}
.about-content .lead{margin:0 0 0.9rem}
.about-content .skills{display:flex;gap:0.6rem;flex-wrap:wrap;margin-bottom:0.8rem;justify-content:center}
.contact-cta{display:flex;gap:0.6rem;margin-top:0.6rem}
.contact-cta .btn{padding:0.6rem 0.9rem}
.contact{margin-top:0.8rem}

@media(max-width:760px){
  .about-grid{flex-direction:column;align-items:center;text-align:center}
  .about-avatar img{width:120px;height:120px}
  .about-card{padding:0.75rem}
  .contact-cta{flex-direction:column;width:100%}
  .contact-cta .btn{width:100%}
}

@media(min-width:761px){
  .about-grid{flex-direction:row;align-items:center;text-align:left}
  .about-avatar{flex:0 0 320px}
  .about-avatar img{width:320px;height:320px}
}

/* Extra-wide avatar on very large screens */
@media(min-width:1200px){
  .about-avatar{flex:0 0 620px}
  .about-avatar img{width:620px;height:420px}
}

/* Make About content more prominent on medium and large screens */
.about-content h2{font-size:2.2rem}
.about-content .lead{font-size:1.12rem;line-height:1.5}
.about-content .skills .tag{font-size:0.95rem;padding:0.32rem 0.7rem}
.contact-cta .btn{padding:0.75rem 1rem}

@media(min-width:980px){
  .about-content h2{font-size:2.6rem}
  .about-content .lead{font-size:1.18rem}
  .contact-cta .btn{padding:0.85rem 1.05rem;font-size:1rem}
}

@media(min-width:1400px){
  .about-content{max-width:calc(100% - 680px);padding-left:2rem}
  .about-content h2{font-size:3rem}
  .about-content .lead{font-size:1.22rem}
}

/* Ensure .about-grid isn't forced into column by generic .card-body rules */
.card-body.about-grid{display:flex;flex-direction:row;align-items:center;gap:1.5rem}

@media(max-width:760px){
  .card-body.about-grid{flex-direction:column}
}

/* Why Choose section */
.why-choose .card-body{display:block}
.why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.85rem;margin:3rem 0rem}
.why-choose .feature{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.006));padding:1rem;border-radius:10px;border:1px solid rgba(255,255,255,0.03);box-shadow:0 8px 24px rgba(2,6,18,0.45);display:flex;flex-direction:column;gap:0.85rem;align-items:center;text-align:center}
.why-choose .feature .feature-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,0.02);color:var(--accent);margin-bottom:0}
.why-choose .feature .feature-icon .bi,
.stat-icon .bi { font-size:20px; display:block; line-height:1; }
.why-choose .feature h3{margin:0 0 0.15rem;font-size:1rem}
.why-choose .feature .desc{margin:0;color:var(--muted);font-size:0.95rem}

@media(max-width:560px){
  .why-grid{grid-template-columns:1fr}
}

/* Services section styling */
.services .card-body { text-align: left; }
.services h1 { text-align: center; margin-bottom: 0.6rem }
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}
.services .service{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.006));padding:1rem;border-radius:12px;border:1px solid rgba(255,255,255,0.03);box-shadow:0 8px 24px rgba(2,6,18,0.35);display:flex;flex-direction:column;gap:0.6rem;align-items:center;text-align:center}
.services .service h3{margin:0;font-size:1.05rem}
.services .service .desc{color:var(--muted);margin:0;font-size:0.95rem}
.services .service .price{margin-top:auto;color:var(--accent);font-weight:800;text-align:center}

@media(max-width:980px){
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){
  .services-grid{grid-template-columns:1fr}
}

/* Service icons: match visual style of the Why section feature icons */
.services .service .service-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,0.02);color:var(--accent);margin:0 auto 0.4rem}
.services .service .service-icon .bi{font-size:20px;display:block;line-height:1}

/* Add top spacing between major sections */
.why-choose,
.stats.quick-stats,
.about {
  margin-top:3.5rem;
}

@media(min-width:980px){
  .why-choose,
  .stats.quick-stats,
  .about {
    margin-top:5rem;
  }
}

/* Center heading and lead in Why section */
.why-choose .card-body { text-align: center; }
.why-choose .card-body .lead { max-width: 70ch; margin: 0.4rem auto 0; }

/* Quick stats / metrics */
.stats-grid{display:flex;gap:1rem;margin:3rem 0rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.stat{padding:0.9rem;flex:1 1 220px;min-width:140px;text-align:center}
.stat-number{font-size:2rem;font-weight:800;color:var(--accent);margin-bottom:0.25rem}
.stat-label{color:var(--muted);font-weight:600}

@media(max-width:980px){
  .about-grid{flex-direction:column;align-items:center;text-align:center}
  .about-avatar img{width:240px;height:240px}
}

@media(max-width:560px){
  .stat{flex:0 0 100%}
  .stat-number{font-size:1.6rem}
}

/* stat icon */
.stat-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,0.02);color:var(--accent);margin:0 auto 0.5rem}
.stat svg{display:block}

/* Ensure stats inside card-body stay in a row (override generic .card-body column rule) */
.card-body.stats-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}

/* Remove background, border and shadow for the quick-stats card */
.stats.quick-stats .card,
.stats.quick-stats .card .card-body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

@media(max-width:980px){
  .why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* featured / projects */
.featured{margin-top:8rem}
@media(min-width:980px){
  .featured{margin-top:10rem}
}
/* match featured spacing for services section */
.services{margin-top:8rem}
@media(min-width:980px){
  .services{margin-top:10rem}
}

/* match featured spacing for mission section */
.mission{margin-top:8rem}
@media(min-width:980px){
  .mission{margin-top:10rem}
}

/* match featured spacing for packages section */
.packages{margin-top:8rem}
@media(min-width:980px){
  .packages{margin-top:10rem}
}

/* Make packages wrapper transparent and remove border so it sits flush
   with the page (no panel background or border). */
.packages .card,
.packages .card .card-body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0;
}

/* Mission section: remove card background so only mission items show */
.mission .card,
.mission .card .card-body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem;align-items:start}
.mission-item{padding:1rem;text-align:center;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.006));border-radius:12px;border:1px solid rgba(255,255,255,0.03);box-shadow:0 8px 20px rgba(2,6,18,0.35)}
.mission-item h3{margin:0 0 0.35rem;color:var(--text)}
.mission-item .desc{margin:0;color:var(--muted);font-size:0.95rem}

/* Mission icons match feature icon visuals */
.mission-item .mission-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,0.02);color:var(--accent);margin:0 auto 0.6rem}
.mission-item .mission-icon .bi{font-size:20px;display:block;line-height:1}

/* Package card icons: match visual style used for services/mission */
.packages .package .package-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,0.02);color:var(--accent);margin-bottom:0.6rem}
.packages .package .package-icon .bi{font-size:20px;display:block;line-height:1}

/* Give each package card its own panel background and border */
.packages .package{
  background-color: #071021 !important;
  background-image: none !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(2,6,18,0.35);
}

/* Software projects list: center content and make download link prominent */
/* Software projects wrapper */
.software-projects-list{display:flex;flex-direction:column;align-items:center;gap:0.75rem;padding-left:0;margin:1rem auto;list-style:none;max-width:90ch;text-align:center}
.software-projects-list li{max-width:900px;width:100%}
.software-projects-list a{display:inline-block;margin-top:0.5rem}

/* Software projects section — center headings and lead */
#software-projects{ text-align:center }
#software-projects h2{ margin-bottom:0.25rem }
#software-projects .lead{ max-width:70ch; margin:0.25rem auto 1rem; color:var(--muted) }

/* Software card visuals (refined) */
.software-card{position:relative;background-color:#071021;padding:0;border:1px solid rgba(255,255,255,0.06);border-radius:14px;box-shadow:0 12px 40px rgba(2,6,18,0.45);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.software-card .card-body{padding:1rem 1.25rem}
.software-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%}
.software-info{text-align:left;flex:1;min-width:0}
.software-title{margin:0 0 0.25rem;font-size:1.125rem;font-weight:700;color:var(--text)}
.software-desc{margin:0;color:var(--muted);line-height:1.5}
.software-actions{display:flex;align-items:center;gap:0.75rem}
.download-btn{white-space:nowrap;padding:0.6rem 0.95rem;border-radius:10px;background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#021022;box-shadow:0 10px 30px rgba(96,225,255,0.08);text-decoration:none;display:inline-flex;align-items:center;gap:0.6rem;font-weight:800;transition:transform .12s ease,box-shadow .12s ease}
.download-btn i{font-size:1.05rem;color:#021022}
.download-btn:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(96,225,255,0.12)}
@media(max-width:760px){
  .software-item{flex-direction:column;align-items:center;text-align:center}
  .software-info{text-align:center}
  .download-btn{width:100%;justify-content:center}
}


/* Package features list: replace default bullets with a check mark */
.package-features{list-style:none;padding-left:0;margin:0.8rem 0 1rem}
.package-features li{position:relative;padding-left:1.8rem;margin-bottom:0.5rem;color:var(--muted);line-height:1.45}
.package-features li::before{content:"✓";position:absolute;left:0;top:0.28rem;color:var(--accent);font-weight:700;line-height:1;display:inline-block;height:1rem}

/* Ensure package CTA buttons sit fixed at the bottom of each package card */
.packages .package{display:flex;flex-direction:column;height:100%}
.packages .package .card-body{display:flex;flex-direction:column;flex:1;padding:1rem}
.packages .package .card-body .btn{margin-top:auto;align-self:stretch;display:block;width:100%;text-align:center}

/* Highlight the first package (Starter) to draw attention */
.packages .package:first-child{border-color:var(--accent);box-shadow:0 16px 44px rgba(96,225,255,0.06);}
.packages .package:first-child:hover{transform:translateY(-6px);box-shadow:0 36px 80px rgba(96,225,255,0.10)}
.packages .package:first-child .card-body{background:linear-gradient(180deg, rgba(125,211,252,0.02), rgba(96,225,255,0.01))}

/* Highlight the second package (Business) to make its border active */
.packages .package:nth-of-type(2){
  border-color:var(--accent) !important;
  border-width:2px !important;
  border-style:solid !important;
  box-shadow:0 18px 46px rgba(96,225,255,0.07) !important;
}
.packages .package:nth-of-type(2):hover{transform:translateY(-6px);box-shadow:0 40px 90px rgba(96,225,255,0.11)}

/* Center the mission section heading */
.mission h1{ text-align:center; margin-bottom:0.6rem }

/* Center Packages heading and lead only; keep package cards left-aligned */
.packages h1 { text-align: center; margin-bottom: 0.6rem; }
.packages .card-body > .lead { max-width: 70ch; margin: 0.4rem auto 0; text-align: center; }
.packages .packages-grid, .packages .package .card-body { text-align: left; margin-top: 1rem; }

@media(max-width:980px){
  .mission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){
  .mission-grid{grid-template-columns:1fr}
}
/* Center the section heading for featured projects */
.featured h1{ text-align:center; margin-bottom:0.85rem }
.featured .featured-desc{ text-align:center; max-width:70ch; margin:0.35rem auto 1.25rem; color:var(--muted); font-size:1.25rem }
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;align-items:stretch}

/* Projects grid: force three columns on desktop, two on tablet, one on mobile */
.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}


/* Benefits grid: 3 cards per row on desktop, 2 on tablet, 1 on mobile */
.benefits-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}
.benefits-grid .benefit .card-body{padding:1rem}

/* Benefit cards: panel background, border, and subtle shadow */
.benefits .benefit{
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.006));
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.03);
  box-shadow:0 8px 24px rgba(2,6,18,0.35);
  overflow:hidden;
}


@media(max-width:980px){
  .benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){
  .benefits-grid{grid-template-columns:1fr}
}

/* Benefit icons styling */
.benefits .benefit .benefit-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,0.02);color:var(--accent);margin-bottom:0.6rem}
.benefits .benefit .benefit-icon .bi{font-size:20px;display:block}

/* Vertical spacing for benefits section */
.benefits{margin-top:8rem;margin-bottom:8rem}
@media(min-width:980px){
  .benefits{margin-top:10rem;margin-bottom:10rem}
}

/* Remove card/panel background for the benefits wrapper so it sits flush with page */
/* Target only the direct wrapper card — avoid matching inner .card elements (eg. benefit cards) */
.benefits > .card,
.benefits > .card > .card-body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.card{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.007));padding:0;border-radius:12px;overflow:hidden;box-shadow:0 8px 28px rgba(3,6,12,0.5);transition:transform .18s ease,box-shadow .18s ease;border:1px solid rgba(255,255,255,0.04);backdrop-filter:blur(6px);display:flex;flex-direction:column;height:100%}
.card h3{margin:0 0 0.25rem;padding:0}

.project{display:flex;gap:0.85rem;align-items:stretch}
.project .thumb{width:100%;display:block;background:linear-gradient(135deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));border-bottom:1px solid rgba(255,255,255,0.03);border-right:0}
.project .thumb{position:relative;display:block;overflow:hidden;border-radius:12px}
.project .thumb img{width:100%;height:200px;object-fit:cover;display:block;transition:transform .45s cubic-bezier(.2,.9,.2,1)}
.project .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,0.0), rgba(0,0,0,0.18));opacity:0;transition:opacity .28s ease}
.project .thumb:hover img{transform:scale(1.06)}
.project .thumb:hover::after{opacity:1}

/* Project title link styling */
.project-info h3 a{color:var(--text);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px;transition:color .18s ease,border-color .18s ease}
.project-info h3 a:hover{color:var(--accent);border-color:rgba(125,211,252,0.18)}

/* Subtle meta/tag adjustments for contrast */
.project .meta .tag{background:transparent;border:1px solid rgba(255,255,255,0.03);color:var(--muted);padding:0.22rem 0.5rem;border-radius:999px}

/* Project meta (tags) design */
.project .meta{display:flex;gap:0.5rem;align-items:center;margin-top:0.6rem}
.project .meta .tag{background:linear-gradient(90deg, rgba(125,211,252,0.06), rgba(96,225,255,0.04));color:var(--text);padding:0.32rem 0.65rem;border-radius:999px;border:1px solid rgba(96,225,255,0.12);font-weight:600;font-size:0.88rem;box-shadow:0 6px 18px rgba(2,8,20,0.28)}
.project .meta .tag:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(2,8,20,0.36);background:linear-gradient(90deg, rgba(125,211,252,0.12), rgba(96,225,255,0.08));color:var(--text)}

@media(max-width:760px){
  .project .meta{justify-content:center}
  .project .meta .tag{font-size:0.85rem;padding:0.28rem 0.55rem}
}

@media(max-width:760px){
  .project .thumb img{height:160px}
}
.card-body{padding:1.05rem;display:flex;flex-direction:column}
.card-body .project-actions{margin-top:auto}
.desc{color:var(--muted);margin:0.35rem 0 0.9rem}
.meta{display:flex;gap:0.5rem;align-items:center;flex-wrap:wrap}
.tag{background:linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.008));color:var(--muted);padding:0.22rem 0.5rem;border-radius:999px;font-size:0.8rem;line-height:1;border:1px solid rgba(255,255,255,0.03)}

/* Ensure project tag hover styles override later generic .tag rules */
.project .meta .tag{transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease; cursor:pointer}
.project .meta .tag:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(2,8,20,0.36);background:linear-gradient(90deg, rgba(125,211,252,0.12), rgba(96,225,255,0.08));color:var(--text)}

/* Larger, more prominent tags inside the About skills block */
.about-content .skills .tag{font-size:1rem;padding:0.35rem 0.85rem;color:var(--text);background:linear-gradient(90deg, rgba(96,225,255,0.06), rgba(125,211,252,0.04));border:1px solid rgba(96,225,255,0.12)}

@media(min-width:980px){
  .about-content .skills{gap:0.8rem}
  .about-content .skills .tag{font-size:1.05rem;padding:0.45rem 1rem}
}
.small-link{margin-left:auto;color:var(--accent);text-decoration:none;font-weight:700}

/* redesigned project layout */
.project-top{display:flex;flex-direction:column;gap:0.7rem;padding:0.75rem;flex:1}
.project-info{width:100%;display:flex;flex-direction:column}
.project-info h3{margin:0;font-size:1.25rem;line-height:1.25}
.project-info .desc{margin:0.5rem 0 0;color:var(--muted);line-height:1.5;flex:1}
.project-actions{display:flex;gap:0.6rem;align-items:center}
.btn.small{padding:0.4rem 0.7rem;font-size:0.9rem;border-radius:8px}
.hero-actions #get-quotes{padding:0.95rem 1.4rem;font-size:1.12rem;border-radius:14px}
.project-actions .btn{flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center}
.project-actions .btn + .btn{margin-left:0}
.btn.outline{background:transparent;border:1px solid rgba(255,255,255,0.06);color:var(--muted)}
.btn.outline:hover{color:var(--text);border-color:transparent;background:rgba(255,255,255,0.02)}

/* footer */
.site-footer{
  padding:2.25rem 1rem;
  color:var(--muted);
  background:linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0.005));
  border-top:1px solid rgba(255,255,255,0.04);
  margin-top:3rem;
  font-size:0.95rem;
}

/* Footer grid layout */
.footer-grid{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:start;justify-items:start}
.footer-brand h3{margin:0;color:var(--accent);font-size:1.1rem;letter-spacing:0.6px}
.brand-logo--footer{width:64px;height:64px;display:inline-block;margin:0 0.6rem 0 0;border-radius:10px;vertical-align:middle}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:0.25rem}
.footer-brand > div{display:flex;align-items:center;gap:0.4rem}
.footer-brand .brand-text{color:var(--accent);font-weight:800;font-size:1.05rem}
.footer-brand .footer-note{margin:0;color:var(--muted);font-size:0.95rem}
@media(max-width:560px){
  .footer-brand{align-items:center;text-align:center}
  .brand-logo--footer{width:56px;height:56px}
}

/* Footer link appearance: remove underline and inherit surrounding color */
.site-footer a{color:inherit;text-decoration:none;border-bottom:none}
.site-footer a:focus,.site-footer a:hover{outline:none;text-decoration:none}

/* Responsive layout and breakpoints */
@media (max-width:900px){
  .container{padding:0 1rem}
  .grid, .packages-grid, .services-grid, .why-grid, .projects-grid, .testimonials-grid, .benefits-grid{grid-template-columns:1fr;gap:1rem}
  .hero-inner{padding:2rem 0}
  .hero-title{font-size:1.6rem;line-height:1.2}
  .hero-actions .btn{display:block;width:100%;margin-bottom:0.6rem}
  .card{padding:1rem}
  .modal-panel{max-width:95%;margin:1rem}
  .nav{display:none;position:absolute;top:100%;right:1rem;left:1rem;background:var(--bg-900);padding:1rem;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,0.12)}
  .nav ul{display:flex;flex-direction:column;gap:0.5rem}
  .nav-toggle{display:flex}
  .nav-toggle[aria-expanded="true"] + .nav{display:block}
}

@media (max-width:560px){
  .brand-logo{width:40px;height:40px}
  .brand-logo--footer{width:56px;height:56px}
  .footer-grid{grid-template-columns:1fr;gap:1rem}
  .footer-brand{align-items:center;text-align:center}
  .form-grid{display:block}
  .form-field{width:100%}
  .testimonial-avatar{width:56px;height:56px}
  .project-top{flex-direction:column}
  .project-top .thumb img{width:100%;height:auto}
}

@media (max-width:420px){
  .hero-title{font-size:1.3rem}
  .brand-text{font-size:0.95rem}
  .brand-logo--footer{width:48px;height:48px}
}

/* Testimonials carousel — make slides full-width and touch-friendly on small screens */
.testimonials-carousel{position:relative}
.testimonials-track{display:flex;gap:1rem;overflow-x:auto;padding:0.5rem 0;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.testimonials-track .testimonial{flex:0 0 80%;max-width:720px;scroll-snap-align:center}
.testimonials-grid{display:flex;align-items:stretch}
.testimonial .card-body{display:flex;gap:1rem;align-items:center}
.testimonial-avatar{width:72px;height:72px;border-radius:8px;flex:0 0 auto}

@media (max-width:900px){
  .testimonials-track .testimonial{flex:0 0 90%;max-width:640px}
  .testimonial .card-body{flex-direction:column;align-items:flex-start}
  .testimonial-avatar{width:64px;height:64px}
}

@media (max-width:560px){
  .testimonials-track{gap:0.75rem}
  .testimonials-track .testimonial{flex:0 0 100%;max-width:100%;padding:0}
  .testimonial .card-body{align-items:center;text-align:center}
  .testimonial-avatar{width:56px;height:56px;margin-bottom:0.5rem}
  .carousel-prev,.carousel-next{display:none}
  .carousel-dots{display:flex;justify-content:center;gap:0.4rem;margin-top:0.5rem}
}
/* Responsive overrides for projects grid */
@media (max-width:900px){
  .projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
}

@media (max-width:560px){
  .projects-grid{grid-template-columns:1fr;gap:1rem}
}
.footer-contact h4,.footer-nav h4,.footer-legal h4{margin:0 0 0.45rem;font-size:0.95rem;color:var(--text)}
.footer-contact p{margin:0 0 0.35rem;color:var(--muted);font-size:0.95rem}
.footer-contact a{color:var(--text);text-decoration:none;border-bottom:1px dashed rgba(255,255,255,0.03);padding-bottom:2px;transition:color .12s ease}
.footer-contact a:hover,.footer-contact a:focus{color:var(--accent);border-color:rgba(125,211,252,0.18);outline:none}
.footer-nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.35rem}
.footer-nav a{color:var(--muted);text-decoration:none}
.footer-nav a:hover,.footer-nav a:focus{color:var(--text)}
.footer-legal p{margin:0;color:var(--muted)}

.footer-note{margin-top:1rem;color:var(--muted);text-align:center;font-size:0.95rem}

/* Small screens: stack columns and center content */
@media(max-width:880px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem}
}
@media(max-width:560px){
  .footer-grid{grid-template-columns:1fr;text-align:center;justify-items:center}
  .footer-contact p,.footer-legal p{color:var(--muted)}
  .footer-note{font-size:0.9rem}
  .footer-nav ul{align-items:center}
}

/* Ensure keyboard focus is visible for footer links */
.site-footer a:focus{box-shadow:0 0 0 4px rgba(96,225,255,0.08);border-radius:6px}

/* Back to top button */
.back-to-top{position:fixed;right:1.25rem;bottom:1.25rem;width:52px;height:52px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#021022;border:0;box-shadow:0 12px 30px rgba(2,8,20,0.6);cursor:pointer;opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease;z-index:999}
.back-to-top:focus{outline:3px solid rgba(96,225,255,0.14);outline-offset:4px}
.back-to-top .bi{font-size:1.6rem}
.back-to-top.show{opacity:1;transform:translateY(0);pointer-events:auto}

@media(max-width:560px){
  .back-to-top{right:0.8rem;bottom:0.9rem;width:48px;height:48px}
}

/* responsiveness */
@media(max-width:980px){
  .hero-inner{gap:1rem}
  .hero-left{text-align:center}
  .hero-title{font-size:1.8rem}
}

@media(max-width:760px){
  .eyebrow{font-size:1.1rem}
}

@media(max-width:560px){
  .hero-actions{flex-direction:column;align-items:center}
  .hero-actions .btn{width:100%;text-align:center}
  .project-top{flex-direction:column;align-items:center}
  .project .thumb img{height:180px}
}

@media(max-width:700px){
  .project{flex-direction:column}
  .project .thumb img{width:100%;height:160px}
  .site-header{padding:0.6rem 0.9rem}
  .brand-logo{width:34px;height:34px}
}

/* accessibility: reduce blur on preference */
@media (prefers-reduced-transparency: reduce), (prefers-reduced-motion: reduce) {
  .site-header, .card {backdrop-filter: none}
}

/* filters removed: filter buttons and scripts were deleted from the markup */

/* modal */
.contact-faq{margin-top:6rem;margin-bottom:6rem}
.contact-faq .card{max-width:1100px;margin:0 auto}
.contact-faq .card-body{display:block;padding:0}
.contact-faq .contact-cta--center{padding:1.25rem}
.contact-faq h2{margin:0 0 0.5rem;text-align:center;font-size:1.6rem}
.contact-faq .contact-cta--center p{color:var(--muted);max-width:80ch;margin:0.5rem auto;font-size:1.25rem;line-height:1.6}
.contact-faq .btn{margin-top:0.6rem}
.contact-faq .small-link{margin-left:0.8rem;color:var(--accent);font-weight:700}
.faq-list{margin-top:1rem;display:flex;flex-direction:column;gap:1rem;padding:1rem}
.faq-list h3{margin:0 0 0.6rem;color:var(--text);text-align:center;font-size:1.55rem;}
.faq-list ul{list-style:none;padding:0;margin:0;display:grid;gap:0.6rem}
.faq-list li{background:linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0.005));padding:0.9rem 1rem;border-radius:10px;border:1px solid rgba(255,255,255,0.03);color:var(--text)}
.faq-list li strong{display:block;color:var(--text);font-weight:700}
/* FAQ answer text */
.faq-answer{color:var(--muted);margin-top:0.45rem;margin-left:0;line-height:1.5;font-size:0.98rem}

/* Accordion button */
.faq-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;border:0;padding:0;margin:0;font-size:1.25rem;color:var(--text);text-align:left;cursor:pointer}
.faq-toggle:focus{outline: none; box-shadow: none; border-color: transparent}
.faq-toggle:focus-visible{outline:3px solid rgba(96,225,255,0.12);outline-offset:3px;border-radius:8px;box-shadow:none}
.faq-icon{transition:transform .22s ease;color:var(--muted);margin-left:0}

/* Panel: collapsed by default */
.faq-panel{max-height:0;overflow:hidden;transition:max-height .28s ease,padding .18s ease;padding-top:0;padding-left:0}
.faq-panel.open{max-height:400px;padding-top:0.6rem;padding-left:0}
.faq-panel[aria-hidden="true"]{max-height:0;padding-top:0}

/* When expanded, rotate icon */
.faq-toggle[aria-expanded="true"] .faq-icon{transform:rotate(180deg);color:var(--accent)}
/* Force left alignment for FAQ content */
.faq-toggle, .faq-panel, .faq-answer {text-align:left !important; margin-left:0 !important; padding-left:0 !important}
@media(max-width:760px){
  .contact-faq .card{padding:0.5rem}
  .contact-faq h2{font-size:1.3rem}
}

/* modal */

/* Centered contact CTA inside contact-faq */
.contact-faq .contact-cta--center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.8rem}
.contact-faq .contact-cta--center .btn{min-width:220px}
.testimonials{margin-top:10rem;margin-bottom:10rem}
/* Center section heading and lead inside testimonials */
.testimonials .card-body h1 { text-align: center; }
/* center the lead paragraph by text-align and auto horizontal margins */
.testimonials .card-body .lead { text-align: center; margin: 0  auto 1.25rem; max-width:70ch; }
.testimonials > .card,
.testimonials > .card > .card-body {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Carousel styles: show one testimonial at a time */
.testimonials-carousel{position:relative}
.testimonials-track{overflow:hidden}
.testimonials-track{min-height:320px}
.testimonial{min-height:320px}
.testimonials-grid{display:flex;transition:transform .48s cubic-bezier(.2,.9,.2,1);will-change:transform;gap:0}
.testimonial{flex:0 0 100%;display:flex;justify-content:center;align-items:center;padding:0;margin:0;box-sizing:border-box}
/* Hide non-active slides visually but keep them in layout for the sliding transform to work.
   Use aria-hidden (managed by JS) so CSS and accessibility are in sync. */
.testimonials-grid .testimonial[aria-hidden="true"]{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateZ(0);
  transition:opacity .36s ease, visibility .36s ease;
}
.testimonials-grid .testimonial[aria-hidden="false"]{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity .36s ease, visibility .36s ease;
}
.testimonial.active{
  padding:0;
  max-width:760px;
  margin:0 auto;
}
.testimonial .quote{font-style:italic;color:var(--text);margin:0 0 0.6rem}
.testimonial .meta{color:var(--muted);font-size:0.95rem}

/* Layout: avatar left, content right */
.testimonial .card-body{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:1rem;
  padding:2rem;
  max-width:760px;
  width: min(760px, 92%);
  margin: 0 auto;
}
.testimonial-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,0.06);box-shadow:0 12px 30px rgba(2,6,12,0.45);display:block}
.testimonial-media{flex:0 0 120px;display:flex;align-items:flex-start}
.testimonial-content{flex:1;margin-left:20px}
.testimonial .card-body .quote{margin:0;font-size:1.18rem;line-height:1.5}
.testimonial .card-body .meta{margin-top:0.45rem;font-size:1rem}

@media(max-width:760px){
  .testimonial .card-body{flex-direction:column;align-items:center;text-align:center;padding:1.5rem}
  .testimonial-avatar{margin-bottom:1rem;width:96px;height:96px}
  .testimonial-media{align-items:center}
  .testimonial-content{width:100%}
}

/* Ensure all testimonial text is centered on small screens (explicit overrides) */
@media (max-width:980px) {
  .testimonial,
  .testimonial .card-body,
  .testimonial .testimonial-content,
  .testimonial .quote,
  .testimonial .meta {
    text-align: center !important;
  }
  .testimonial-content { margin-left: 0 !important; width: 100% !important; }
  .testimonial .card-body { align-items: center !important; justify-content: center !important; }
  /* center inline author meta (flex children) */
  .testimonial .meta { justify-content: center !important; }
}

.carousel-prev,.carousel-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  /* prominence: use the site's accent gradient */
  background: linear-gradient(90deg,var(--accent),var(--accent-2));
  color:#021022; /* dark text for contrast on the light gradient */
  border:0;
  padding:0.6rem 0.9rem;
  min-width:48px;
  min-height:48px;
  font-size:1.4rem;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  cursor:pointer;
  box-shadow:0 12px 36px rgba(2,6,12,0.45);
  z-index:30;
  transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease;
  backdrop-filter:blur(4px);
  opacity:1;
}
.carousel-prev:hover,.carousel-next:hover{
  transform:translateY(-50%) scale(1.04);
  /* keep accent gradient but make it slightly darker and more prominent */
  filter:brightness(0.96);
  box-shadow:0 18px 44px rgba(2,6,12,0.55);
}
.carousel-prev{left:0.6rem}
.carousel-next{right:0.6rem}
.carousel-prev:focus,.carousel-next:focus{outline:3px solid rgba(96,225,255,0.18);outline-offset:4px;box-shadow:0 12px 32px rgba(2,6,12,0.6)}

/* Icon sizing inside the circular controls */
.carousel-prev i,
.carousel-next i{
  font-size:1.2rem;
  display:inline-block;
  line-height:1;
}

.carousel-dots{display:flex;gap:0.5rem;justify-content:center;margin-top:2rem;margin-bottom:2rem;}
.carousel-dot{width:12px;height:12px;border-radius:999px;background:rgba(255,255,255,0.06);border:0;cursor:pointer;transition:transform .12s ease, background .12s ease}
.carousel-dot.active{background:var(--accent);transform:scale(1.1)}

@media(max-width:760px){
  .carousel-prev,.carousel-next{min-width:44px;min-height:44px;font-size:1.2rem;padding:0.5rem}
  .carousel-prev{left:0.5rem}
  .carousel-next{right:0.5rem}
}
/* Ensure CSS breakpoint matches JS switch (760px) so transform and
   native scroll modes don't conflict. Hide inactive slides only on
   small screens where native scrolling is used. */
@media(max-width:760px){
  .testimonials-grid{display:block}
  .testimonial[aria-hidden="true"]{display:none}
}
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:9999}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,6,12,0.6),rgba(2,6,12,0.75));backdrop-filter:blur(4px)}
.modal-panel{position:relative;max-width:900px;width:94%;margin:1rem;border-radius:12px;border:1px solid rgba(255,255,255,0.04);box-shadow:0 30px 60px rgba(2,6,12,0.7);background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.006));backdrop-filter:blur(8px);padding:1rem}
.modal-close{position:absolute;right:12px;top:12px;background:transparent;border:0;color:var(--muted);font-size:18px;padding:6px;cursor:pointer}
.modal-inner{display:flex;gap:1rem;align-items:flex-start}
.modal-thumb{flex:0 0 44%;max-width:520px;max-height:60vh;width:auto;height:auto;object-fit:cover;border-radius:8px}
.modal-content h3{margin-top:0}
.modal-content p{color:var(--muted)}
.modal a.btn{display:inline-block;margin-top:0.6rem}

@media(max-width:760px){
  .modal-inner{flex-direction:column}
  .modal-thumb{width:100%;height:220px;object-fit:cover}
}

/* Package CTA: make background transparent for package action buttons */
.packages .package .card-body .btn{
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Keep Business package (second) CTA using primary accent */
.packages .package:nth-of-type(2) .card-body .btn{
  background: linear-gradient(90deg,var(--accent),var(--accent-2)) !important;
  color: #021022 !important;
  box-shadow: 0 8px 20px rgba(30,200,255,0.08) !important;
}

/* Starter (1) and Ecommerce (3) CTAs: add subtle border and white text */
.packages .package:nth-of-type(1) .card-body .btn,
.packages .package:nth-of-type(3) .card-body .btn {
  border: 1px solid rgba(255,255,255,0.08) !important;
  color: var(--text) !important;
  background-color: transparent !important;
}

/* Services CTA buttons: border-only, white text (no background or shadow) */
.services-cta .btn{
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
}
.services-cta .btn:hover{
  background: rgba(255,255,255,0.03) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

/* Hover: give Starter and Ecommerce CTAs the accent background */
.packages .package:nth-of-type(1) .card-body .btn:hover,
.packages .package:nth-of-type(3) .card-body .btn:hover {
  background: linear-gradient(90deg,var(--accent),var(--accent-2)) !important;
  color: #021022 !important;
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(96,225,255,0.08) !important;
  border-color: transparent !important;
}

/* Not Available (Ecommerce) button: disable hover/interaction and show disabled styling */
.packages .package:nth-of-type(3) .card-body .btn{
  cursor: default !important;
  pointer-events: none !important;
  opacity: 0.6 !important;
  color: var(--muted) !important;
  border: 1px solid rgba(255,255,255,0.04) !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.packages .package:nth-of-type(3) .card-body .btn:hover{
  background: transparent !important;
  color: var(--muted) !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Contact form styles */
.contact{margin-top:4rem;margin-bottom:6rem}
.contact .card{max-width:980px;margin:0 auto}
.contact .card-body{padding:1.25rem}
.contact .lead{color:var(--muted);margin-bottom:1rem}
.contact-form{width:100%}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.form-field{display:flex;flex-direction:column}
.form-field label{font-weight:700;color:var(--text);margin-bottom:0.4rem;font-size:0.95rem}
.form-field input,.form-field select,.form-field textarea{background:transparent;border:1px solid rgba(255,255,255,0.04);padding:0.7rem 0.85rem;border-radius:10px;color:var(--text);box-shadow:inset 0 -6px 18px rgba(255,255,255,0.01);font-size:0.98rem}
.form-field select{ /* match inputs/textarea visuals and add arrow */
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  padding:0.7rem 0.9rem 0.7rem 0.85rem; /* same vertical padding as inputs */
  border-radius:10px;
  font-size:0.98rem;
  color:var(--text);
  background:transparent;
  box-shadow:inset 0 -6px 18px rgba(255,255,255,0.01);
  border:1px solid rgba(255,255,255,0.04);
  line-height:1.2;
  min-height:44px;
  padding-right:2.6rem; /* room for the custom arrow */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%239aa4b2' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px;
  font-family: inherit;
}
/* give the placeholder-like empty option a muted colour in browsers that support :invalid */
.form-field select:invalid{color:rgba(255,255,255,0.45)}
.form-field select:focus{outline:none;box-shadow:0 0 0 5px rgba(96,225,255,0.06);border-color:rgba(125,211,252,0.22)}
/* Hide IE/Edge default arrow */
.form-field select::-ms-expand{display:none}
/* options styling where supported */
.form-field select option{color:var(--text);background:transparent}

/* Ensure textarea matches input sizing */
.form-field textarea{min-height:120px;padding:0.7rem 0.85rem;border-radius:10px;background:transparent;border:1px solid rgba(255,255,255,0.04);box-shadow:inset 0 -6px 18px rgba(255,255,255,0.01);color:var(--text);font-size:0.98rem}
/* Hide IE/Edge default arrow */
.form-field select::-ms-expand{display:none}
.form-field input::placeholder,.form-field textarea::placeholder{color:rgba(255,255,255,0.18)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;box-shadow:0 0 0 5px rgba(96,225,255,0.06);border-color:rgba(125,211,252,0.18)}
.form-field--full{grid-column:1 / -1}
.form-field--wide{grid-column:1 / -1}
.form-field--wide .select-wrap{width:100%}
.form-field--wide .select-wrap select{width:100%}
.form-actions{margin-top:1rem;display:flex;justify-content:flex-start;width:100%;}
.form-actions .btn{min-width:0;width:100%;padding:0.85rem 1rem;border-radius:12px;font-weight:700;text-align:center;font-size:1.02rem;letter-spacing:0.4px;text-transform:none;} /* full width + added padding for Send Message */

@media(max-width:760px){
  .form-grid{grid-template-columns:1fr}
  .form-actions{justify-content:center}
  .contact .card-body{padding:0.9rem}
}

/* Visual feedback for contact form submissions */
.contact-result{min-height:0;margin-bottom:0.6rem;color:var(--text);font-weight:700;text-align:center}
.contact-result.success{color: #052436; background: linear-gradient(90deg,var(--accent),var(--accent-2)); padding:0.6rem;border-radius:10px}
.contact-result.error{color: #ffdede; background: rgba(255,0,0,0.08); padding:0.6rem;border-radius:10px}

/* Small helpers */
.contact .muted{color:var(--muted)}

/* select wrap + tag (visual pill) */
.select-wrap{position:relative;display:block}
.select-wrap .select-tag{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#021022;padding:0.2rem 0.6rem;border-radius:999px;font-weight:700;font-size:0.85rem;box-shadow:0 6px 18px rgba(2,6,12,0.3);display:inline-flex;align-items:center;gap:0.4rem}
.select-wrap .select-tag.hidden{display:none}

/* Make text inputs and textareas visually match the select design */
.form-field input,
.form-field textarea {
  width: 100%;
  -webkit-appearance: none;
  appearance: none;
  padding: 0.7rem 0.9rem;
  padding-right: 2.6rem; /* keep space consistent with select arrow spacing */
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.04);
  box-shadow: inset 0 -6px 18px rgba(255,255,255,0.01);
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.007));
  color: var(--text);
  font-size: 0.98rem;
  min-height: 44px;
}

/* When fields span full width keep them consistent */
.form-field--wide .form-field input,
.form-field--wide .form-field textarea,
.form-field--wide input,
.form-field--wide textarea{
  width:100%;
}

/* Ensure select dropdowns and their option lists have a solid background
   Some browsers limit option styling, but this helps in modern browsers */
.form-field select,
.form-field select option {
  background-color: var(--bg-800);
  color: var(--text);
}
.form-field select option {
  background-color: var(--bg-800) !important;
  color: var(--text) !important;
}

/* Services CTA block below contact */
.services-cta{margin-top:3rem;margin-bottom:3rem}
.services-cta .card{max-width:1100px;margin:0 auto;padding:0}
.services-cta .card-body{padding:1rem}
.services-cta .cta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}
.services-cta .cta-item{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.006));padding:1rem;border-radius:10px;border:1px solid rgba(255,255,255,0.03);min-height:160px;display:flex;flex-direction:column;gap:0.6rem}
.services-cta .cta-item h3{margin:0}
.services-cta .cta-item p{margin:0;color:var(--muted)}
.services-cta .cta-item .btn{margin-top:auto}

@media(max-width:980px){
  .services-cta .cta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .services-cta .cta-grid{grid-template-columns:1fr}
}

/* Center services CTA heading and lead */
.services-cta .card-body h2{ text-align:center; margin-bottom:0.45rem }
.services-cta .card-body .lead{ text-align:center; max-width:70ch; margin:0.25rem auto 0; color:var(--muted) }

/* Constrain message textarea so it doesn't expand horizontally — only vertically */
#contact-message {
  min-width: 100%;
  max-width: 100%;
  min-height: fit-content;
  max-height: fit-content;
  box-sizing: border-box;
  display: block;
}
#recaptcha-container{display: flex; justify-content: center; margin-top: 1rem;}



