/* Web & App Development page (website-development-company-in-jaipur.php).
   Reference design: alternating dark and off-white bands, everything in Outfit.
   Colours are the design pack's tokens. The page sits in #v3-rhythm, so the sitewide
   section-rhythm rules leave its spacing alone; each band pads itself here. */

.wa {
  --wa-dark: #08080F; --wa-indigo: #383070; --wa-pink: #E34576; --wa-orange: #F29C48;
  --wa-light: #FAF9F6; --wa-card: #F0EFF4; --wa-text: #11121B; --wa-muted: #626271;
  --wa-r: 20px;
  --wa-pad: clamp(64px, 8vw, 100px);
  --wa-grad-text: linear-gradient(100deg, #E8517F, #F29C48);
  --font-body: var(--font-head);           /* the sitewide font sweep reads this */
}
.wa-light {
  background: var(--wa-light);
  --ink: var(--wa-text); --ink-2: #4F4F5D; --ink-3: var(--wa-muted);
  --accent: #C42F5E; --line: rgba(17,18,27,.08); --line-2: rgba(17,18,27,.15);
  color: var(--ink-2);
}
.wa-dark { background: var(--wa-dark); color: var(--ink-2); }

.wa-sec { position: relative; padding-block: var(--wa-pad); overflow: clip; }
.wa-light + .wa-light, .wa-dark + .wa-dark { padding-top: 0; }
.wa-wrap { max-width: calc(1280px + 144px); margin-inline: auto; padding-inline: clamp(16px, 5vw, 72px); }   /* 1280 px of content + side padding */

/* ---------- type */
.wa h1 { font-size: clamp(2.5rem, 1.4rem + 3.3vw, 4rem); font-weight: 600; line-height: 1.04; letter-spacing: -.035em; color: var(--ink); margin: 0; }
.wa h2 { font-size: clamp(1.9rem, 1.25rem + 2.1vw, 3rem); font-weight: 600; line-height: 1.08; letter-spacing: -.03em; color: var(--ink); margin: 0; text-wrap: balance; }
.wa h1 span, .wa h2 span {
  display: block; color: var(--wa-pink);
  background: var(--wa-grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.wa h3, .wa h4 { color: var(--ink); margin: 0; }
.wa .wa-h-sm { font-size: clamp(1.4rem, 1.1rem + .9vw, 1.85rem); letter-spacing: -.02em; }
.wa .wa-lead { font-size: clamp(1.05rem, .97rem + .35vw, 1.22rem); line-height: 1.55; color: var(--ink-2); margin-top: 1.25rem !important; max-width: 36ch; }
.wa .wa-chip {
  display: inline-flex; align-items: center; margin: 0 0 1.35rem !important;
  padding: .42rem .9rem; border: 1px solid var(--line-2); border-radius: 999px;
  font-size: .7rem; font-weight: 600; letter-spacing: .09em !important; text-transform: uppercase; line-height: 1.2; color: var(--ink);
}
.wa-dark .wa-chip { border-color: rgba(255,255,255,.2); }
.wa-ico { width: 1em; height: 1em; flex: none; }

/* ---------- buttons and links */
.wa .wa-btn {
  display: inline-flex; align-items: center; gap: .55rem; padding: .95rem 1.45rem; border-radius: 12px;
  font-weight: 600; font-size: 1rem; line-height: 1; white-space: nowrap;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s;
}
.wa .wa-btn:hover { transform: translateY(-2px); }
.wa .wa-btn-pink { background: var(--wa-pink); color: #fff !important; box-shadow: 0 12px 32px -12px rgba(227,69,118,.75); }
.wa .wa-btn-pink:hover { background: #EC5486; }
.wa .wa-btn-dark { background: var(--wa-text); color: #fff !important; }
.wa .wa-btn-dark:hover { background: #262636; }
.wa .wa-btn-orange { background: var(--wa-orange); color: #1A1206 !important; box-shadow: 0 12px 32px -12px rgba(242,156,72,.7); }
.wa .wa-btn-orange:hover { background: #F6AC62; }
.wa .wa-btn-text { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; color: var(--ink) !important; }
.wa .wa-btn-text:hover { color: #FF8FB1 !important; }
.wa .wa-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: 2.25rem; padding-bottom: .45rem; border-bottom: 2px solid var(--wa-pink); font-weight: 600; color: var(--ink) !important; }
.wa .wa-link:hover { border-color: var(--wa-orange); }

/* ---------- hero */
.wa-hero {
  background: radial-gradient(ellipse at 78% 42%, rgba(56,48,112,.6) 0%, transparent 52%),
              radial-gradient(ellipse at 100% 100%, rgba(227,69,118,.16), transparent 45%), var(--wa-dark);
  padding-block: clamp(40px, 6vw, 88px) clamp(56px, 7vw, 96px);
}
.wa-hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.wa-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: 2.1rem; }
.wa .wa-note { display: flex; align-items: center; gap: .65rem; margin-top: clamp(2rem, 5vw, 3.75rem) !important; font-size: .86rem; color: var(--ink-3); }
.wa-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--wa-pink); box-shadow: 0 0 0 4px rgba(227,69,118,.2); }
.wa-hero-art img { display: block; width: 100%; height: auto; border-radius: 0; filter: drop-shadow(0 30px 60px rgba(0,0,0,.45)); }

/* ---------- section heads */
.wa-head { margin-bottom: clamp(28px, 4vw, 48px); }
.wa-head-split { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem 3rem; }
.wa .wa-head-aside { max-width: 46ch; font-size: 1.05rem; line-height: 1.6; color: var(--ink-2); }
.wa-head-aside br { display: none; }

/* ---------- services bento */
.wa-bento { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.wa-card {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); min-height: 228px;
  background: var(--wa-card); border: 1px solid rgba(17,18,27,.05); border-radius: var(--wa-r); overflow: hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.wa-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -28px rgba(17,18,27,.35); }
.wa-card-copy { position: relative; z-index: 1; padding: 26px 8px 76px 26px; }
.wa .wa-card h3 { font-size: 1.2rem; font-weight: 600; letter-spacing: -.015em; line-height: 1.25; margin-bottom: .5rem; }
.wa .wa-card p { font-size: .92rem; line-height: 1.5; color: var(--ink-3); }
.wa-go {
  position: absolute; left: 26px; bottom: 24px; z-index: 1; display: grid; place-items: center;
  width: 38px; height: 38px; border-radius: 50%; background: #fff; color: var(--wa-text); box-shadow: 0 2px 10px rgba(17,18,27,.1);
  transition: transform .3s var(--ease);
}
.wa-card:hover .wa-go { transform: translateX(3px); }
.wa-card-art { position: relative; min-width: 0; }
.wa-card-art img { border-radius: 0; }

/* zoomed so the narrow crop shows the store bar and chair, not half the headline */
.wa-card-web .wa-card-art { margin-top: 22px; overflow: hidden; border-radius: 14px 0 0 0; box-shadow: -6px 6px 24px rgba(17,18,27,.12); }
.wa-card-web .wa-card-art img { position: absolute; top: 0; right: 0; width: auto; height: 140%; max-width: none; }
.wa-card-mobile .wa-card-art img { position: absolute; top: 16px; left: 50%; width: min(156px, 82%); height: auto; transform: translateX(-50%); }
.wa-card-software { background: linear-gradient(140deg, #251E5C, #3A2D84 55%, #4B2F7E); border-color: transparent; }
.wa .wa-card-software h3 { color: #fff; }
.wa .wa-card-software p { color: rgba(255,255,255,.78); }
.wa-card-software .wa-go { background: var(--wa-pink); color: #fff; }
.wa-card-software .wa-card-art img { position: absolute; top: 34px; left: 4px; width: 175%; max-width: none; height: auto; filter: drop-shadow(0 18px 30px rgba(0,0,0,.35)); }
.wa-card-flow .wa-card-art img { position: absolute; top: 50%; left: 50%; width: 132%; max-width: none; height: auto; transform: translate(-50%, -50%); }

/* native mini UIs (CRM, portal) */
.wa-ui { align-self: center; margin: 22px 20px 22px 0; padding: 10px; background: #fff; border: 1px solid rgba(17,18,27,.06); border-radius: 14px; box-shadow: 0 10px 24px -16px rgba(17,18,27,.35); font-size: .72rem; color: var(--wa-text); }
.wa-ui-tabs { display: flex; gap: .9rem; padding: 2px 6px 8px; border-bottom: 1px solid rgba(17,18,27,.07); margin-bottom: 6px; color: var(--wa-muted); }
.wa-ui-tabs b { font-weight: 600; color: var(--wa-text); box-shadow: inset 0 -2px 0 var(--wa-pink); padding-bottom: 6px; margin-bottom: -9px; }
.wa-ui-row { display: flex; align-items: center; gap: .55rem; padding: 7px 6px; border-radius: 8px; font-weight: 500; }
.wa-ui-row + .wa-ui-row { margin-top: 2px; }
.wa-ui-row em { margin-left: auto; font-style: normal; color: var(--wa-muted); }
.wa-ui-row i { width: 14px; height: 14px; flex: none; border-radius: 50%; }
.wa-ui-row i.sq { border-radius: 4px; background: #E4E1F5; }
.wa-ui-row.is-on { background: #F2F0FB; color: #4B3FB0; }
.wa-ui-row.is-on i.sq { background: #6D5FE0; }
.c-pink { --c: #E34576; } .c-orange { --c: #F29C48; } .c-green { --c: #22C55E; } .c-violet { --c: #8B7CF6; }
.wa-ui-row i[class^="c-"] { background: var(--c); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 18%, transparent); }

/* ---------- custom software feature */
.wa-feature { background: radial-gradient(ellipse at 82% 50%, rgba(56,48,112,.55), transparent 55%), var(--wa-dark); }
.wa-feature-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.wa-tags { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; margin: 1.75rem 0 0; padding: 0; }
.wa .wa-tags li { padding: .5rem .85rem; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(255,255,255,.05); font-size: .85rem; color: var(--ink); }
.wa-feature-art { margin: 0; }
.wa-feature-art img { display: block; width: 100%; height: auto; border-radius: 0; filter: drop-shadow(0 30px 60px rgba(0,0,0,.5)); }
.wa-feature-art figcaption, .wa-tile figcaption { margin-top: .8rem; font-size: .82rem; color: var(--ink-3); }
.wa-feature-art figcaption { text-align: right; }

/* ---------- work */
.wa-filter { display: flex; flex-wrap: wrap; gap: .5rem; }
.wa-filter button {
  padding: .6rem 1.2rem; border: 1px solid rgba(17,18,27,.15); border-radius: 999px; background: #fff;
  font: inherit; font-size: .9rem; font-weight: 600; color: var(--wa-text); cursor: pointer; transition: background-color .2s, color .2s, border-color .2s;
}
.wa-filter button:hover { border-color: var(--wa-text); }
.wa-filter button[aria-pressed="true"] { background: var(--wa-text); border-color: var(--wa-text); color: #fff; }
.wa-filter button:focus-visible { outline: 2px solid var(--wa-pink); outline-offset: 2px; }
/* widths follow each image's aspect ratio (--r), so all tiles in a row share one height */
.wa-work-grid { display: flex; align-items: flex-start; gap: 20px; }
.wa-tile { flex: var(--r) 1 0; min-width: 0; margin: 0; }
.wa-tile[hidden] { display: none; }
.wa-work-grid:has(.wa-tile[hidden]) .wa-tile { max-width: 640px; }
.wa-work-grid:has(.wa-tile[hidden]) .wa-tile-phone { max-width: 300px; }
.wa-tile-img { overflow: hidden; background: #EEEDF5; border: 1px solid rgba(17,18,27,.06); border-radius: 18px; }
.wa-tile-img img { display: block; width: 100%; height: auto; border-radius: 0; transition: transform .7s var(--ease); }
.wa-tile:hover .wa-tile-img img { transform: scale(1.03); }
.wa .wa-tile strong { font-weight: 600; color: var(--ink); }

/* ---------- why us */
.wa-why { background: radial-gradient(ellipse at 8% 0%, rgba(56,48,112,.5), transparent 50%), var(--wa-dark); }
.wa-why-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.wa-why-card { padding: 26px; background: #11111B; border: 1px solid rgba(255,255,255,.08); border-radius: 18px; transition: border-color .25s, transform .35s var(--ease); }
.wa-why-card:hover { border-color: rgba(227,69,118,.4); transform: translateY(-3px); }
.wa-num { display: inline-block; font-size: .8rem; font-weight: 600; background: var(--wa-grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.wa .wa-why-card h3 { font-size: 1.15rem; font-weight: 600; letter-spacing: -.01em; margin: .85rem 0 .5rem; }
.wa .wa-why-card p { font-size: .95rem; line-height: 1.6; color: var(--ink-2); }

/* ---------- process + technology */
.wa-process-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); }
.wa-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: clamp(28px, 4vw, 44px) 0 0; padding: 0; }
.wa-steps li { padding: 0 1.25rem; border-left: 1px solid rgba(17,18,27,.12); }
.wa-steps li:first-child { padding-left: 0; border-left: 0; }
.wa-step-n { display: block; font-size: clamp(2rem, 1.5rem + 1.3vw, 2.75rem); font-weight: 500; line-height: 1; letter-spacing: -.02em; color: #8C86B8; }
.wa .wa-steps h3 { font-size: 1.05rem; font-weight: 600; margin: 1rem 0 .4rem; }
.wa .wa-steps p { font-size: .9rem; line-height: 1.5; color: var(--ink-3); }
.wa-tech { padding-left: clamp(24px, 4vw, 56px); border-left: 1px solid rgba(17,18,27,.1); }
.wa-tech-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 12px; list-style: none; margin: 1.75rem 0 0; padding: 0; }
.wa-tech-grid li { display: flex; flex-direction: column; align-items: center; gap: .6rem; text-align: center; }
.wa-logo { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 16px; background: var(--wa-text); }
.wa-logo img, .wa-logo svg { width: 34px; height: 34px; object-fit: contain; border-radius: 0; }
.wa .wa-tech-grid h3 { font-size: .92rem; font-weight: 500; color: var(--ink-2); }

/* ---------- integrations */
.wa-integrations { background: radial-gradient(ellipse at 0% 100%, rgba(227,69,118,.13), transparent 45%), var(--wa-dark); }
.wa .wa-integrations h2 { font-size: clamp(1.9rem, 1.2rem + 1.9vw, 2.8rem); }
.wa-int-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.wa-int-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.wa-int { padding: 22px; background: #11111B; border: 1px solid rgba(255,255,255,.09); border-radius: 18px; }
.wa .wa-int h3 { font-size: 1.1rem; font-weight: 600; margin-bottom: .4rem; }
.wa .wa-int p { font-size: .88rem; line-height: 1.5; color: var(--ink-3); }
.wa-mini { display: flex; align-items: center; gap: .75rem; margin: 1.1rem 0; padding: .75rem .9rem; border-radius: 12px; background: #fff; color: var(--wa-text); }
.wa .wa-mini small { display: block; font-size: .72rem; color: var(--wa-muted); }
.wa .wa-mini b { display: block; font-size: .95rem; font-weight: 600; color: var(--wa-text); }
.wa-mini-ok { display: grid; place-items: center; width: 30px; height: 30px; flex: none; border-radius: 50%; background: #16A34A; color: #fff; }
.wa-mini-ok svg { width: 16px; height: 16px; }
.wa .wa-mini-av { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 50%; background: linear-gradient(135deg, var(--wa-pink), var(--wa-orange)); font-size: .78rem; font-weight: 600; color: #fff; }
.wa-mini-api { justify-content: space-between; }
.wa .wa-mini-api b { font-size: .74rem; line-height: 1.25; text-align: center; }
.wa-mini-api { gap: .4rem; padding-inline: .7rem; }
.wa-mini-api svg { width: 20px; flex: none; color: var(--wa-muted); }
.wa-dots { display: grid; gap: .45rem; list-style: none; margin: 0; padding: 0; }
.wa .wa-dots li { display: flex; align-items: center; gap: .55rem; font-size: .85rem; color: var(--ink-2); }
.wa-dots li::before { content: ""; width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--c); }

/* ---------- FAQ (Bootstrap accordion, restyled) */
.wa-faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.wa-faq .accordion {
  --bs-accordion-bg: #fff; --bs-accordion-border-width: 0; --bs-accordion-btn-focus-box-shadow: 0 0 0 3px rgba(227,69,118,.25);
  --bs-accordion-active-bg: #fff; --bs-accordion-active-color: var(--wa-text);
  --bs-accordion-btn-active-icon: var(--bs-accordion-btn-icon);
  display: grid; gap: 12px;
}
.wa-faq .accordion-item { margin: 0 !important; overflow: hidden; background: #fff; border: 1px solid rgba(17,18,27,.08) !important; border-radius: 14px !important; }
.wa .wa-faq .accordion-header { margin: 0; font-size: inherit; line-height: inherit; letter-spacing: 0; }
.wa-faq .accordion-button { gap: .75rem; padding: 1.05rem 1.25rem; background: #fff; box-shadow: none; font-size: 1rem; font-weight: 600; line-height: 1.4; color: var(--wa-text); }
.wa-faq .accordion-button:not(.collapsed) { color: var(--wa-text); background: #fff; box-shadow: none; }
.wa-faq .accordion-body { padding: 0 1.25rem 1.2rem; font-size: .96rem; line-height: 1.7; color: var(--ink-2); }

/* ---------- final call to action */
.wa-cta {
  background: radial-gradient(ellipse at 95% 70%, rgba(227,69,118,.33), transparent 45%),
              radial-gradient(ellipse at 40% 90%, rgba(56,48,112,.4), transparent 50%), var(--wa-dark);
  padding-block: clamp(56px, 7vw, 88px);
}
.wa-cta-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; }
.wa .wa-cta h2 span { display: inline; }
.wa .wa-cta .wa-lead { max-width: none; margin-top: .75rem !important; }

/* ---------- smaller screens */
@media (max-width: 991.98px) {
  .wa-hero-grid, .wa-feature-grid, .wa-int-grid, .wa-faq-grid, .wa-process-grid { grid-template-columns: minmax(0, 1fr); }
  .wa-hero-art { max-width: 640px; }
  .wa-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wa-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wa-tech { padding: clamp(28px, 5vw, 40px) 0 0; border-left: 0; border-top: 1px solid rgba(17,18,27,.1); }
  .wa-tech-grid { grid-template-columns: repeat(4, minmax(64px, 96px)); }
  .wa-int-cards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}
@media (max-width: 767.98px) {
  .wa-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .wa-steps li:nth-child(3) { padding-left: 0; border-left: 0; }
  .wa-work-grid { flex-direction: column; }
  .wa-tile, .wa-work-grid:has(.wa-tile[hidden]) .wa-tile { width: 100%; max-width: none; flex: none; }
  .wa-tile-phone, .wa-work-grid:has(.wa-tile[hidden]) .wa-tile-phone { max-width: 280px; }
}
@media (max-width: 639.98px) {
  .wa-bento, .wa-why-grid { grid-template-columns: minmax(0, 1fr); }
  .wa-card { min-height: 210px; }
  .wa-cta-row { flex-direction: column; align-items: flex-start; }
  .wa-filter { gap: .4rem; }
  .wa-filter button { padding: .5rem .85rem; font-size: .85rem; }
  .wa .wa-btn { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .wa-card, .wa-go, .wa-tile-img img, .wa-why-card, .wa .wa-btn { transition: none; }
  .wa-card:hover, .wa-why-card:hover, .wa .wa-btn:hover { transform: none; }
  .wa-tile:hover .wa-tile-img img { transform: none; }
}
