/* Shared brand foundation for sites that opt into the current AditiKraft visual system. */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

:root {
    --transition-fast: 0ms linear;
    --transition-base: 0ms linear;
    --transition-slow: 0ms linear;
    --transition-bounce: 0ms linear;
}

body {
    font-family: var(--font-sans);
    background-color: var(--bg-primary);
    color: var(--text-primary);
    line-height: 1.6;
    overflow-x: hidden;
    min-height: 100vh;
    position: relative;
    /* Crafted-paper background. A single, very faint speckle texture replaces
       the previous radial primary glow. The grain is anchored to the viewport
       so it stays consistent during scroll, and rendered at low contrast so it
       reads as "printed on paper" rather than as a visual effect. No animation,
       no gradients, no pretend depth. */
    background-image: var(--paper-grain);
    background-size: 220px 220px;
    background-attachment: fixed;
    background-repeat: repeat;
    /* Body OpenType polish — contextual alternates and kerning for clean
       paragraph rendering; tabular numerals are scoped per-component. */
    font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
    text-rendering: optimizeLegibility;
}

:root[data-theme="dark"] body,
body[data-theme="dark"] {
    /* Quieter grain on dark so it doesn't sparkle. */
    background-blend-mode: overlay;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-display);
    color: var(--text-primary);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.015em;
    margin-bottom: var(--space-lg);
    /* Fraunces ships an optical-size axis (9-144) and a SOFT axis (0-100).
       Letting the browser drive the optical size by font-size keeps display
       weights tight at large sizes and warm at small sizes — the warmth is
       what makes the type feel hand-cut rather than algorithmic. */
    font-optical-sizing: auto;
    font-variation-settings: "SOFT" 30, "opsz" 32;
    font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "ss01" 1;
    text-wrap: balance;
}

h1 {
    font-size: clamp(2.5rem, 4.2vw + 1rem, 4.25rem);
    color: var(--text-primary);
    line-height: 1.04;
    letter-spacing: -0.022em;
    font-variation-settings: "SOFT" 30, "opsz" 96;
    font-weight: 500;
}

h2 {
    font-size: clamp(1.85rem, 3vw + 1rem, 2.85rem);
    line-height: 1.08;
    letter-spacing: -0.018em;
    font-variation-settings: "SOFT" 30, "opsz" 64;
    font-weight: 500;
}

h3 {
    font-size: clamp(1.4rem, 1.6vw + 0.95rem, 2rem);
    color: var(--text-primary);
    font-weight: 500;
    font-variation-settings: "SOFT" 30, "opsz" 36;
}

h4 {
    font-size: 1.4rem;
    font-weight: 500;
}

h5 {
    font-size: 1.18rem;
    font-weight: 600;
}

/* The h6 is the editorial eyebrow / kicker tier. We keep it sans, uppercase,
   and hairline-spaced so it reads as metadata, not a heading. */
h6 {
    font-family: var(--font-sans);
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--text-tertiary);
}

a {
    color: var(--link-color);
    text-decoration-color: color-mix(in srgb, var(--link-color) 45%, transparent);
    transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
}

a:visited {
    color: var(--link-color);
    text-decoration-color: color-mix(in srgb, var(--link-color) 45%, transparent);
}

:where(article, .ak-prose, .ak-legal-document, .legal-content) a:visited {
    color: var(--link-visited);
    text-decoration-color: color-mix(in srgb, var(--link-visited) 45%, transparent);
}

a:hover,
a:focus-visible {
    color: var(--link-hover);
    text-decoration-color: var(--link-hover);
}

button,
input,
select,
textarea {
    font: inherit;
}

:focus-visible {
    outline: none;
    box-shadow: 0 0 0 1px var(--focus-ring-inner),
    0 0 0 4px var(--focus-ring);
}

p {
    margin-bottom: var(--space-md);
    color: var(--text-secondary);
    font-size: 1.05rem;
    line-height: 1.72;
    max-width: var(--measure-prose);
}

.lead {
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.65;
    color: var(--text-secondary);
    max-width: var(--measure-tight);
}

.main-content {
    min-height: 100vh;
    padding-top: 100px;
    position: relative;
    z-index: var(--z-base);
}

.container {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--space-container-inline);
    padding-left: var(--space-container-inline);
    max-width: 1400px;
}

section {
    padding: var(--space-surface-padding) 0;
    position: relative;
}

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--bg-primary);
}

::-webkit-scrollbar-thumb {
    background: var(--bg-secondary);
    border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--primary);
}

*,
*::before,
*::after {
    animation-duration: 0ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0ms !important;
    transition-delay: 0ms !important;
}

.fade-in,
.slide-up,
.animate-fade-in {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
}

.card:hover,
.ak-social-links__link:hover,
.not-found-content:hover,
.btn-primary:hover,
.btn-primary:hover:not(:disabled),
.pricing-card:hover,
.pricing-card.popular:hover,
.feature-card:hover,
.feature-item:hover,
.service-card:hover,
.register-card:hover,
.navbar-brand:hover .logo-img,
.product-card:hover .product-image,
.feature-list li:hover,
.benefit-card:hover {
    transform: none !important;
}

@media (max-width: 768px) {
    :root {
        --space-4xl: 4rem;
    }

    .container {
        padding: 0 var(--space-container-inline-mobile);
    }
}
