/* Kailvex Utility Suite + footprint refinements */
:root{--kv-blue:#087df0;--kv-deep:#04132d;--kv-ink:#07162f;--kv-soft:#f4f8fd;--kv-line:rgba(7,93,226,.12)}

/* Never allow CTA icons to inherit a black SVG fill. */
.btn svg,.tool-card__link svg,.nav-product__icon svg,.utility-action svg,.map-link svg{
  width:1.1em;height:1.1em;fill:none!important;stroke:currentColor!important;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto
}
.btn--primary svg,.btn--light svg{color:currentColor!important}
.nav-product__icon svg,.growth-console__icon svg,.tool-card__icon svg,.utility-icon svg{color:#fff!important;fill:none!important;stroke:#fff!important}

/* Home: compact, professional free-utility showcase. */
.home-utility-section{position:relative;padding:100px 0;overflow:hidden;background:linear-gradient(145deg,#fff,#f2f7ff)}
.home-utility-section::before{content:"";position:absolute;right:-180px;top:-180px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(7,141,255,.16),transparent 68%)}
.home-utility-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr);gap:56px;align-items:center}
.home-utility-copy h2{max-width:720px;margin-top:14px;font-size:clamp(2.6rem,4.3vw,4.65rem);line-height:1.01}
.home-utility-copy>p{max-width:650px;margin-top:20px;color:#56677e;font-size:1.04rem;line-height:1.75}
.home-utility-copy .hero-actions{margin-top:30px}.home-utility-copy .btn--primary svg{color:#fff}
.utility-trust{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.utility-trust span{padding:9px 12px;border:1px solid var(--kv-line);border-radius:999px;background:#fff;color:#405673;font-size:.72rem;font-weight:820}
.utility-showcase{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.utility-card{position:relative;min-height:196px;display:flex;flex-direction:column;padding:23px;border:1px solid var(--kv-line);border-radius:26px;background:rgba(255,255,255,.94);box-shadow:0 16px 42px rgba(4,35,88,.075);transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,border-color .35s ease;overflow:hidden}
.utility-card::after{content:"";position:absolute;width:120px;height:120px;right:-65px;bottom:-66px;border-radius:50%;background:radial-gradient(circle,rgba(7,141,255,.15),transparent 68%)}
.utility-card:hover{transform:translateY(-7px);border-color:rgba(7,93,226,.28);box-shadow:0 28px 62px rgba(4,43,108,.13)}
.utility-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;color:#fff;background:linear-gradient(135deg,#0755d9,#079cff);box-shadow:0 14px 27px rgba(7,93,226,.22)}
.utility-icon svg{width:24px;height:24px}
.utility-card strong{position:relative;z-index:2;margin-top:20px;font-size:1rem;line-height:1.25}.utility-card span{position:relative;z-index:2;margin-top:7px;color:#69798e;font-size:.76rem;line-height:1.55}
.utility-card em{position:relative;z-index:2;margin-top:auto;padding-top:18px;color:#075fd6;font-size:.72rem;font-style:normal;font-weight:900}

/* Tools hub */
.utility-hub-hero .growth-hero__grid{grid-template-columns:minmax(0,1fr) minmax(430px,1fr)}
.utility-hub-hero h1{font-size:clamp(2.75rem,4.8vw,5rem)}
.utility-hub-hero .growth-console{min-height:430px}
.utility-categories{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.utility-categories a{padding:9px 13px;border:1px solid var(--kv-line);border-radius:999px;background:#fff;color:#33506f;font-size:.72rem;font-weight:850;transition:.25s ease}.utility-categories a:hover{color:#fff;background:linear-gradient(135deg,#0755d9,#079cff);transform:translateY(-2px)}
.tools-grid--utility{grid-template-columns:repeat(3,minmax(0,1fr))}.tools-grid--utility .tool-card{min-height:310px}.tool-card__badge{display:inline-flex;align-self:flex-start;margin-top:16px;padding:7px 10px;border-radius:999px;background:#edf6ff;color:#075fd6;font-size:.63rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}

/* Utility forms and previews */
.utility-preview{margin-top:22px;border:1px solid rgba(255,255,255,.14);border-radius:20px;background:rgba(255,255,255,.07);overflow:hidden}
.utility-preview__search{padding:19px;background:#fff;color:#202124}.utility-preview__search small{display:block;color:#4d5156;font-size:.72rem}.utility-preview__search h3{margin-top:6px;color:#1a0dab;font-family:Arial,sans-serif;font-size:1.2rem;letter-spacing:0;line-height:1.25}.utility-preview__search p{margin-top:5px;color:#4d5156;font:400 .82rem/1.45 Arial,sans-serif}
.utility-counter{display:flex;justify-content:space-between;gap:18px;margin-top:10px;color:rgba(255,255,255,.7);font-size:.7rem}.utility-counter strong{color:#fff}
.output-link{display:block;width:100%;margin-top:18px;padding:15px;border:1px solid rgba(255,255,255,.15);border-radius:16px;background:rgba(0,0,0,.15);color:#fff;word-break:break-all;font:.77rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}
.utility-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.utility-actions .btn{min-height:46px;padding-inline:17px}
.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:20px}.metric-grid .tool-result__metric{margin-top:0}.metric-grid .tool-result__metric--wide{grid-column:1/-1}
.file-drop{position:relative;display:grid;place-items:center;min-height:190px;padding:25px;border:2px dashed #cbdbea;border-radius:22px;background:#f8fbff;text-align:center;transition:.25s ease}.file-drop.is-dragging{border-color:var(--kv-blue);background:#edf7ff}.file-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-drop strong{font-size:1rem}.file-drop span{margin-top:7px;color:#6a7a90;font-size:.78rem}.image-preview{display:none;max-height:310px;width:100%;object-fit:contain;margin-top:18px;border-radius:18px;background:#fff}.image-preview.is-ready{display:block}
.tool-result .download-btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.notice-box{margin-top:20px;padding:15px 17px;border:1px solid #dbe8f5;border-radius:16px;background:#f7fbff;color:#50647c;font-size:.76rem;line-height:1.6}

/* Project-delivery footprint. This is intentionally labelled as client/project reach, not offices. */
.footprint-section{padding:100px 0;background:#fff}
.footprint-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(520px,1.2fr);gap:48px;align-items:center}
.footprint-copy h2{margin-top:13px;font-size:clamp(2.45rem,4vw,4.25rem)}.footprint-copy>p{margin-top:18px;color:#5c6d83;font-size:1rem;line-height:1.75}
.footprint-list{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:25px}.footprint-list span{display:flex;align-items:center;gap:10px;padding:12px 13px;border:1px solid var(--kv-line);border-radius:15px;background:#fbfdff;color:#314965;font-size:.78rem;font-weight:830}.footprint-list i{width:9px;height:9px;border-radius:50%;background:#078dff;box-shadow:0 0 0 5px rgba(7,141,255,.1)}
.footprint-note{margin-top:16px;color:#758399;font-size:.7rem;line-height:1.6}
.footprint-map{position:relative;min-height:440px;border-radius:34px;overflow:hidden;background:radial-gradient(circle at 70% 25%,rgba(38,166,255,.25),transparent 28%),linear-gradient(145deg,#020817,#082b67);box-shadow:0 30px 70px rgba(4,35,88,.18)}
.footprint-map svg{position:absolute;inset:0;width:100%;height:100%}.map-grid-line{stroke:rgba(255,255,255,.08);stroke-width:1}.map-route{fill:none;stroke:url(#routeGradient);stroke-width:2.2;stroke-dasharray:8 8;animation:routeFlow 8s linear infinite}.map-node{fill:#6fdcff;stroke:#fff;stroke-width:3;filter:drop-shadow(0 0 8px rgba(87,207,255,.9))}.map-node--base{fill:#fff;stroke:#078dff;stroke-width:5}.map-label{fill:#fff;font:800 15px Inter,Arial,sans-serif}.map-sub{fill:rgba(255,255,255,.6);font:600 11px Inter,Arial,sans-serif}.map-title{fill:#fff;font:900 18px Inter,Arial,sans-serif;letter-spacing:.08em}.map-caption{fill:rgba(255,255,255,.55);font:600 11px Inter,Arial,sans-serif}.map-pulse{fill:none;stroke:#78ddff;stroke-width:2;opacity:.7;animation:mapPulse 2.5s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes routeFlow{to{stroke-dashoffset:-64}}@keyframes mapPulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.3);opacity:0}}
.map-link{display:inline-flex;align-items:center;gap:9px;margin-top:24px;color:#075fd6;font-size:.82rem;font-weight:900}.map-link:hover{text-decoration:underline}
.map-location-card{margin-top:18px;padding:18px;border:1px solid var(--kv-line);border-radius:20px;background:#fff;box-shadow:0 14px 36px rgba(4,35,88,.065)}.map-location-card strong{display:block;font-size:1rem}.map-location-card p{margin-top:7px;color:#65768c;font-size:.78rem;line-height:1.6}

/* XML sitemap XSL presentation uses its own stylesheet, but HTML sitemap gets consistent polish. */
.sitemap-note{padding:16px 18px;border:1px solid var(--kv-line);border-radius:18px;background:#f7fbff;color:#53667d;font-size:.8rem}

@media(max-width:1100px){.home-utility-grid,.footprint-grid{grid-template-columns:1fr}.utility-showcase{grid-template-columns:repeat(4,1fr)}.utility-card{min-height:185px}.footprint-map{min-height:400px}.tools-grid--utility{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.home-utility-section,.footprint-section{padding:78px 0}.utility-showcase{grid-template-columns:1fr 1fr}.home-utility-copy{text-align:center}.home-utility-copy>p{margin-inline:auto}.home-utility-copy .hero-actions,.utility-trust{justify-content:center}.footprint-copy{text-align:center}.footprint-list{max-width:650px;margin-inline:auto;margin-top:25px}.map-link{justify-content:center}.footprint-map{min-height:360px}.tool-shell{grid-template-columns:1fr}.tool-result{position:static}.metric-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.home-utility-copy h2{font-size:clamp(2.25rem,11vw,3.35rem)}.utility-showcase,.tools-grid--utility,.footprint-list{grid-template-columns:1fr}.utility-card{min-height:170px}.footprint-map{min-height:330px;border-radius:26px}.map-label{font-size:12px}.map-sub,.map-caption{font-size:9px}.metric-grid{grid-template-columns:1fr}.metric-grid .tool-result__metric--wide{grid-column:auto}.utility-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.map-route,.map-pulse,.growth-console{animation:none!important}}

/* Contextual internal links from service pages to genuinely relevant tools. */
.related-tools-strip{padding:88px 0;background:linear-gradient(180deg,#f7fbff,#fff)}
.related-tools-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.related-tools-head h2{max-width:760px;margin-top:12px;font-size:clamp(2.2rem,3.5vw,3.7rem)}.related-tools-head p{max-width:520px;color:#65768b}
.related-tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.related-tool-link{display:grid;grid-template-columns:54px 1fr;gap:15px;align-items:start;padding:21px;border:1px solid var(--kv-line);border-radius:22px;background:#fff;box-shadow:0 12px 32px rgba(4,35,88,.055);transition:.3s cubic-bezier(.22,1,.36,1)}.related-tool-link:hover{transform:translateY(-6px);box-shadow:0 24px 52px rgba(4,43,108,.11);border-color:rgba(7,93,226,.25)}.related-tool-link .utility-icon{width:54px;height:54px}.related-tool-link strong{display:block;font-size:.95rem}.related-tool-link span{display:block;margin-top:6px;color:#6b7b90;font-size:.75rem;line-height:1.5}.related-tool-link em{display:block;margin-top:10px;color:#075fd6;font-size:.68rem;font-style:normal;font-weight:900}
.footer-map-link{display:inline-flex;margin-top:14px;color:#8ddcff!important;font-size:.74rem;font-weight:800}.footer-map-link:hover{text-decoration:underline}
@media(max-width:900px){.related-tools-head{display:block}.related-tools-head p{margin-top:14px}.related-tools-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.related-tools-grid{grid-template-columns:1fr}.related-tools-strip{padding:70px 0}}
