/* ==========================================================================
   KUMAR SPORTS — SITE STYLES
   Design system: see DESIGN_SYSTEM.md in the project root. Every colour,
   radius, shadow and timing below comes from the tokens in :root.
   ========================================================================== */
:root {
    --yellow: #FFF569;
    --green: #15803D;
    --green-dark: #0F3D22;
    --black: #000000;
    --white: #FFFFFF;
    --line: rgba(0, 0, 0, 0.16);
    --line-light: rgba(255, 255, 255, 0.2);
    --radius: 8px;
    --banner-h: 0px;
    --nav-h: 64px;
    --font-head: 'Clash Grotesk', 'Inter', sans-serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    /* Neo-brutalist controls */
    --stroke: 2.5px solid var(--black);
    --radius-btn: 10px;
    --radius-pill: 999px;
    --lift: 6px;          /* resting hard-shadow offset */
    --lift-hover: 1.5px;  /* shadow left visible on hover */
    --dur-press: 0.18s;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }
.lenis.lenis-smooth iframe { pointer-events: none; }
body {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    color: var(--black);
    background: var(--yellow);
    -webkit-font-smoothing: antialiased;
    overflow-x: clip;
}
img, video, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, select, input { font: inherit; color: inherit; }
sup { font-size: 0.42em; vertical-align: top; position: relative; top: 0.15em; }
i[data-lucide], svg.lucide { width: 20px; height: 20px; flex-shrink: 0; }

:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: fixed; top: -60px; left: 16px; z-index: 200; background: var(--green); color: var(--white); padding: 10px 16px; border-radius: var(--radius); }
.skip-link:focus { top: 76px; }

.wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding-inline: 24px; }
.sec { position: relative; z-index: 1; }
.sec-yellow { background: var(--yellow); color: var(--black); }
.sec-green { background: var(--green); color: var(--white); }
.sec-dark { background: var(--green-dark); color: var(--white); }

/* ---------- Type ---------- */
.h2 {
    font-family: var(--font-head);
    font-weight: 600;
    font-size: clamp(46px, 6.1vw, 88px);
    line-height: 1;
    letter-spacing: -0.035em;
}
.h3 {
    font-family: var(--font-head);
    font-weight: 600;
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.05;
    letter-spacing: -0.02em;
}
.lead { font-size: 17px; line-height: 1.55; max-width: 460px; }
.eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 14px; font-weight: 500; margin-bottom: 18px;
}
.eyebrow i, .eyebrow svg { width: 16px; height: 16px; color: var(--green); }
.sec-green .eyebrow svg, .sec-dark .eyebrow svg { color: var(--yellow); }
.w { display: inline-block; }

/* ---------- Buttons: neo-brutalist (face slides into a hard shadow) ---------- */
.btn {
    --face: var(--green); --ink: var(--white);
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    height: 48px; padding: 0 22px; border: var(--stroke); border-radius: var(--radius-btn);
    background: var(--face); color: var(--ink);
    font-family: var(--font-head); font-weight: 600; font-size: 16px; letter-spacing: 0.005em;
    white-space: nowrap; cursor: pointer; user-select: none;
    box-shadow: var(--lift) var(--lift) 0 var(--black);
    transition: transform var(--dur-press) var(--ease), box-shadow var(--dur-press) var(--ease);
}
.btn:hover, .btn:focus-visible {
    transform: translate(calc(var(--lift) - var(--lift-hover)), calc(var(--lift) - var(--lift-hover)));
    box-shadow: var(--lift-hover) var(--lift-hover) 0 var(--black);
}
.btn:active { transform: translate(var(--lift), var(--lift)); box-shadow: 0 0 0 var(--black); }
.btn:focus-visible { outline: 3px solid var(--black); outline-offset: 4px; }
.btn svg { width: 18px; height: 18px; transition: transform 0.3s var(--ease); }
.btn:hover svg.lucide-plus, .btn:focus-visible svg.lucide-plus { transform: rotate(45deg); }
.btn-green { --face: var(--green); --ink: var(--white); }
.btn-yellow { --face: var(--yellow); --ink: var(--black); }
/* Secondary: yellow face on dark/photo backgrounds, black face on yellow */
.btn-ghost { --face: var(--yellow); --ink: var(--black); }
.sec-yellow .btn-ghost, .page-body .btn-ghost, .catalogue-modal-container .btn-ghost { --face: var(--black); --ink: var(--white); }

/* ---------- Loader & progress ---------- */
@keyframes ks-loader-fallback {
    to {
        transform: translateY(-100%);
        visibility: hidden;
        pointer-events: none;
    }
}
.loader { display: none; }
.motion .loader {
    display: grid; place-items: center; position: fixed; inset: 0; z-index: 300;
    background: var(--yellow); color: var(--black); pointer-events: none;
    animation: ks-loader-fallback 0.6s ease-in-out 4.2s forwards;
}
.loader-inner { display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; padding: 24px; }
.loader-icons { display: flex; gap: clamp(10px, 2vw, 22px); }
.loader-icons .sport-icon { width: clamp(30px, 5vw, 58px); height: clamp(30px, 5vw, 58px); color: var(--green); }
.loader-brand { font-family: var(--font-head); font-weight: 700; font-size: clamp(34px, 6vw, 72px); line-height: 0.95; letter-spacing: -0.02em; text-transform: uppercase; }
.loader-tagline { font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin-top: -10px; }
.loader-bar { width: min(320px, 70vw); height: 8px; border: 2px solid var(--black); border-radius: var(--radius-pill); overflow: hidden; }
.loader-bar span { display: block; height: 100%; background: var(--green); transform-origin: 0 50%; transform: scaleX(0); }
.loader-count { font-family: var(--font-head); font-weight: 600; font-size: 15px; font-variant-numeric: tabular-nums; }
/* Repeat visits / page-to-page: plain yellow wipe, no intro content */
.loader.quick .loader-inner { display: none; }

/* ---------- Sport equipment icons (assets/icons/sports.svg) ---------- */
.sport-icon { width: 22px; height: 22px; flex-shrink: 0; display: inline-block; vertical-align: middle; }

.progress {
    position: fixed; top: 0; left: 0; right: 0; height: 5px; z-index: 120;
    background: var(--green); transform-origin: 0 50%; transform: scaleX(0);
}

/* ---------- Announcement Banner ---------- */
.site-announcement-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 125;
    background: var(--green-dark);
    color: var(--white);
    border-bottom: 2px solid var(--black);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 7px 16px;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.35;
    text-align: center;
}
.site-announcement-bar.active {
    display: flex;
}
.site-announcement-bar .banner-content {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
}
.site-announcement-bar .banner-action-btn {
    display: inline-flex;
    align-items: center;
    background: var(--yellow);
    color: var(--black);
    font-family: var(--font-head);
    font-size: 12px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 6px;
    border: 1.5px solid var(--black);
    text-decoration: none;
    box-shadow: 2px 2px 0 var(--black);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.site-announcement-bar .banner-action-btn:hover {
    transform: translate(1px, 1px);
    box-shadow: 1px 1px 0 var(--black);
}
.site-announcement-bar .banner-close-btn {
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    padding: 2px 6px;
    font-size: 16px;
    line-height: 1;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 8px;
    transition: color 0.15s ease;
}
.site-announcement-bar .banner-close-btn:hover {
    color: var(--white);
}

/* ---------- Nav ---------- */
.nav {
    position: fixed; top: var(--banner-h, 0px); left: 0; right: 0; z-index: 110;
    height: var(--nav-h); background: var(--yellow);
    transition: top 0.2s ease;
}
.nav .wrap.nav-inner,
.nav-inner {
    height: 100%;
    width: 100%;
    max-width: 1540px;
    margin: 0 auto;
    padding-inline: clamp(14px, 2.5vw, 36px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(10px, 1.4vw, 24px);
    white-space: nowrap;
}
.brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-head);
    font-weight: 600;
    font-size: 20px;
    letter-spacing: -0.01em;
    color: var(--green);
    white-space: nowrap !important;
    flex-shrink: 0;
}
.brand span {
    white-space: nowrap !important;
}
.brand img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    background: transparent;
}
.nav-links {
    display: flex;
    align-items: center;
    gap: clamp(12px, 1.6vw, 28px);
    font-size: 15px;
    font-weight: 500;
    white-space: nowrap !important;
    flex-shrink: 0;
}
.nav-links > a, .nav-link-parent {
    position: relative;
    white-space: nowrap !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.nav-link-parent span {
    white-space: nowrap !important;
}
.nav-links > a::after, .nav-link-parent::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: -3px; height: 1.5px;
    background: currentColor; transform: scaleX(0); transform-origin: right;
    transition: transform 0.4s var(--ease);
}
.nav-links > a:hover::after, .nav-link-parent:hover::after { transform: scaleX(1); transform-origin: left; }
.nav-links .only-mobile { display: none; }
.nav-toggle { display: none; }
.nav-burger { display: none; }

/* ---------- Nav Submenus & Dropdowns ---------- */
.nav-item-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.nav-link-parent {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    font-size: 15px;
    font-weight: 500;
}
.dropdown-chevron {
    width: 12px;
    height: 12px;
    transition: transform 0.25s var(--ease);
}
.nav-item-dropdown:hover .dropdown-chevron,
.nav-item-dropdown:focus-within .dropdown-chevron {
    transform: rotate(180deg);
}
.nav-submenu {
    position: absolute;
    top: calc(100% + 14px);
    left: 50%;
    transform: translateX(-50%) translateY(8px);
    background: #08170D;
    color: var(--white);
    border: 2px solid var(--black);
    border-radius: 8px;
    box-shadow: 4px 4px 0 var(--black);
    padding: 20px 22px;
    min-width: 270px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s var(--ease), visibility 0.2s ease;
    z-index: 220;
}
.nav-submenu::before {
    content: '';
    position: absolute;
    top: -16px;
    left: 0;
    right: 0;
    height: 16px;
}
.nav-submenu-wide {
    min-width: 520px;
}
.nav-submenu-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.nav-item-dropdown:hover .nav-submenu,
.nav-item-dropdown:focus-within .nav-submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}
.nav-subcol-title {
    font-family: var(--font-head);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--yellow);
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(245, 158, 11, 0.25);
}
.nav-sublink {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 500;
    color: #E2E8F0;
    padding: 6px 8px;
    border-radius: 4px;
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
    white-space: nowrap;
}
.nav-sublink::after {
    display: none !important;
}
.nav-sublink:hover, .nav-sublink:focus-visible {
    background: rgba(245, 158, 11, 0.14);
    color: var(--yellow);
    transform: translateX(3px);
}
.sublink-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--green);
    flex-shrink: 0;
    transition: background 0.15s ease;
}
.nav-sublink:hover .sublink-dot {
    background: var(--yellow);
}

/* ---------- Tickers ---------- */
.ticker {
    position: relative; z-index: 2; overflow: hidden; height: 84px;
    display: flex; align-items: center; background: var(--green); color: var(--white);
}
.ticker.dark { background: var(--green-dark); }
.ticker-track { display: flex; width: max-content; animation: marquee 32s linear infinite; }
.ticker.rev .ticker-track { animation-direction: reverse; }
.ticker-group { display: flex; align-items: center; gap: 48px; padding-right: 48px; }
.ticker-group span {
    font-family: var(--font-head); font-weight: 600; font-size: 34px; line-height: 1;
    text-transform: uppercase; white-space: nowrap; letter-spacing: -0.01em;
}
.ticker-group svg { width: 38px; height: 38px; color: var(--yellow); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Curtain stacking (sticky media covered by next section) ---------- */
.curtain { position: relative; }
.bleed { position: sticky; top: 0; height: 100vh; height: 100svh; z-index: 0; overflow: hidden; }
.bleed img, .faq-banner > img { width: 100%; height: 120%; position: relative; top: -10%; object-fit: cover; will-change: transform; }

/* ---------- Hero ---------- */
.hero {
    position: sticky; top: 0; z-index: 0;
    height: 100vh; height: 100svh; min-height: 640px;
    color: var(--white); overflow: hidden; background: var(--green-dark);
}
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-shade {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.12) 38%, rgba(0,0,0,0.1) 50%, rgba(0,0,0,0.7) 100%);
}
.hero-inner {
    position: relative; height: 100%;
    display: flex; flex-direction: column;
    padding-top: calc(var(--nav-h) + var(--banner-h, 0px) + 10px);
    padding-bottom: 32px;
    padding-inline: clamp(24px, 4.5vw, 64px);
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    container-type: inline-size;
}
/* Wordmark spans exactly padding-edge to padding-edge: its width is 7.34x its
   font-size in Clash Grotesk 700, and 100cqw is .hero-inner's content width. */
.hero-mark {
    font-family: var(--font-head); font-weight: 700; text-transform: uppercase;
    font-size: 11.35vw; font-size: calc(100cqw / 7.34); line-height: 0.95; letter-spacing: -0.015em;
    white-space: nowrap; text-align: center; overflow: hidden;
    width: 100%;
    color: var(--yellow);
    padding-bottom: 0.3em; margin-bottom: -0.3em;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.22), 0 8px 18px rgba(0, 0, 0, 0.28), 0 26px 56px rgba(0, 0, 0, 0.38);
    will-change: transform;
}
.hero-mark-line { display: inline-block; }
.hero-row { display: flex; justify-content: space-between; gap: 24px; margin-top: 14px; font-size: 14px; font-weight: 500; width: 100%; }
.hero-meta { display: flex; flex-direction: column; gap: 4px; }
.hero-meta .icons { display: flex; gap: 6px; }
.hero-meta .icons svg { width: 16px; height: 16px; color: var(--yellow); }

.hero-bottom {
    margin-top: auto;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto;
    grid-template-areas:
        "tag   stats"
        "ctas  card"
        "down  .";
    column-gap: 36px;
    row-gap: 20px;
    width: 100%;
    align-items: center;
}
.hero-tag {
    grid-area: tag;
    font-family: var(--font-head);
    font-weight: 600;
    font-size: clamp(22px, 2.1vw, 30px);
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: var(--white);
    max-width: 560px;
}
.hero-right-col {
    grid-area: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
    align-self: center;
}
.hero-stats {
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-align: right;
}
.hero-stats-title {
    font-family: var(--font-head);
    font-weight: 600;
    font-size: clamp(18px, 1.6vw, 22px);
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--white);
}
.hero-stats-sub {
    font-size: 14px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.85);
}
.hero-ctas {
    grid-area: ctas;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-self: end;
}
.hero-down {
    grid-area: down;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    animation: bob 2s var(--ease) infinite;
    color: var(--white);
}
@keyframes bob { 50% { transform: translateY(6px); } }

/* ---------- Talk-to-engineer cards: neo-brutalist + attention motion ----------
   Same press mechanics as .btn; the live dot, its ping ring and the wiggling
   chat icon are reserved for these contact cards so they read as "a person is here". */
.talk-card {
    --face: var(--yellow); --ink: var(--black); --dot: var(--green);
    position: relative; display: flex; align-items: center; gap: 12px; width: max-content;
    padding: 8px 16px 8px 10px; border: var(--stroke); border-radius: var(--radius-btn);
    background: var(--face); color: var(--ink);
    box-shadow: var(--lift) var(--lift) 0 var(--black);
    transition: transform var(--dur-press) var(--ease), box-shadow var(--dur-press) var(--ease);
}
.talk-card:hover, .talk-card:focus-visible {
    transform: translate(calc(var(--lift) - var(--lift-hover)), calc(var(--lift) - var(--lift-hover)));
    box-shadow: var(--lift-hover) var(--lift-hover) 0 var(--black);
}
.talk-card:active { transform: translate(var(--lift), var(--lift)); box-shadow: 0 0 0 var(--black); }
.talk-card:focus-visible { outline: 3px solid var(--black); outline-offset: 4px; }
.talk-card img { width: 44px; height: 44px; object-fit: contain; background: transparent; }
.talk-card strong { display: block; font-family: var(--font-head); font-size: 15px; font-weight: 600; }
.talk-card small { font-size: 12px; font-weight: 500; }
.talk-card svg { width: 20px; height: 20px; margin-left: 8px; transform-origin: 50% 80%; animation: talk-wiggle 3.2s ease-in-out infinite; }
/* live dot + ping ring at the avatar's corner */
.talk-card::before, .talk-card::after {
    content: ""; position: absolute; left: 42px; top: 6px; width: 12px; height: 12px; border-radius: 50%;
}
.talk-card::before { z-index: 2; background: var(--dot); border: 2px solid var(--black); animation: talk-dot 1.6s ease-in-out infinite; }
.talk-card::after { z-index: 1; border: 2px solid var(--dot); animation: talk-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite; }
.talk-card.dark { --face: var(--black); --ink: var(--white); }
.talk-card.dark::before { border-color: var(--white); }
.hero .talk-card { --face: var(--green); --ink: var(--white); --dot: var(--yellow); }
.hero .talk-card svg { color: var(--yellow); }
@keyframes talk-ping { 0% { transform: scale(1); opacity: 0.9; } 75%, 100% { transform: scale(2.8); opacity: 0; } }
@keyframes talk-dot { 50% { transform: scale(0.82); } }
@keyframes talk-wiggle {
    0%, 62%, 100% { transform: rotate(0); }
    66% { transform: rotate(-16deg) scale(1.15); }
    70% { transform: rotate(14deg) scale(1.15); }
    74% { transform: rotate(-10deg) scale(1.1); }
    78% { transform: rotate(6deg); }
    82% { transform: rotate(0); }
}

/* ---------- Experience ---------- */
.experience { padding-bottom: 80px; }
.exp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; padding-top: 110px; }
.exp-copy .h2 { margin-bottom: 28px; }
.exp-point { border-top: 1px solid var(--line); padding: 24px 0; }
.exp-point h3 { display: flex; align-items: center; gap: 10px; font-family: var(--font-head); font-weight: 600; font-size: 28px; letter-spacing: -0.01em; margin-bottom: 8px; }
.exp-point h3 svg { width: 26px; height: 26px; color: var(--green); }
.exp-point p { max-width: 470px; }
.exp-copy .btn { margin-top: 8px; }
.exp-media { border-radius: var(--radius); overflow: hidden; min-height: 520px; }
.exp-media img { width: 100%; height: 100%; object-fit: cover; }

.numbers { display: grid; grid-template-columns: repeat(8, 1fr); margin-top: 80px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.num-tile { aspect-ratio: 1; border-right: 1px solid var(--line); overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; padding: 10px; }
.num-tile:last-child { border-right: 0; }
.num-tile img { width: 100%; height: 100%; object-fit: cover; }
.num-tile.img { padding: 0; }
.num-val { font-family: var(--font-body); font-weight: 600; font-size: clamp(36px, 4.2vw, 62px); line-height: 1; letter-spacing: -0.04em; display: flex; }
.num-label { font-size: 14px; font-weight: 500; }
.odo-col { display: inline-block; height: 1em; overflow: hidden; }
.odo-strip { display: flex; flex-direction: column; }
.odo-strip span { height: 1em; line-height: 1; }

/* ---------- Programs (sticky stacked cards) ---------- */
.programs { padding-bottom: 120px; }
.prog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; padding-top: 110px; }
.prog-head { position: sticky; top: 120px; align-self: start; }
.prog-head .h2 { margin-bottom: 18px; }
.prog-head .lead { margin-bottom: 24px; }
.prog-cards { display: flex; flex-direction: column; gap: 24px; }
.prog-card {
    position: sticky; top: calc(120px + var(--i) * 34px);
    border: 1px solid var(--black); border-radius: var(--radius);
    padding: 26px 28px; background: var(--yellow);
}
.prog-card:nth-child(even) { background: var(--green-dark); color: var(--white); border-color: var(--green-dark); }
.prog-num { font-size: 14px; font-weight: 500; display: flex; justify-content: space-between; border-bottom: 1px solid currentColor; padding-bottom: 12px; margin-bottom: 18px; opacity: 0.9; }
.prog-card .h3 { margin-bottom: 12px; }
.prog-card ul { list-style: none; display: grid; gap: 4px; margin-bottom: 14px; font-size: 15px; }
.prog-card li::before { content: '— '; }
.prog-dim { font-weight: 600; font-size: 14px; margin-bottom: 12px; }
.prog-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid currentColor; padding-top: 16px; }
.prog-cost { font-family: var(--font-head); font-weight: 600; font-size: 24px; }

/* ---------- Process ---------- */
.process { padding: 120px 0; }
.sec-head { margin-bottom: 56px; }
.sec-head.center { text-align: center; display: flex; flex-direction: column; align-items: center; }
.sec-head.center .lead { margin: 18px auto 0; text-align: center; }
.proc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.proc-card {
    position: relative; border-radius: var(--radius); overflow: hidden; min-height: 400px;
    padding: 22px; display: flex; flex-direction: column; gap: 10px;
    border: 1px solid var(--black);
}
.proc-card.img { color: var(--white); background: var(--black); border-color: var(--black); }
.proc-card.img > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.45; transition: transform 0.8s var(--ease), opacity 0.6s; }
.proc-card.img:hover > img { transform: scale(1.05); opacity: 0.6; }
.proc-card > *:not(img) { position: relative; }
.proc-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.proc-top svg { width: 30px; height: 30px; color: var(--green); }
.proc-card.img .proc-top svg { color: var(--yellow); }
.proc-n { font-family: var(--font-head); font-weight: 600; font-size: 18px; }
.proc-card h3 { font-family: var(--font-head); font-weight: 600; font-size: 26px; line-height: 1.05; letter-spacing: -0.01em; }
.proc-card p { font-size: 15px; }
.proc-inset { margin-top: auto; border-radius: 6px; overflow: hidden; height: 150px; }
.proc-inset img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- CAD Blueprint Lab ---------- */
.cad { padding: 120px 0; }
.cad .sec-head { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: end; }
/* ---------- Pill tabs: neo-brutalist track + sliding pill (site.js adds .pill-indicator) ---------- */
.pill-tabs {
    position: relative; display: flex; max-width: 100%; width: max-content; padding: 5px;
    border: var(--stroke); border-radius: 30px; background: var(--yellow); color: var(--black);
    box-shadow: var(--lift) var(--lift) 0 var(--black);
}
.pill-tabs > button {
    position: relative; z-index: 1; flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    padding: 10px 12px; border: 0; border-radius: 22px; background: transparent;
    font-family: var(--font-head); font-size: 15px; font-weight: 600; line-height: 20px; white-space: nowrap;
    color: inherit; cursor: pointer; transition: color 0.3s ease;
}
.pill-tabs > button .sport-icon, .pill-tabs > button svg.lucide { width: 19px; height: 19px; }
.pill-tabs > button:not(.active):hover { color: var(--green); }
.pill-tabs > button.active { color: var(--white); }
.pill-tabs > button:focus-visible { outline: 2px solid var(--black); outline-offset: -4px; }
.pill-indicator {
    position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 0; width: 0;
    border: 2px solid var(--black); border-radius: 22px; background: var(--green);
    transition: left 0.45s var(--ease), width 0.45s var(--ease);
}
/* Not enough room for labels: icon-only, tabs share the width equally (set by site.js) */
.pill-tabs.compact { width: 100%; }
.pill-tabs.compact > button { flex: 1 1 0; min-width: 0; padding: 10px 4px; }
.pill-tabs.compact .tab-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cad-tabs { margin-bottom: 28px; }

.cad-stage { display: grid; grid-template-columns: 1.35fr 1fr; gap: 20px; }
.cad-canvas { background: var(--yellow); color: var(--black); border-radius: var(--radius); padding: 22px; display: flex; flex-direction: column; gap: 18px; }
.cad-canvas-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.cad-sport-title { font-family: var(--font-head); font-weight: 600; font-size: 30px; line-height: 1; }
.cad-code { font-family: ui-monospace, monospace; font-size: 12px; margin-top: 6px; }
.cad-cost-badge { background: var(--green); color: var(--white); font-weight: 600; font-size: 14px; padding: 8px 12px; border-radius: 6px; white-space: nowrap; }
.cad-svg { background: var(--green-dark); border-radius: 6px; padding: 14px; }
.cad-svg svg { width: 100%; height: auto; }
.cad-svg .bp-zone { cursor: crosshair; transition: opacity 0.2s; }
.cad-svg .bp-zone:hover { opacity: 0.82; }
.cad-readout { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; border-top: 1px solid var(--line); padding-top: 14px; }
.cad-readout span { display: block; }
.cad-readout .k { font-size: 12px; font-weight: 500; margin-bottom: 4px; }
.cad-readout .v { font-size: 14px; font-weight: 600; line-height: 1.3; }
.cad-dossier { border: 1px solid var(--line-light); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; }
.cad-dossier .h3 { font-size: 30px; margin-bottom: 18px; }
.spec-row { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 12px; padding: 13px 0; border-top: 1px solid var(--line-light); font-size: 14px; }
.spec-row .k { opacity: 0.8; }
.spec-row .v { font-weight: 600; }
.cad-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 22px; }

/* ---------- Layer explorer ---------- */
.layers { padding: 120px 0; }
.switch { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: start; }
.switch-list { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding-block: 24px; }
.switch-item {
    display: grid; grid-template-columns: 34px 1fr; align-items: start;
    width: 100%; padding: 18px 24px; border: 0; border-radius: 14px 0 0 14px;
    background: transparent; color: inherit; text-align: left; cursor: pointer;
    transition: background-color 0.35s ease, color 0.35s ease;
}
.switch-item:not(.active):hover { background: rgba(0, 0, 0, 0.06); }
.switch-item.active { background: var(--green-dark); color: var(--white); }
.switch-num { font-size: 13px; font-weight: 600; padding-top: 0.55em; opacity: 0.7; }
.switch-title { font-family: var(--font-head); font-weight: 600; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.1; letter-spacing: -0.015em; }
.switch-body { grid-column: 2; display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.45s var(--ease); }
.switch-item.active .switch-body { grid-template-rows: 1fr; }
.switch-body-inner { overflow: hidden; min-height: 0; }
.switch-desc { display: block; padding-top: 10px; font-size: 15px; line-height: 1.55; }
.switch-metrics { display: flex; flex-wrap: wrap; gap: 8px 22px; padding-top: 14px; font-size: 14px; font-weight: 600; }
.switch-metrics small { display: block; font-size: 12px; font-weight: 500; opacity: 0.75; }
.switch-frame {
    position: sticky; top: calc(var(--nav-h) + 32px);
    height: min(560px, calc(100vh - var(--nav-h) - 64px)); height: min(560px, calc(100svh - var(--nav-h) - 64px));
    padding: 8px; border-radius: 24px; background: var(--green-dark);
}
.switch-item.active { border-radius: 14px 0 0 14px; }
.switch-thumb { display: none; }
.switch-img { position: absolute; inset: 8px; margin: 0; border-radius: 16px; overflow: hidden; opacity: 0; transition: opacity 0.4s ease; }
.switch-img.active { opacity: 1; }
.switch-img img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Projects (green, sticky stacked image cards) ---------- */
.projects { padding: 120px 0 140px; }
.proj-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.proj-head { position: sticky; top: 130px; align-self: start; }
.proj-head .h2 { margin-bottom: 16px; }
.proj-head .lead { margin-bottom: 24px; }
.proj-cards { display: flex; flex-direction: column; gap: 40px; }
.proj-card {
    position: sticky; top: calc(130px + var(--i) * 40px);
    background: var(--yellow); color: var(--black);
    border-radius: var(--radius); padding: 14px; border: 1px solid var(--green-dark);
}
.proj-photo { position: relative; border-radius: 6px; overflow: hidden; aspect-ratio: 16 / 10; }
.proj-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
.proj-card:hover .proj-photo img { transform: scale(1.04); }
.proj-tag {
    position: absolute; top: 12px; right: 12px; display: inline-flex; gap: 6px; align-items: center;
    background: var(--yellow); color: var(--black); font-size: 13px; font-weight: 600;
    padding: 6px 10px; border-radius: 6px;
}
.proj-tag svg { width: 14px; height: 14px; color: var(--green); }
.proj-card h3 { font-family: var(--font-head); font-weight: 600; font-size: 26px; margin: 14px 4px 4px; letter-spacing: -0.01em; }
.proj-card p { margin: 0 4px 4px; font-size: 15px; }

/* ---------- Testimonials (sticky heading, cards scroll over) ---------- */
.testi { padding-bottom: 20vh; }
.testi-sticky { position: sticky; top: 0; height: 100vh; height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 0 24px; }
.testi-sticky .h2 { font-size: clamp(56px, 8.5vw, 124px); }
.testi-sticky .lead { margin-top: 14px; }
.testi-cards { position: relative; margin-top: -60vh; display: grid; grid-template-columns: 1fr 1fr; row-gap: 26vh; }
.testi-card {
    position: relative; width: min(400px, 100%); min-height: 420px; border-radius: var(--radius);
    overflow: hidden; color: var(--white); background: var(--green-dark);
    padding: 26px; display: flex; flex-direction: column; justify-content: flex-end; gap: 14px;
}
.testi-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.testi-card > *:not(img) { position: relative; }
.testi-card:nth-child(odd) { justify-self: start; }
.testi-card:nth-child(even) { justify-self: end; margin-top: 18vh; }
.testi-card:nth-child(3) { grid-column: 1 / -1; justify-self: center; margin-top: 0; }
.testi-q-mark { font-family: var(--font-head); font-weight: 700; font-size: 54px; line-height: 0.6; color: var(--yellow); }
.testi-card blockquote { font-family: var(--font-head); font-weight: 600; font-size: 22px; line-height: 1.22; }
.testi-card .who strong { display: block; }
.testi-card .who span { font-size: 14px; }
.testi-pill { display: inline-flex; gap: 8px; align-items: center; font-size: 13px; border-top: 1px solid var(--line-light); padding-top: 12px; }
.testi-pill svg { width: 16px; height: 16px; color: var(--yellow); }

/* ---------- Estimator ---------- */
.estimator { padding: 120px 0; }
.est-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: stretch; }
.est-controls { display: flex; flex-direction: column; gap: 18px; }
.est-controls .h2 { margin-bottom: 8px; }
.est-field label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.est-select {
    width: 100%; height: 54px; padding: 0 44px 0 16px; border-radius: var(--radius);
    border: 1px solid var(--line-light); background: transparent; color: var(--white);
    font-size: 16px; font-weight: 500; cursor: pointer; appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%23FFF569' stroke-width='2'%3E%3Cpath d='M2 5l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 16px center;
}
.est-select:hover { border-color: var(--yellow); }
.est-select option { color: var(--black); background: var(--white); }
.est-result { background: var(--yellow); color: var(--black); border-radius: var(--radius); padding: 30px; display: flex; flex-direction: column; gap: 18px; }
.est-result .k { font-size: 14px; font-weight: 500; }
.est-price { font-family: var(--font-head); font-weight: 600; font-size: clamp(48px, 5.4vw, 76px); line-height: 1; letter-spacing: -0.03em; }
.est-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; border-top: 1px solid var(--line); padding-top: 16px; }
.est-facts .v { display: block; font-weight: 600; font-size: 15px; line-height: 1.3; }
.est-note { font-size: 13px; margin-top: auto; }

/* ---------- FAQ ---------- */
.faq-banner { position: relative; height: 70vh; min-height: 420px; overflow: hidden; }
.faq-badge {
    position: absolute; left: 50%; top: 0; transform: translate(-50%, -50%); z-index: 10;
    width: 132px; height: 132px; border-radius: 50%; background: var(--green);
    display: grid; place-items: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
}
.faq-badge img { width: 64px; height: 64px; object-fit: contain; background: transparent; }
.faq-badge svg.ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 18s linear infinite; }
.faq-badge text { fill: var(--white); font: 600 11px var(--font-body); letter-spacing: 2.5px; text-transform: uppercase; }
@keyframes spin { to { transform: rotate(360deg); } }
.faq { position: relative; z-index: 5; padding: 120px 0; }
.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.faq .h2 { margin-bottom: 36px; }
.rep-faq-item, .faq-item {
    padding-inline: 18px; border-radius: 6px;
    transition: background-color 0.35s, color 0.35s, transform 0.45s var(--ease);
}
.rep-faq-item:hover, .faq-item:hover { background: var(--black); color: var(--white); transform: translateX(12px); }
.rep-faq-item { border-top: 1px solid var(--black); }
.rep-faq-item:last-child { border-bottom: 1px solid var(--black); }
.rep-faq-header {
    width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 24px;
    padding: 20px 0; background: none; border: 0; text-align: left; cursor: pointer;
    font-size: 17px; font-weight: 500;
}
.rep-faq-icon { font-size: 26px; font-weight: 300; line-height: 1; transition: transform 0.4s var(--ease); flex-shrink: 0; }
.rep-faq-item.active .rep-faq-icon { transform: rotate(45deg); }
.rep-faq-content { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.5s var(--ease); }
.rep-faq-item.active .rep-faq-content { grid-template-rows: 1fr; }
.rep-faq-answer { overflow: hidden; font-size: 15px; padding-right: 40px; }
.rep-faq-item.active .rep-faq-answer { padding-bottom: 20px; }
.faq-media { border-radius: var(--radius); overflow: hidden; position: sticky; top: 100px; height: min(78vh, 680px); }
.faq-media img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Recent builds (blog-style grid) ---------- */
.builds { padding: 120px 0 160px; }
.builds-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; align-items: start; }
.build-card:nth-child(2) { margin-top: 60px; }
.build-card:nth-child(3) { margin-top: 120px; }
.build-card:nth-child(4) { margin-top: 180px; }
.build-photo { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5; margin-bottom: 12px; }
.build-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
.build-card:hover .build-photo img { transform: scale(1.05); }
.build-row { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; font-size: 13px; }
.build-row strong { font-size: 16px; font-weight: 600; line-height: 1.25; }

/* ---------- Footer (sticky reveal) ---------- */
.footer {
    position: sticky; bottom: 0; z-index: 0;
    display: flex; flex-direction: column;
    color: var(--white); background: var(--green-dark); overflow: hidden;
}
/* Taller than the viewport: a pinned footer would hide its top, so let it scroll normally (set by site.js) */
.footer.no-reveal { position: relative; }
.footer-cta { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 48px; flex-wrap: wrap; padding-top: 72px; padding-bottom: 64px; }
.footer-cta .eyebrow svg { color: var(--yellow); }
.footer-cta-title {
    font-family: var(--font-head); font-weight: 600; letter-spacing: -0.035em;
    font-size: clamp(40px, 4.8vw, 76px); line-height: 0.98;
}
.footer-cta-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.ticker.yellow { background: var(--yellow); color: var(--black); }
.ticker.yellow .ticker-group svg { color: var(--green); }
.footer-panel { background: var(--green); padding: 36px 0 22px; }
.footer-top { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; }
.footer-mark {
    font-family: var(--font-head); font-weight: 700; text-transform: uppercase;
    font-size: min(8.6vw, 124px); line-height: 0.85; letter-spacing: -0.01em; white-space: nowrap;
}
.footer-links { display: flex; flex-direction: column; gap: 4px; text-align: right; font-size: 14px; font-weight: 500; }
.footer-links a:hover, .footer-nap a:hover, .footer-bottom a:hover { text-decoration: underline; }
.footer-nap { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line-light); font-size: 13px; }
.footer-profiles {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 12px 18px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line-light);
    font-size: 13px;
}
.footer-profiles-label {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em;
    opacity: 0.85; font-weight: 600;
}
.footer-profiles-label svg { width: 14px; height: 14px; color: var(--yellow); }
.footer-profiles-list {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px;
}
.footer-profile-link {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 12px; border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, 0.08); border: 1px solid var(--line-light);
    color: var(--white); text-decoration: none; font-size: 13px; font-weight: 500;
    line-height: 1; transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.footer-profile-link:hover {
    background: var(--yellow); border-color: var(--yellow); color: var(--black);
    text-decoration: none !important; transform: translateY(-1px);
}
.footer-profile-link svg { width: 14px; height: 14px; flex-shrink: 0; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 24px; margin-top: 14px; font-size: 13px; }
.footer-bottom nav { display: flex; gap: 20px; }
.footer-legal { display: flex; gap: 16px; flex-wrap: wrap; }

/* ---------- Developer & Moderator Credit Badge & Contact Card ---------- */
.footer-credit {
    display: inline-flex;
    align-items: center;
    position: relative;
    font-size: 13px;
}
.credit-badge-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.credit-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 14px;
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, 0.05);
    border: 1.5px solid rgba(0, 230, 118, 0.45);
    color: var(--white);
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.credit-badge-role {
    color: #A0C2B2;
    font-weight: 500;
}
.credit-badge-name {
    color: #00E676;
    font-weight: 700;
    letter-spacing: 0.01em;
}
.credit-badge-arrow {
    color: #00E676;
    flex-shrink: 0;
    transition: transform 0.18s ease, color 0.18s ease;
}
.credit-badge:hover,
.credit-badge:focus-visible,
.credit-badge-wrap:hover .credit-badge,
.credit-badge-wrap.is-open .credit-badge {
    background: var(--yellow);
    border-color: var(--black);
    box-shadow: 2.5px 2.5px 0 var(--black);
    transform: translateY(-1px);
}
.credit-badge:hover .credit-badge-role,
.credit-badge:hover .credit-badge-name,
.credit-badge:hover .credit-badge-arrow,
.credit-badge:focus-visible .credit-badge-role,
.credit-badge:focus-visible .credit-badge-name,
.credit-badge:focus-visible .credit-badge-arrow,
.credit-badge-wrap:hover .credit-badge .credit-badge-role,
.credit-badge-wrap:hover .credit-badge .credit-badge-name,
.credit-badge-wrap:hover .credit-badge .credit-badge-arrow,
.credit-badge-wrap.is-open .credit-badge .credit-badge-role,
.credit-badge-wrap.is-open .credit-badge .credit-badge-name,
.credit-badge-wrap.is-open .credit-badge .credit-badge-arrow {
    color: var(--black);
}
.credit-badge:hover .credit-badge-arrow,
.credit-badge:focus-visible .credit-badge-arrow,
.credit-badge-wrap:hover .credit-badge-arrow,
.credit-badge-wrap.is-open .credit-badge-arrow {
    transform: translate(1.5px, -1.5px);
}

/* Floating Neobrutalist Contact Card */
.credit-card-popover {
    position: absolute;
    bottom: calc(100% + 12px);
    left: 50%;
    transform: translateX(-50%) translateY(6px);
    width: 330px;
    max-width: calc(100vw - 28px);
    background: var(--yellow);
    color: var(--black);
    border: 2px solid var(--black);
    box-shadow: 4px 4px 0 var(--black);
    border-radius: 14px;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    z-index: 120;
    cursor: default;
    transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.2s cubic-bezier(0.16, 1, 0.3, 1),
                visibility 0.2s;
}

/* Invisible hover bridge to eliminate gap dead-zone between badge and popover */
.credit-card-popover::before {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 18px;
    background: transparent;
    pointer-events: auto;
}

/* Downward beak arrow pointing to badge */
.credit-card-arrow {
    position: absolute;
    top: 100%;
    left: calc(50% + var(--arrow-shift, 0px));
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid var(--black);
    pointer-events: none;
}
.credit-card-arrow::after {
    content: "";
    position: absolute;
    top: -8px;
    left: -7px;
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 7px solid var(--yellow);
}

/* Desktop hover / focus display */
@media (hover: hover) and (pointer: fine) {
    .credit-badge-wrap:hover .credit-card-popover,
    .credit-badge:focus-visible + .credit-card-popover,
    .credit-card-popover:hover {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(-50%) translateY(0);
    }
}

/* Mobile / Script toggled active state */
.credit-badge-wrap.is-open .credit-card-popover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

/* Card Header */
.credit-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.credit-card-title {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-head);
    font-weight: 800;
    font-size: 11px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--green);
}
.credit-card-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #00A859;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px rgba(0, 168, 89, 0.3);
    animation: creditDotPulse 1.8s ease-in-out infinite;
}
@keyframes creditDotPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.35; transform: scale(0.8); }
}
.credit-card-brand {
    font-family: var(--font-body);
    font-weight: 800;
    font-size: 13px;
    color: var(--green-dark);
}

/* Dashed Divider */
.credit-card-divider {
    border-top: 1.5px dashed rgba(26, 48, 38, 0.35);
    margin: -2px 0 0;
}

/* Card Section */
.credit-card-section {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.credit-section-label {
    font-family: var(--font-head);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(26, 48, 38, 0.8);
}
.credit-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}
.credit-phone-number {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 800;
    color: var(--green-dark);
    letter-spacing: 0.01em;
}

/* Website Button */
.credit-website-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 14px;
    border-radius: var(--radius-pill);
    background: var(--green);
    color: var(--white);
    border: 1.5px solid var(--black);
    box-shadow: 2px 2px 0 var(--black);
    text-decoration: none !important;
    transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}
.credit-btn-content {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.credit-globe-icon {
    color: #00E676;
    flex-shrink: 0;
}
.credit-site-url {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: -0.01em;
    color: #00E676;
}
.credit-ext-arrow {
    color: #00E676;
    flex-shrink: 0;
    transition: transform 0.18s ease;
}
.credit-website-btn:hover,
.credit-website-btn:focus-visible {
    background: #0F1D17;
    transform: translateY(-1.5px);
    box-shadow: 3px 3px 0 var(--black);
}
.credit-website-btn:hover .credit-ext-arrow,
.credit-website-btn:focus-visible .credit-ext-arrow {
    transform: translate(2px, -2px);
}

/* Action Buttons (Call & WhatsApp) */
.credit-actions-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.credit-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px 12px;
    border-radius: var(--radius-pill);
    border: 1.5px solid var(--black);
    box-shadow: 2px 2px 0 var(--black);
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}
.credit-action-icon {
    flex-shrink: 0;
}

/* Call Button */
.credit-call-btn {
    background: var(--green);
    color: var(--white);
}
.credit-call-btn .credit-action-icon {
    color: #00E676;
}
.credit-call-btn:hover,
.credit-call-btn:focus-visible {
    background: #0F1D17;
    color: var(--white);
    transform: translateY(-1.5px);
    box-shadow: 3px 3px 0 var(--black);
}

/* WhatsApp Button */
.credit-wa-btn {
    background: var(--green);
    color: #00E676;
}
.credit-wa-btn .credit-action-icon {
    color: #25D366;
}
.credit-wa-btn:hover,
.credit-wa-btn:focus-visible {
    background: #0F1D17;
    color: #00E676;
    transform: translateY(-1.5px);
    box-shadow: 3px 3px 0 var(--black);
}

/* Content must cover the sticky footer while scrolling */
main { position: relative; z-index: 1; background: var(--yellow); }

/* ==========================================================================
   Inner pages (about / services / product / legal)
   ========================================================================== */
.page-hero { padding: calc(var(--nav-h) + var(--banner-h, 0px) + 96px) 0 72px; }
.page-title {
    font-family: var(--font-head); font-weight: 600; letter-spacing: -0.04em;
    font-size: clamp(54px, 8.4vw, 124px); line-height: 0.95; margin-bottom: 26px;
}
.page-hero .lead { max-width: 640px; font-size: 18px; }
.page-body { padding: 96px 0 140px; }

/* Sport jump chips */
.subnav { position: sticky; top: calc(var(--nav-h) + var(--banner-h, 0px)); z-index: 50; background: var(--yellow); border-bottom: 1px solid var(--black); }
.subnav-inner { padding-top: 10px; padding-bottom: 16px; }

/* Shared bits */
.subpage-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; margin-bottom: 14px; }
.subpage-badge::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--green); }
.num-tag { display: block; font-family: var(--font-body); font-size: 14px; font-weight: 500; letter-spacing: 0; margin-bottom: 10px; }
.page-body h2 { font-family: var(--font-head); font-weight: 600; letter-spacing: -0.03em; line-height: 1; font-size: clamp(36px, 4.4vw, 60px); }
.page-body h3 { font-family: var(--font-head); font-weight: 600; letter-spacing: -0.015em; line-height: 1.1; font-size: 24px; }
.page-body h4 { font-family: var(--font-head); font-weight: 600; font-size: 20px; line-height: 1.15; }
.page-body p + p { margin-top: 12px; }
.fleet-section-block, .why-kumar-section {
    margin-inline: calc(50% - 50vw); padding-inline: max(24px, calc(50vw - 576px));
}
.page-body svg.lucide { color: var(--green); }

/* ---------- About ---------- */
.about-page-layout { display: flex; flex-direction: column; gap: 120px; }
.about-intro-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: start; }
.about-story-col h2 { margin-bottom: 22px; }
.about-story-col p { max-width: 560px; }
.about-stats-card { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.about-stat-item { aspect-ratio: 1.2; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; }
.about-stat-item .num { font-weight: 600; font-size: clamp(44px, 5vw, 68px); line-height: 1; letter-spacing: -0.04em; display: flex; }
.about-stat-item .label { font-size: 14px; font-weight: 500; }
.about-page-layout > .spec-card-block { background: var(--green-dark); color: var(--white); border-radius: var(--radius); padding: clamp(28px, 5vw, 64px); }
.about-page-layout > .spec-card-block .subpage-badge::before { background: var(--yellow); }
.about-page-layout > .spec-card-block h3 { font-size: clamp(28px, 3.4vw, 48px); line-height: 1.08; letter-spacing: -0.025em; margin: 6px 0 20px; max-width: 980px; }
.about-page-layout > .spec-card-block p { max-width: 720px; }
.about-page-layout > section > h2 { margin-bottom: 36px; }
.about-pillars-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.about-pillar-card { border: 1px solid var(--black); border-radius: var(--radius); padding: 26px; display: flex; flex-direction: column; gap: 12px; min-height: 280px; transition: background-color 0.4s, color 0.4s; }
.about-pillar-card:hover { background: var(--green-dark); color: var(--white); }
.about-pillar-card:hover svg.lucide { color: var(--yellow); }
.pillar-icon-box { margin-bottom: auto; }
.pillar-icon-box svg { width: 34px; height: 34px; }
.fleet-section-block { background: var(--green); color: var(--white); padding-top: 110px; padding-bottom: 110px; }
.fleet-section-block > div:first-child { max-width: 720px; margin-bottom: 44px; }
.fleet-section-block .subpage-badge::before { background: var(--yellow); }
.fleet-section-block h3 { font-size: clamp(36px, 4.4vw, 60px); line-height: 1; letter-spacing: -0.03em; margin-bottom: 16px; }
.fleet-cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.fleet-card { background: var(--yellow); color: var(--black); border-radius: var(--radius); padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.fleet-card svg { width: 28px; height: 28px; }
.contact-hub-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 40px; align-items: start; scroll-margin-top: 100px; }
.contact-info-col { display: flex; flex-direction: column; gap: 22px; }
.contact-info-col h2 { margin-bottom: 14px; }
.contact-info-block { display: flex; gap: 16px; border-top: 1px solid var(--black); padding-top: 18px; }
.contact-icon-box svg { width: 26px; height: 26px; }
.contact-info-text h4 { margin-bottom: 4px; }
.contact-info-text a:hover { text-decoration: underline; }
.map-embed { border-radius: var(--radius); overflow: hidden; height: 240px; border: 1px solid var(--black); }
.map-embed iframe { width: 100%; height: 100%; border: 0; display: block; }
.contact-form-col { background: var(--green-dark); color: var(--white); border-radius: var(--radius); padding: clamp(24px, 3.5vw, 40px); position: sticky; top: 100px; }
.contact-form-col h3 { font-size: 32px; margin-bottom: 8px; }
.enquiry-form { margin-top: 26px; display: flex; flex-direction: column; gap: 16px; }
.form-group-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-field { display: flex; flex-direction: column; gap: 6px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { font-size: 13px; font-weight: 500; }
.form-field input, .form-field select, .form-field textarea {
    width: 100%; padding: 13px 14px; border-radius: var(--radius); border: 1px solid var(--line-light);
    background: transparent; color: var(--white); font-size: 15px; transition: border-color 0.3s;
}
.form-field textarea { resize: vertical; min-height: 110px; }
.form-field input::placeholder, .form-field textarea::placeholder { color: rgba(255, 255, 255, 0.55); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: none; border-color: var(--yellow); }
.form-field select option { color: var(--black); background: var(--white); }
.submit-btn { width: 100%; height: 52px; }
.form-feedback { display: none; padding: 12px 14px; border-radius: var(--radius); font-size: 14px; font-weight: 500; }
.form-feedback.active { display: block; }
.form-feedback.success { background: var(--yellow); color: var(--black); }
.form-feedback.error { background: var(--black); color: var(--white); }

/* ---------- Services ---------- */
.specs-catalog-grid { display: flex; flex-direction: column; }
.spec-card-block[role="tabpanel"], .product-card-block { scroll-margin-top: 140px; }
.specs-catalog-grid > .spec-card-block[role="tabpanel"] { border-top: 1px solid var(--black); padding: 64px 0 88px; }
.specs-catalog-grid > .spec-card-block[role="tabpanel"]:first-child { border-top: 0; padding-top: 0; }
.service-sport-title { margin-bottom: 40px; }
.accent-line { display: none; }
.sport-layout-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 48px; align-items: start; }
.sport-details-left { display: flex; flex-direction: column; gap: 36px; }
.sport-details-left h3 { margin-bottom: 14px; }
.materials-list { list-style: none; display: grid; }
.materials-list li { display: flex; gap: 14px; padding: 14px 0; border-top: 1px solid var(--line); }
.materials-list li:last-child { border-bottom: 1px solid var(--line); }
.material-icon { margin-top: 2px; }
.process-steps { list-style: none; counter-reset: step; display: grid; }
.process-steps li { counter-increment: step; display: grid; grid-template-columns: 44px 1fr; padding: 11px 0; border-top: 1px solid var(--line); }
.process-steps li::before { content: counter(step, decimal-leading-zero); font-weight: 600; font-size: 14px; }
.tier-cards-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.tier-card { border: 1px solid var(--black); border-radius: var(--radius); padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.tier-card.standard { background: var(--green-dark); color: var(--white); border-color: var(--green-dark); }
.tier-card.premium { background: var(--green); color: var(--white); border-color: var(--green); }
.tier-badge { font-size: 13px; font-weight: 500; }
.tier-price { font-family: var(--font-head); font-weight: 600; font-size: 26px; letter-spacing: -0.02em; }
.tier-card p { font-size: 14px; margin-top: auto; }
.audience-icons-row { display: flex; flex-wrap: wrap; gap: 10px; }
.aud-icon-box { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--black); border-radius: 999px; font-size: 14px; font-weight: 500; }
.aud-icon-box svg { width: 18px; height: 18px; }
.slide-actions-row { display: flex; flex-wrap: wrap; gap: 12px; }
.sport-visual-right { position: sticky; top: 140px; }
.visual-placeholder-card { background: var(--green-dark); color: var(--white); border-radius: var(--radius); padding: 26px; display: flex; flex-direction: column; gap: 12px; }
.page-body .visual-placeholder-card svg.lucide { color: var(--yellow); width: 30px; height: 30px; }
.visual-card-top { display: flex; justify-content: space-between; align-items: center; }
.placeholder-tag { background: var(--yellow); color: var(--black); font-size: 12px; font-weight: 600; padding: 6px 10px; border-radius: 6px; }
.visual-placeholder-card h4 { font-size: 28px; margin-top: 8px; }
.layer-stack-diagram { display: flex; flex-direction: column; gap: 6px; margin: 10px 0 6px; }
.layer-bar { display: flex; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; }
.layer-bar.top-coat { background: var(--green); }
.layer-bar.cushion-coat { background: repeating-linear-gradient(90deg, var(--green) 0 6px, var(--green-dark) 6px 12px); }
.layer-bar.primer-coat { background: var(--yellow); color: var(--black); }
.layer-bar.sub-base { background: var(--black); }
.layer-thickness { font-weight: 600; white-space: nowrap; }
.spec-metrics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.spec-metric { border-top: 1px solid var(--line-light); padding: 12px 0; display: flex; flex-direction: column; gap: 2px; }
.spec-metric-label { font-size: 12px; opacity: 0.8; }
.spec-metric-val { font-weight: 600; }
.why-kumar-section { background: var(--green); color: var(--white); padding-top: 110px; padding-bottom: 110px; margin-bottom: -140px; }
.why-kumar-title { max-width: 900px; margin-bottom: 20px; }
.why-kumar-section > p { max-width: 760px; margin-bottom: 44px; }
.why-cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.why-card { background: var(--yellow); color: var(--black); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.why-icon { width: 30px; height: 30px; }
.why-kumar-section > div:last-child { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }
.why-kumar-section .btn-green { --face: var(--yellow); --ink: var(--black); }
.page-body .why-kumar-section .btn-green svg.lucide { color: var(--black); }

/* ---------- Product / pricing ---------- */
.product-card-block { border: 1px solid var(--black); border-radius: var(--radius); padding: clamp(20px, 3vw, 36px); margin-bottom: 28px; display: flex; flex-direction: column; gap: 20px; }
.product-card-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; flex-wrap: wrap; }
.court-dims { display: block; margin-top: 10px; font-size: 15px; }
.cost-badge { display: inline-block; background: var(--green); color: var(--white); font-weight: 600; padding: 10px 14px; border-radius: var(--radius); white-space: nowrap; }
.geo-summary-box { background: var(--green-dark); color: var(--white); border-radius: var(--radius); padding: 18px 20px; font-size: 15px; }
.table-scroll-hint { display: none; font-size: 13px; }
.table-scroll-wrapper { overflow-x: auto; border: 1px solid var(--black); border-radius: var(--radius); }
.pricing-table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 760px; }
.pricing-table th { background: var(--black); color: var(--white); text-align: left; font-weight: 500; font-size: 13px; padding: 14px 16px; }
.pricing-table td { padding: 14px 16px; border-top: 1px solid var(--line); vertical-align: top; }
.pricing-table tbody tr { transition: background-color 0.25s; }
.pricing-table tbody tr:hover { background: rgba(0, 0, 0, 0.05); }
.maint-low, .maint-med, .maint-high { display: inline-block; font-size: 12px; font-weight: 600; padding: 4px 9px; border-radius: 999px; }
.maint-low { background: var(--green); color: var(--white); }
.maint-med { border: 1px solid var(--black); }
.maint-high { background: var(--black); color: var(--white); }
.product-card-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.product-service-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; }
.specs-catalog-grid > .spec-card-block:not([role]) { margin-top: 72px; }
.spec-court-title { margin-bottom: 28px; }
.faq-item { border-top: 1px solid var(--black); }
.faq-item:last-child { border-bottom: 1px solid var(--black); }
.faq-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; padding: 20px 0; font-size: 17px; font-weight: 500; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; font-size: 26px; font-weight: 300; line-height: 1; transition: transform 0.4s var(--ease); }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-answer { padding: 0 40px 20px 0; font-size: 15px; }
.faq-answer ul { margin: 10px 0 0 18px; display: grid; gap: 6px; }

/* ---------- Legal ---------- */
.legal-page-layout { display: grid; grid-template-columns: 260px 1fr; gap: 64px; align-items: start; }
.legal-sticky-sidebar { position: sticky; top: 100px; display: flex; flex-direction: column; }
.legal-sidebar-title { font-size: 13px; font-weight: 500; padding-bottom: 10px; }
.legal-toc-link { padding: 10px 0; border-top: 1px solid var(--line); font-size: 14px; font-weight: 500; transition: padding-left 0.3s var(--ease); }
.legal-toc-link:hover { padding-left: 8px; }
.legal-article-content { max-width: 760px; }
.legal-meta-bar { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding-bottom: 18px; border-bottom: 1px solid var(--black); font-size: 14px; font-weight: 500; }
.legal-section-block { padding: 36px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 100px; }
.legal-section-block h2 { font-size: clamp(28px, 3vw, 38px); margin-bottom: 16px; }
.legal-section-block ul, .legal-section-block ol { margin: 10px 0 0 20px; display: grid; gap: 6px; }
.legal-section-block a { text-decoration: underline; }
.legal-notice-box { background: var(--green-dark); color: var(--white); border-radius: var(--radius); padding: 20px; margin-top: 16px; }

@media (max-width: 1024px) {
    .sport-layout-grid, .about-intro-grid, .contact-hub-grid { grid-template-columns: 1fr; }
    .sport-visual-right, .contact-form-col { position: static; }
    .fleet-cards-grid, .why-cards-grid { grid-template-columns: 1fr 1fr; }
    .legal-page-layout { grid-template-columns: 1fr; gap: 24px; }
    .legal-sticky-sidebar { position: static; }
    .about-stat-item { aspect-ratio: auto; padding: 40px 12px; }
}
@media (max-width: 820px) {
    .page-hero { padding: calc(var(--nav-h) + var(--banner-h, 0px) + 64px) 0 56px; }
    .page-body { padding: 64px 0 100px; }
    .about-page-layout { gap: 80px; }
    .about-pillars-grid, .tier-cards-container { grid-template-columns: 1fr; }
    .fleet-section-block, .why-kumar-section { padding-inline: 16px; padding-top: 80px; padding-bottom: 80px; }
    .why-kumar-section { margin-bottom: -100px; }
    .form-group-grid { grid-template-columns: 1fr; }
    .table-scroll-hint { display: block; }
    .footer-cta { padding-top: 56px; padding-bottom: 48px; }
}
@media (max-width: 560px) {
    .hero-inner { padding-inline: 16px; }
    .fleet-cards-grid, .why-cards-grid, .spec-metrics-grid { grid-template-columns: 1fr; }
}

/* ---------- Catalogue modal ---------- */
.catalogue-modal-overlay {
    position: fixed; inset: 0; z-index: 250; background: rgba(0, 0, 0, 0.7);
    display: flex; align-items: center; justify-content: center; padding: 24px;
    opacity: 0; visibility: hidden; transition: opacity 0.35s, visibility 0.35s;
}
.catalogue-modal-overlay.active { opacity: 1; visibility: visible; }
.catalogue-modal-container { width: min(1100px, 100%); height: min(88vh, 900px); background: var(--yellow); border-radius: var(--radius); display: flex; flex-direction: column; overflow: hidden; }
.catalogue-modal-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--black); flex-wrap: wrap; }
.catalogue-modal-title { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.catalogue-modal-actions { display: flex; gap: 8px; align-items: center; }
.cat-modal-close { width: 40px; height: 40px; border-radius: var(--radius); border: 1px solid var(--black); background: transparent; cursor: pointer; display: grid; place-items: center; }
.catalogue-modal-body { flex: 1; }
.catalogue-modal-body iframe { width: 100%; height: 100%; border: 0; background: var(--white); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
    .nav-links { gap: clamp(10px, 1.3vw, 18px); font-size: 14px; }
    .proc-grid { grid-template-columns: 1fr 1fr; }
    .numbers { grid-template-columns: repeat(4, 1fr); }
    .num-tile:nth-child(4n) { border-right: 0; }
    .num-tile:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
    .cad-stage, .cad .sec-head { grid-template-columns: 1fr; }
    .builds-grid { grid-template-columns: 1fr 1fr; }
    .build-card:nth-child(n) { margin-top: 0; }
    .build-card:nth-child(even) { margin-top: 60px; }
}

@media (max-width: 820px) {
    .nav-burger { display: grid; gap: 6px; width: 40px; height: 40px; place-content: center; cursor: pointer; z-index: 2; }
    .nav-burger span { width: 22px; height: 2px; background: var(--black); transition: transform 0.35s var(--ease); }
    .nav-toggle:checked ~ .nav-burger span:first-child { transform: translateY(4px) rotate(45deg); }
    .nav-toggle:checked ~ .nav-burger span:last-child { transform: translateY(-4px) rotate(-45deg); }
    .nav-links {
        position: fixed; top: var(--nav-h); left: 0; right: 0; flex-direction: column; gap: 0;
        background: var(--yellow); border-bottom: 1px solid var(--black); padding: 8px 16px 24px;
        transform: translateY(-110%); visibility: hidden; transition: transform 0.45s var(--ease), visibility 0.45s;
        z-index: -1;
        max-height: calc(100vh - var(--nav-h));
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .nav-links > a { padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 18px; width: 100%; }
    .nav-links a::after { display: none; }
    .nav-item-dropdown {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        border-bottom: 1px solid var(--line);
        width: 100%;
    }
    .nav-link-parent {
        padding: 14px 0;
        font-size: 18px;
        font-weight: 600;
        justify-content: space-between;
        width: 100%;
    }
    .nav-submenu {
        position: static;
        transform: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        display: none;
        background: #061208;
        border: 1px solid rgba(0,0,0,0.4);
        box-shadow: none;
        padding: 12px 14px;
        min-width: 100%;
        margin-bottom: 12px;
        border-radius: 6px;
    }
    .nav-item-dropdown.mobile-open .nav-submenu,
    .nav-item-dropdown:focus-within .nav-submenu {
        display: block;
    }
    .nav-item-dropdown.mobile-open .dropdown-chevron {
        transform: rotate(180deg);
    }
    .nav-submenu-cols {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .nav-sublink {
        font-size: 14px !important;
        padding: 8px 6px !important;
        border-bottom: 1px solid rgba(255,255,255,0.06) !important;
        white-space: normal;
    }
    .nav-links .only-mobile { display: inline-flex; margin-top: 14px; border: 0; color: var(--white); font-size: 16px; padding: 0 20px; }
    .nav-toggle:checked ~ .nav-links { transform: none; visibility: visible; }
    .nav-cta { display: none; }

    .wrap { padding-inline: 16px; }
    .hero-bottom {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
    .hero-right-col {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        width: 100%;
    }
    .hero-stats {
        text-align: left;
        align-self: flex-start;
    }
    .hero .talk-card {
        align-self: flex-start;
    }
    .hero-row { font-size: 13px; }
    .exp-grid, .prog-grid, .proj-grid, .layer-grid, .est-grid, .faq-grid { grid-template-columns: 1fr; gap: 40px; }
    .exp-grid, .prog-grid { padding-top: 80px; }
    .exp-media { min-height: 360px; }
    .prog-head, .proj-head, .layer-detail, .faq-media { position: static; }
    .prog-card { top: calc(84px + var(--i) * 14px); padding: 22px; }
    .proj-card { top: calc(84px + var(--i) * 16px); }
    .process, .cad, .layers, .projects, .estimator, .faq, .builds { padding-top: 88px; padding-bottom: 88px; }
    .faq-media { height: 420px; }
    .cad-readout, .layer-metrics, .est-facts { grid-template-columns: 1fr; }
    .testi-cards { grid-template-columns: 1fr; row-gap: 12vh; margin-top: -40vh; padding: 0 16px; }
    .testi-card:nth-child(n) { justify-self: center; margin-top: 0; grid-column: auto; }
    .footer-top { grid-template-columns: 1fr; }
    .footer-mark { font-size: 12.5vw; }
    .footer-links { text-align: left; flex-direction: row; flex-wrap: wrap; gap: 6px 18px; }
    .footer-profiles { flex-direction: column; align-items: flex-start; gap: 10px; }
    .ticker { height: 64px; }
    .ticker-group { gap: 32px; padding-right: 32px; }
    .ticker-group span { font-size: 24px; }
    .ticker-group svg { width: 28px; height: 28px; }
}

@media (max-width: 560px) {
    .hero-inner { padding-inline: 16px; }
    .proc-grid, .builds-grid { grid-template-columns: 1fr; }
    .build-card:nth-child(n) { margin-top: 0; }
    .numbers { grid-template-columns: 1fr 1fr; }
    .num-tile:nth-child(n) { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
    .num-tile:nth-child(2n) { border-right: 0; }
    .hero-row { flex-direction: column; gap: 10px; }
    .hero-meta.right { text-align: left; }
    .spec-row { grid-template-columns: 1fr; gap: 2px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---------- 404 ---------- */
.nf-hero { min-height: calc(100svh - 64px); display: flex; align-items: center; }
.nf-hero .page-title { font-size: clamp(64px, 12vw, 180px); }
.nf-hero .hero-ctas { margin-top: 32px; }

/* ---------- Emphasis & tagline ---------- */
.accent { color: var(--green); }
.sec-green .accent, .sec-dark .accent, .footer .accent, .hero .accent { color: var(--yellow); }
.tagline {
    display: block; margin-bottom: 12px;
    font-family: var(--font-body); font-size: 13px; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase; color: var(--yellow);
}
.footer-tagline {
    margin-top: 18px; font-family: var(--font-head); font-weight: 600;
    font-size: clamp(18px, 1.8vw, 26px); letter-spacing: -0.01em; text-transform: uppercase;
}
.footer-tagline span { color: var(--yellow); margin-left: 0.5em; }
.footer-tagline span::before { content: "— "; }
.page-body-faq { padding-top: 0; }
.page-body-faq .specs-catalog-grid > .spec-card-block:not([role]) { margin-top: 0; padding-top: 96px; }

/* ---------- Round 8 responsive ---------- */
.nav-cta { height: 42px; padding: 0 18px; --lift: 4px; --lift-hover: 1px; }
@media (max-width: 820px) {
    .switch { grid-template-columns: 1fr; gap: 12px; }
    .switch-frame { display: none; }
    .switch-body { grid-column: 1 / -1; }
    .switch-thumb { display: block; margin-top: 12px; aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; border: 2px solid var(--black); }
    .switch-thumb img { width: 100%; height: 100%; object-fit: cover; }
    .switch-item.active { border-radius: 14px; }
    .switch-item { border-radius: 14px; padding: 16px; }
}
.num-tag { display: flex; align-items: center; gap: 10px; }
.num-tag .sport-icon { width: 30px; height: 30px; color: var(--green); }
.prog-sport { display: inline-flex; align-items: center; gap: 8px; }
.prog-sport .sport-icon { width: 24px; height: 24px; color: var(--green); }
.prog-card:nth-child(even) .prog-sport .sport-icon { color: var(--yellow); }

/* Logo has pale olive leaves: a tight dark outline keeps them readable on light backgrounds */
img[src*="logo."] { filter: drop-shadow(0 0 0.6px rgba(0, 0, 0, 0.95)) drop-shadow(0 0 1.6px rgba(0, 0, 0, 0.55)); }

/* ==========================================================================
   Language Switcher (EN | हिन्दी) Neo-Brutalist Component
   ========================================================================== */
.nav-actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    white-space: nowrap !important;
}
.lang-switch {
    display: inline-flex;
    align-items: center;
    background: var(--white);
    border: 2px solid var(--black);
    border-radius: 999px;
    padding: 2.5px;
    box-shadow: 2px 2px 0 var(--black);
    gap: 2px;
    user-select: none;
    flex-shrink: 0;
    z-index: 10;
}
.lang-btn {
    border: none;
    background: transparent;
    font-family: var(--font-head);
    font-weight: 700;
    font-size: 12px;
    line-height: 1;
    padding: 6px 11px;
    border-radius: 999px;
    color: #1F2937;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.lang-btn:hover {
    color: var(--black);
    background: rgba(0, 0, 0, 0.06);
}
.lang-btn.active {
    background: var(--yellow);
    color: var(--black);
    border: 1.5px solid var(--black);
    box-shadow: 1px 1px 0 var(--black);
}
/* Strictly hide mobile switcher on desktop so only ONE switcher appears */
.lang-switch-mobile {
    display: none !important;
}
@media (max-width: 820px) {
    .nav-actions .nav-cta {
        display: none;
    }
    .lang-switch-mobile {
        display: inline-flex !important;
        margin-top: 18px;
        align-self: flex-start;
    }
}
/* Enhanced font rendering for Devanagari / Hindi */
html[lang="hi"] {
    --font-head: 'Clash Grotesk', 'Noto Sans Devanagari', 'Inter', sans-serif;
    --font-body: 'Noto Sans Devanagari', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ==========================================================================
   AEO & GEO DIRECT ANSWER / FACT BOXES
   Optimized for AI Overviews, Perplexity & Featured Snippets
   ========================================================================== */
.aeo-fact-box {
    background: var(--white);
    border: var(--stroke);
    border-radius: var(--radius);
    box-shadow: 4px 4px 0 var(--black);
    padding: 24px 28px;
    margin: 28px 0;
    position: relative;
}
.aeo-fact-box-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.aeo-badge {
    background: var(--yellow);
    color: var(--black);
    border: 1.5px solid var(--black);
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    font-family: var(--font-head);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.aeo-question {
    font-family: var(--font-head);
    font-size: clamp(1.1rem, 2vw, 1.35rem);
    font-weight: 700;
    color: var(--black);
    line-height: 1.25;
}
.aeo-answer {
    font-size: 15px;
    line-height: 1.6;
    color: #1F2937;
    margin-bottom: 14px;
}
.aeo-answer strong {
    color: var(--black);
    background: rgba(255, 245, 105, 0.4);
    padding: 1px 4px;
    border-radius: 3px;
}
.aeo-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    padding-top: 14px;
    border-top: 1.5px dashed var(--line);
}
.aeo-meta-item {
    display: flex;
    flex-direction: column;
}
.aeo-meta-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    color: #6B7280;
    letter-spacing: 0.03em;
}
.aeo-meta-val {
    font-family: var(--font-head);
    font-size: 14px;
    font-weight: 700;
    color: var(--black);
}

/* ==========================================================================
   PROGRAMMATIC SEO / LOCATION HUBS & SPOKES
   ========================================================================== */
.location-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
    margin-top: 32px;
}
.location-card {
    background: var(--white);
    border: var(--stroke);
    border-radius: var(--radius);
    box-shadow: 4px 4px 0 var(--black);
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.location-card:hover {
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 var(--black);
}
.location-card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}
.location-state-pill {
    background: var(--yellow);
    border: 1.5px solid var(--black);
    border-radius: var(--radius-pill);
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 700;
}
.location-city-title {
    font-family: var(--font-head);
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 4px;
}
.location-transit-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #4B5563;
    margin-bottom: 14px;
}
.location-specs-list {
    list-style: none;
    font-size: 13.5px;
    color: #374151;
    margin-bottom: 18px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.location-specs-list li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.location-specs-list li svg {
    color: var(--green);
    flex-shrink: 0;
    margin-top: 3px;
    width: 14px;
    height: 14px;
}
.location-btn-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--yellow);
    color: var(--black);
    border: 2px solid var(--black);
    border-radius: var(--radius-btn);
    box-shadow: 2px 2px 0 var(--black);
    padding: 10px 16px;
    font-family: var(--font-head);
    font-weight: 700;
    font-size: 14px;
    transition: background 0.15s ease, transform 0.15s ease;
}
.location-btn-link:hover {
    background: #FFEA00;
    transform: translate(-1px, -1px);
    box-shadow: 3px 3px 0 var(--black);
}

/* Location Spoke Specific Detail Sections */
.location-hero-bar {
    background: var(--green-dark);
    color: var(--white);
    border-bottom: 2.5px solid var(--black);
    padding: 48px 0 40px;
}
.location-quick-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin: 32px 0;
}
.quick-fact-card {
    background: var(--white);
    border: var(--stroke);
    border-radius: var(--radius);
    box-shadow: 3px 3px 0 var(--black);
    padding: 18px 20px;
}
.quick-fact-card .fact-lbl {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: #6B7280;
}
.quick-fact-card .fact-val {
    font-family: var(--font-head);
    font-size: 20px;
    font-weight: 700;
    color: var(--black);
    margin-top: 4px;
}
.pricing-matrix-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--white);
    border: var(--stroke);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 4px 4px 0 var(--black);
    margin: 24px 0;
}
.pricing-matrix-table th {
    background: var(--yellow);
    color: var(--black);
    border-bottom: 2px solid var(--black);
    padding: 14px 18px;
    text-align: left;
    font-family: var(--font-head);
    font-weight: 700;
    font-size: 14px;
}
.pricing-matrix-table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
    color: #1F2937;
}
.pricing-matrix-table tr:last-child td {
    border-bottom: none;
}
.pricing-matrix-table tr:hover td {
    background: #F9FAFB;
}
@media (max-width: 640px) {
    .pricing-matrix-table th, .pricing-matrix-table td {
        padding: 10px 12px;
        font-size: 12.5px;
    }
}

/* ==========================================================================
   EVIDENCE & TECHNICAL STANDARDS PANELS (AEO / GEO EVIDENCE GROUNDING)
   ========================================================================== */
.evidence-panel {
    background: var(--white);
    border: var(--stroke);
    border-radius: var(--radius);
    box-shadow: 4px 4px 0 var(--black);
    padding: 24px;
    margin: 32px 0;
}
.evidence-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1.5px solid var(--black);
}
.evidence-tag {
    background: #DCFCE7;
    color: #15803D;
    border: 1.5px solid #166534;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 999px;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.evidence-date {
    font-size: 12px;
    color: #6B7280;
    font-weight: 600;
}
.evidence-claim {
    font-family: var(--font-head);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--black);
    margin-bottom: 10px;
}
.evidence-desc {
    font-size: 14.5px;
    line-height: 1.6;
    color: #374151;
    margin-bottom: 16px;
}
.evidence-specs-table {
    width: 100%;
    border-collapse: collapse;
    background: #F9FAFB;
    border: 1.5px solid var(--black);
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 12px;
}
.evidence-specs-table th {
    background: var(--yellow);
    border-bottom: 1.5px solid var(--black);
    padding: 8px 12px;
    font-size: 12px;
    font-family: var(--font-head);
    font-weight: 700;
    text-align: left;
    color: var(--black);
}
.evidence-specs-table td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--line);
    font-size: 12.5px;
    color: #1F2937;
}
.evidence-specs-table tr:last-child td {
    border-bottom: none;
}
.evidence-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12px;
    color: #4B5563;
    padding-top: 10px;
    border-top: 1px dashed var(--line);
}




/* ---------- Google review QR card (hero + footers) ----------
   QR artwork keeps its own colours (it must stay scannable); the neo-brutalist
   frame is what ties it to the site. Hidden in the hero on phones: you can't
   scan the screen you're holding. */
.review-card {
    display: flex; align-items: center; gap: 12px; width: max-content; max-width: 100%;
    padding: 7px 14px 7px 7px; border: var(--stroke); border-radius: var(--radius-btn);
    background: var(--yellow); color: var(--black);
    box-shadow: var(--lift) var(--lift) 0 var(--black);
    transition: transform var(--dur-press) var(--ease), box-shadow var(--dur-press) var(--ease);
}
.review-card:hover, .review-card:focus-visible {
    transform: translate(calc(var(--lift) - var(--lift-hover)), calc(var(--lift) - var(--lift-hover)));
    box-shadow: var(--lift-hover) var(--lift-hover) 0 var(--black);
}
.review-card:active { transform: translate(var(--lift), var(--lift)); box-shadow: 0 0 0 var(--black); }
.review-card:focus-visible { outline: 3px solid var(--black); outline-offset: 4px; }
.review-card img { width: 72px; height: 72px; border-radius: 7px; flex-shrink: 0; }
.review-copy { display: flex; flex-direction: column; gap: 3px; text-align: left; }
.review-stars { color: var(--green); font-size: 14px; letter-spacing: 2px; line-height: 1; }
.review-copy strong { font-family: var(--font-head); font-weight: 600; font-size: 15px; line-height: 1.15; }
.review-copy small { font-size: 12px; font-weight: 500; line-height: 1.3; }



@media (max-width: 820px) {
}

/* ---------- Hero layout (per annotated reference) ----------
   Stats share the paragraph's row (bottoms aligned); the talk card shares the CTA row.
   The Google review QR sits on the left under the standards line. */
.hero-bottom > .hero-stats { grid-area: stats; justify-self: end; align-self: end; }
.hero-bottom > .talk-card { grid-area: card; justify-self: end; align-self: center; }
.hero-qr { margin-top: 28px; }
.qr-mob { display: none; }
@media (max-width: 820px) {
    /* On phones the card is a tap target (opens the Google profile), so it says so */
    .hero-qr { margin-top: 18px; }
    .hero .review-card { display: flex; }
    .hero .review-card img { width: 56px; height: 56px; }
    .qr-desk { display: none; }
    .qr-mob { display: inline; }
    .hero-bottom > .hero-stats, .hero-bottom > .talk-card { align-self: flex-start; text-align: left; }
}

/* City pages put .page-body on <body>: keep its top spacing but no padding under the footer */
body.page-body { padding-bottom: 0; }

/* ---------- Footer wordmark + tagline (per reference) ----------
   Wordmark fills its grid column exactly: width = 7.42 x font-size for
   "KUMAR SPORTS" in Clash 700 at -0.01em (7.48 keeps a hair of slack for rounding); 100cqw = the column's width. */
.footer-top { align-items: start; }
.footer-mark { container-type: inline-size; min-width: 0; }
.footer-mark span { display: block; font-size: calc(100cqw / 7.48); }
.footer-tagline { margin-top: 28px; font-size: clamp(20px, 2.3vw, 34px); line-height: 1.05; letter-spacing: -0.02em; }
@media (max-width: 820px) { .footer-mark { font-size: inherit; } }
