/* =========================================================
   Bluwin Infotech: inner pages, forms and blog
   (builds on style.css tokens)
   ========================================================= */

/* ---------- Desktop header links ---------- */
.header-nav { display: none; gap: 4px; position: absolute; left: 50%; transform: translateX(-50%); }
.header-nav a { padding: 10px 16px; border-radius: 999px; font-size: 15px; font-weight: 500; color: rgba(255,255,255,.85); transition: background .3s, color .3s; }
.header-nav a:hover, .header-nav a[aria-current] { background: rgba(255,255,255,.12); color: #fff; }
body.header-on-light .header-nav a { color: var(--ink); }
body.header-on-light .header-nav a:hover, body.header-on-light .header-nav a[aria-current] { background: rgba(20,18,46,.07); }
body.menu-open .header-nav { opacity: 0; pointer-events: none; }
@media (min-width: 1100px) { .header-nav { display: flex; } }

/* ---------- Page hero ---------- */
.page-hero {
  position: relative; overflow: hidden; color: #fff;
  min-height: min(70svh, 640px); display: flex; align-items: flex-end;
  padding: clamp(120px, 18vh, 170px) 0 clamp(48px, 8vh, 84px);
  background: radial-gradient(120% 90% at 80% 20%, #2f2a78 0%, var(--navy-deep) 60%);
}
.page-hero__glow { position: absolute; width: 55vmax; height: 55vmax; right: -12vmax; top: -18vmax; background: radial-gradient(circle, rgba(53, 88, 166,.5), transparent 60%); filter: blur(40px); animation: drift 14s ease-in-out infinite alternate; }
.page-hero__mark { position: absolute; right: clamp(-40px, 4vw, 120px); bottom: -8%; width: clamp(160px, 22vw, 320px); height: auto; opacity: .14; animation: float 7s ease-in-out infinite; pointer-events: none; }
.page-hero__inner { position: relative; z-index: 2; display: grid; gap: 16px; }
.page-hero h1 { font-size: var(--fs-h1); max-width: 22ch; }
.page-hero__lead { max-width: 60ch; color: rgba(255,255,255,.75); }
.page-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; color: rgba(255,255,255,.7); }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.page-hero .pill--line { color: #fff; }
.page-hero .pill--line:hover { background: #fff; color: var(--ink); }
.badge-draft { background: #f5c76b; color: #3b2a00; padding: 2px 10px; border-radius: 999px; font-weight: 600; }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: rgba(255,255,255,.6); }
.crumbs li + li::before { content: "/"; margin-right: 6px; opacity: .5; }
.crumbs a:hover { color: #fff; }
.crumbs [aria-current] { color: rgba(255,255,255,.9); }

/* ---------- Generic sections ---------- */
.section { padding: clamp(64px, 11vh, 130px) 0; }
.section--tint { background: rgba(236, 239, 247, .6); }
body[data-bg="dark"] .section--tint { background: transparent; }
.lead-muted { color: var(--fg-muted); max-width: 56ch; margin: 14px 0 22px; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.split--top { align-items: start; }
.split__media { border-radius: var(--radius); overflow: hidden; box-shadow: 0 40px 80px -40px rgba(20,18,46,.45); }
.split__media img { width: 100%; height: auto; display: block; }
.split__media--small { margin-top: 28px; max-width: 520px; }
.ticks { display: grid; gap: 12px; margin: 0 0 26px; }
.ticks li { position: relative; padding-left: 34px; }
.ticks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 50%; background: rgba(53, 88, 166,.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4L18 8' fill='none' stroke='%233458A4' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat; }

/* ---------- Service cards ---------- */
.svc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.svc-card {
  position: relative; display: grid; align-content: start; gap: 10px; min-height: 250px;
  padding: 28px 26px; border-radius: var(--radius-sm); background: var(--tile); overflow: hidden; isolation: isolate;
  transition: transform .5s var(--ease), color .4s;
}
.svc-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--navy); transform: translateY(101%); transition: transform .6s var(--ease); }
.svc-card:hover { transform: translateY(-6px); color: #fff; }
.svc-card:hover::before { transform: none; }
.svc-card__no { font-size: 13px; font-weight: 600; color: var(--blue); margin-bottom: 26px; transition: color .4s; }
.svc-card:hover .svc-card__no { color: #D2DCF0; }
.svc-card h3 { font-size: var(--fs-h3); }
.svc-card p { color: var(--muted); font-size: 15px; transition: color .4s; }
.svc-card:hover p { color: rgba(255,255,255,.75); }
.svc-card__more { margin-top: auto; padding-top: 16px; font-weight: 500; font-size: 15px; }
.svc-cards--compact .svc-card { min-height: 0; }

/* ---------- Deliverables ---------- */
.deliver { display: grid; gap: 0; border-top: 1px solid var(--line-c); }
.deliver li { display: grid; grid-template-columns: 52px 1fr; gap: 14px; padding: 22px 0; border-bottom: 1px solid var(--line-c); }
.deliver__no { font-size: 13px; font-weight: 600; color: var(--blue); padding-top: 4px; }
.deliver h3 { font-size: var(--fs-h3); margin-bottom: 6px; }
.deliver p { color: var(--fg-muted); font-size: 15px; }

/* ---------- Enquiry / contact ---------- */
.enquire__grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.enquire__grid--contact { grid-template-columns: 1.5fr 1fr; }
.form-card { background: #fff; border-radius: var(--radius); padding: clamp(22px, 3vw, 40px); box-shadow: 0 30px 80px -40px rgba(20,18,46,.35); color: var(--ink); }
.form-card__title { font-size: var(--fs-h3); margin-bottom: 20px; }
.contact-list { display: grid; gap: 8px; font-weight: 500; }
.contact-list a { border-bottom: 1px solid currentColor; }
.contact-side { display: grid; gap: 12px; }
.contact-box { background: var(--tile); border-radius: var(--radius-sm); padding: 22px 24px; display: grid; gap: 6px; }
.contact-box--wa { background: #e6f9ee; }
.contact-box__big { font-size: clamp(20px, 2vw, 26px); font-weight: 600; letter-spacing: -.01em; color: var(--navy); }
.contact-box__big--sm { font-size: 17px; word-break: break-word; }
.contact-box--wa .contact-box__big { color: #128c4b; }

/* ---------- Lead form ---------- */
.lead-form { display: grid; gap: 18px; }
.lead-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lead-form--compact .lead-form__grid { grid-template-columns: 1fr 1fr; }
.field { display: grid; gap: 6px; font-size: 14px; font-weight: 500; color: var(--ink); }
.field--full { grid-column: 1 / -1; }
.field input, .field select, .field textarea {
  font: 400 15px/1.4 var(--font-body); color: var(--ink);
  width: 100%; padding: 13px 14px; border: 1px solid #d7dbea; border-radius: 12px; background: #fbfcff;
  transition: border-color .25s, box-shadow .25s, background .25s;
}
.field textarea { resize: vertical; min-height: 96px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--blue); background: #fff; box-shadow: 0 0 0 4px rgba(53, 88, 166,.14); }
.field.is-invalid input, .field.is-invalid select { border-color: #d64545; box-shadow: 0 0 0 3px rgba(214,69,69,.12); }
.consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--muted); line-height: 1.5; }
.consent input { margin-top: 3px; width: 17px; height: 17px; accent-color: var(--blue); flex: 0 0 auto; }
.consent a { text-decoration: underline; }
.consent.is-invalid { color: #b42318; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lead-form__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.lead-form__actions button[disabled] { opacity: .65; cursor: progress; }
.lead-form__alert { background: #fdecec; color: #9b1c1c; padding: 12px 16px; border-radius: 12px; font-size: 14px; }
.pill--wa { background: #25D366; color: #fff; }
.pill--wa:hover { background: #1fb457; }
.pill { border: 0; }

/* ---------- Blog listing ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; }
.chips a { padding: 8px 16px; border-radius: 999px; background: var(--tile); font-size: 14px; font-weight: 500; transition: background .3s, color .3s; }
.chips a span { opacity: .55; margin-left: 4px; }
.chips a:hover { background: #e1e6f3; }
.chips a[aria-current] { background: var(--navy); color: #fff; }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 18px; }
.post-card a { display: grid; gap: 14px; }
.post-card__img { aspect-ratio: 16 / 10; background: var(--navy); }
.post-card__img img, .card__art--img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.card__art--img::after { display: none; }
.post-card a:hover .post-card__img img, .card a:hover .card__art--img img { transform: scale(1.05); }
.post-card h2 { font-size: var(--fs-h3); line-height: 1.35; }
.post-card a:hover h2 { text-decoration: underline; text-underline-offset: 4px; }
.post-card__excerpt { color: var(--fg-muted); font-size: 15px; }
.post-card__body { display: grid; gap: 8px; }
.post-card--featured { grid-column: 1 / -1; }
.post-card--featured a { grid-template-columns: 1.3fr 1fr; gap: clamp(20px, 4vw, 48px); align-items: center; }
.post-card--featured h2 { font-size: clamp(24px, 2.6vw, 34px); }
.pager { display: flex; gap: 8px; justify-content: center; margin-top: 48px; }
.pager a { min-width: 42px; height: 42px; display: grid; place-items: center; border-radius: 999px; background: var(--tile); font-weight: 500; }
.pager a[aria-current] { background: var(--navy); color: #fff; }
.empty { color: var(--fg-muted); padding: 40px 0; }

/* ---------- Article ---------- */
.article { padding: clamp(48px, 8vh, 96px) 0; }
.article__grid { display: grid; grid-template-columns: 240px minmax(0, 760px); gap: clamp(28px, 5vw, 80px); justify-content: center; }
.article__grid--single { grid-template-columns: minmax(0, 760px); }
.article__side { position: sticky; top: 110px; align-self: start; display: grid; gap: 28px; font-size: 14px; }
.toc ol { display: grid; gap: 8px; margin-top: 10px; counter-reset: t; }
.toc li { counter-increment: t; }
.toc a { color: var(--fg-muted); display: flex; gap: 8px; transition: color .25s; }
.toc a::before { content: counter(t, decimal-leading-zero); color: var(--blue); font-weight: 600; font-size: 12px; padding-top: 2px; }
.toc a:hover { color: var(--fg); }
.share { display: grid; gap: 6px; }
.share a, .share button { text-align: left; font: inherit; color: var(--fg-muted); background: none; border: 0; padding: 0; cursor: pointer; }
.share a:hover, .share button:hover { color: var(--blue); }
.article__cover { margin: 0 0 32px; border-radius: var(--radius); overflow: hidden; aspect-ratio: 16 / 9; background: var(--navy); }
.article__cover img { width: 100%; height: 100%; object-fit: cover; }
.prose { font-size: clamp(16px, 1.15vw, 18px); line-height: 1.8; color: #2b2a45; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: clamp(22px, 2.2vw, 30px); margin-top: 1.8em; color: var(--ink); scroll-margin-top: 110px; }
.prose h3 { font-size: clamp(18px, 1.6vw, 22px); margin-top: 1.5em; color: var(--ink); }
.prose a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li + li { margin-top: .4em; }
.prose li::marker { color: var(--blue); }
.prose blockquote { margin-left: 0; padding: 18px 24px; border-left: 4px solid var(--blue); background: var(--tile); border-radius: 0 14px 14px 0; font-weight: 500; color: var(--navy); }
.prose img { border-radius: 14px; margin: 1.6em 0; height: auto; }
.prose figure { margin: 1.6em 0; }
.prose figcaption { font-size: 14px; color: var(--muted); margin-top: 8px; }
.prose pre { background: #14122e; color: #e8eaf6; padding: 16px; border-radius: 12px; overflow-x: auto; font-size: 14px; }
.prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.prose th, .prose td { border-bottom: 1px solid var(--line); padding: 10px 8px; text-align: left; }
.prose iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: 14px; }
.prose--plain { color: var(--fg-muted); font-size: inherit; }
.article__cta { margin-top: 56px; padding: clamp(24px, 3vw, 36px); border-radius: var(--radius); background: var(--navy); color: #fff; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; }
.article__cta h2 { font-size: var(--fs-h3); margin-bottom: 6px; }
.article__cta p { color: rgba(255,255,255,.72); font-size: 15px; }
.article__cta-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.clients__grid--small { grid-template-columns: repeat(2, 1fr); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .svc-cards, .post-grid { grid-template-columns: repeat(2, 1fr); }
  .article__grid { grid-template-columns: minmax(0, 760px); }
  .article__side { position: static; order: 2; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .split, .enquire__grid, .enquire__grid--contact { grid-template-columns: 1fr; }
  .svc-cards, .post-grid { grid-template-columns: 1fr; }
  .svc-card { min-height: 0; }
  .lead-form__grid, .lead-form--compact .lead-form__grid { grid-template-columns: 1fr; }
  .post-card--featured a { grid-template-columns: 1fr; }
  .page-hero { min-height: 0; }
  .page-hero__mark { opacity: .08; }
  .article__side { grid-template-columns: 1fr; }
  .lead-form__actions .pill { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .page-hero__glow, .page-hero__mark { animation: none; }
}
.post-card__img::after { display: none; }
.svc-card { color: var(--ink); }
.form-card, .contact-box { color: var(--ink); }

.post-card h3 { font-size: var(--fs-h3); line-height: 1.35; }
.post-card a:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
.gallery-note { margin-top: 28px; font-size: 14px; }
