/* ==========================================================================
   ABOUT UTTARAKHAND — MASTER TYPOGRAPHY
   File: au-typography.css

   SINGLE SOURCE OF TRUTH for font families, sizes, weights, line heights,
   letter spacing, text decoration/transformation, text alignment, wrapping,
   and text colors. Other CSS files must not redeclare these properties.

   Component stylesheets may use these variables but must not set typography.
   Component-specific typography exceptions belong here, using BEM selectors.
   ========================================================================== */

:root {
    /* Brand-aware typography colors */
    --au-font-body: system-ui, -apple-system, "Segoe UI", sans-serif;
    --au-font-heading: var(--au-font-body);
    --au-font-monospace: "SFMono-Regular", Consolas, "Liberation Mono", monospace;

    --au-font-size-xs: .75rem;
    --au-font-size-sm: .875rem;
    --au-font-size-base: 1rem;
    --au-font-size-lg: 1.125rem;
    --au-font-size-xl: 1.25rem;

    --au-font-size-h1: clamp(2rem, 1.5rem + 2vw, 3rem);
    --au-font-size-h2: clamp(1.625rem, 1.35rem + 1.1vw, 2.25rem);
    --au-font-size-h3: clamp(1.375rem, 1.2rem + .7vw, 1.75rem);
    --au-font-size-h4: 1.25rem;
    --au-font-size-h5: 1.125rem;
    --au-font-size-h6: 1rem;

    --au-font-weight-normal: 400;
    --au-font-weight-medium: 500;
    --au-font-weight-semibold: 600;
    --au-font-weight-bold: 700;
    --au-font-weight-heavy: 800;

    --au-line-height-tight: 1.2;
    --au-line-height-heading: 1.35;
    --au-line-height-body: 1.7;
    --au-line-height-relaxed: 1.85;

    --au-letter-spacing-tight: -.02em;
    --au-letter-spacing-normal: 0;
    --au-letter-spacing-wide: .08em;

    /* Text colors are typography-owned tokens, not component CSS tokens. */
    --au-color-text: #241128;
    --au-color-text-muted: #655b66;
    --au-color-heading: #241128;
    --au-color-link: #c90000;
    --au-color-link-hover: #a80000;
    --au-color-border: #e4dde5;

    --au-paragraph-margin-bottom: 1rem;
    --au-heading-margin-bottom: .65em;
    --au-list-margin-bottom: 1rem;
    --au-list-item-margin-bottom: .35rem;
    --au-code-font-size: .9em;

    --au-focus-outline-width: 3px;
    --au-focus-outline-offset: 3px;

    /* Hero typography tokens: shared across hero variants */
    --au-hero-kicker-size: .85rem;
    --au-hero-title-size: clamp(3rem, 4.5vw, 4.6rem);
    --au-hero-subtitle-size: 1.15rem;
    --au-hero-button-weight: 750;
    --au-hero-stat-value-size: clamp(1.8rem, 2.2vw, 2.25rem);
    --au-hero-stat-label-size: .72rem;
}

/* Global document defaults */
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    font-family: var(--au-font-body);
    font-size: var(--au-font-size-base);
    font-weight: var(--au-font-weight-normal);
    line-height: var(--au-line-height-body);
    color: var(--au-color-text);
    font-synthesis: none;
    overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--au-font-heading);
    font-weight: var(--au-font-weight-bold);
    line-height: var(--au-line-height-heading);
    color: var(--au-color-heading);
    letter-spacing: var(--au-letter-spacing-normal);
    margin-top: 0;
    margin-bottom: var(--au-heading-margin-bottom);
    overflow-wrap: break-word;
    text-wrap: pretty;
}

h1 { font-size: var(--au-font-size-h1); }
h2 { font-size: var(--au-font-size-h2); }
h3 { font-size: var(--au-font-size-h3); }
h4 { font-size: var(--au-font-size-h4); }
h5 { font-size: var(--au-font-size-h5); }
h6 { font-size: var(--au-font-size-h6); }

p { margin-top: 0; margin-bottom: var(--au-paragraph-margin-bottom); overflow-wrap: break-word; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
address { font-style: normal; }

/* Links */
a { color: var(--au-color-link); text-decoration: none; text-decoration-skip-ink: auto; }
a:hover { color: var(--au-color-link-hover); }
a:focus-visible { outline: var(--au-focus-outline-width) solid currentColor; outline-offset: var(--au-focus-outline-offset); }
a img { border: 0; }

/* Inline semantics and common text utilities */
strong, b { font-weight: var(--au-font-weight-bold); }
em, i { font-style: italic; }
small, .au-text-small { font-size: var(--au-font-size-sm); }
.au-text-xs { font-size: var(--au-font-size-xs); }
.au-text-base { font-size: var(--au-font-size-base); }
.au-text-lg { font-size: var(--au-font-size-lg); }
.au-text-xl { font-size: var(--au-font-size-xl); }
.au-text-muted { color: var(--au-color-text-muted); }
.au-text-bold { font-weight: var(--au-font-weight-bold); }
.au-text-medium { font-weight: var(--au-font-weight-medium); }
.au-text-semibold { font-weight: var(--au-font-weight-semibold); }
.au-text-normal { font-weight: var(--au-font-weight-normal); }
.au-text-italic { font-style: italic; }
.au-text-uppercase { text-transform: uppercase; }
.au-text-lowercase { text-transform: lowercase; }
.au-text-capitalize { text-transform: capitalize; }
.au-text-center { text-align: center; }
.au-text-start { text-align: start; }
.au-text-end { text-align: end; }

mark { background: #fff3cd; color: #212529; }
sub, sup { position: relative; font-size: .75em; line-height: 0; vertical-align: baseline; }
sup { top: -.5em; }
sub { bottom: -.25em; }
hr { color: var(--au-color-border); opacity: 1; }

/* Lists and definition lists */
ul, ol { margin-top: 0; margin-bottom: var(--au-list-margin-bottom); padding-inline-start: 1.5rem; }
li { margin-bottom: var(--au-list-item-margin-bottom); }
li:last-child { margin-bottom: 0; }
li > ul, li > ol { margin-top: .5rem; margin-bottom: .5rem; }
ul ul { list-style-type: circle; }
ul ul ul { list-style-type: square; }
dt { font-weight: var(--au-font-weight-bold); }
dd { margin-inline-start: 1.5rem; margin-bottom: .75rem; }

/* Quotations */
blockquote { margin: 1.5rem 0; padding-inline-start: 1.25rem; border-inline-start: 4px solid var(--au-color-border); font-size: 1.05em; line-height: var(--au-line-height-relaxed); color: var(--au-color-text-muted); }
blockquote p:last-child { margin-bottom: 0; }
cite { font-style: italic; }
q { quotes: auto; }

/* Code */
code, kbd, samp, pre { font-family: var(--au-font-monospace); }
code, kbd, samp { font-size: var(--au-code-font-size); }
pre { font-size: var(--au-font-size-sm); line-height: 1.6; white-space: pre; overflow-x: auto; tab-size: 4; }
pre code { font-size: inherit; white-space: inherit; }
kbd { font-size: .875em; }

/* Captions and credits */
figcaption, .au-caption { font-size: var(--au-font-size-sm); line-height: 1.6; color: var(--au-color-text-muted); }
.au-image-credit { font-size: var(--au-font-size-xs); line-height: 1.5; color: var(--au-color-text-muted); }

/* Table and form text */
table { font-size: inherit; }
th { font-weight: var(--au-font-weight-bold); text-align: start; }
td, th { line-height: 1.6; }
label, legend { font-weight: var(--au-font-weight-medium); }
input, button, select, textarea { font: inherit; }
::placeholder { color: #767676; opacity: 1; }
button { line-height: inherit; }


/* Listing hero typography: component layout remains in au.css. */
.au-listing-hero__kicker,
.au-page-header__kicker {
    margin-bottom: 1rem;
    color: var(--au-color-text-muted);
    font-size: var(--au-font-size-xs);
    font-weight: var(--au-font-weight-heavy);
    letter-spacing: .14em;
    text-transform: uppercase;
}

.au-listing-hero__title {
    font-size: clamp(2rem, 1.5rem + 2vw, 3rem);
}

.au-listing-hero__subtitle,
.au-page-header__subtitle {
    font-size: var(--au-font-size-lg);
    line-height: var(--au-line-height-relaxed);
    color: var(--au-color-text-muted);
}

/* BEM card link: preserve the global text system without Bootstrap text utilities. */
.au-card__link {
    color: inherit;
    text-decoration: none;
}

.au-card__link:hover {
    color: inherit;
    text-decoration: none;
}

.au-feature__title {
    font-size: var(--au-font-size-h2);
}

/* Feature badge typography. Its surface and spacing are in au.css. */
.au-feature__badge {
    color: #fff;
    font-size: var(--au-font-size-xs);
    font-weight: var(--au-font-weight-bold);
    line-height: 1.4;
}

/* Primary button typography. Its visual surface is in au.css. */
.au-btn--primary,
.au-btn--primary:hover,
.au-btn--primary:focus-visible {
    color: #fff;
    font-weight: var(--au-font-weight-semibold);
}

/* Existing site shell typography retained from au.css */
.au-contact-bar { font-size: .86rem; color: #fff; }
.au-contact-bar a { color: #fff; }
.au-social-links a { font-size: 18px; line-height: 1; }
.au-nav .nav-link { color: var(--au-color-text); font-weight: 650; }
.au-nav .nav-link:hover, .au-nav .nav-link.active { color: var(--au-color-link); }
.au-hero__content { color: #fff; }
.au-hero__kicker { margin-bottom: 1rem; text-transform: uppercase; letter-spacing: .14em; font-size: .76rem; font-weight: 850; }
.au-hero__title { font-size: clamp(2.5rem, 6vw, 5rem); color: #fff; }
.au-hero__subtitle { font-size: 1.15rem; color: #fff; }
.au-section__title { margin: 0; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.au-card__image { color: #fff; font-weight: 800; }
.au-card__title { margin: .25rem 0 .45rem; font-size: 1.25rem; }
.au-meta { font-size: .82rem; color: var(--au-color-text-muted); }
.au-feature__image { color: #fff; font-weight: 800; }
.au-fact__label { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--au-color-text-muted); }
.au-fact__value { font-weight: 800; }
.au-breadcrumb { font-size: .88rem; color: var(--au-color-text-muted); }
.au-page-header__title { font-size: clamp(2.2rem, 5vw, 4rem); }
.au-content p, .au-person-content p { font-size: 1.06rem; }
.au-photo { color: #fff; font-weight: 850; letter-spacing: .06em; }
.au-footer a { color: var(--au-footer-text, #f4eef5); }
.au-footer h5 { color: #fff; }
.au-subscribe-form__button { color: var(--au-color-link); font-weight: 750; }
.au-footer__bottom { font-size: .85rem; }

/* Article reading typography */
.au-content, .au-person-content { font-family: var(--au-font-body); color: var(--au-color-text); }
.au-content p, .au-person-content p { line-height: var(--au-line-height-body); }
.au-content h2, .au-person-content h2 { margin-top: 3rem; margin-bottom: 1rem; }
.au-content a, .au-person-content a { text-decoration-line: underline; }

/* Hero variant typography — all hero text rules live here, never in hero CSS. */
.au-hero-articles__content, .au-hero-blog__content, .au-hero-blog-category__content,
.au-hero-food__content, .au-hero-home__content, .au-hero-people__content,
.au-hero-person__content, .au-hero-static__content, .au-hero-travel__content { color: #fff; }

.au-hero-articles__kicker, .au-hero-blog__kicker, .au-hero-blog-category__kicker,
.au-hero-food__kicker, .au-hero-home__kicker, .au-hero-people__kicker,
.au-hero-person__kicker, .au-hero-static__kicker, .au-hero-travel__kicker {
    color: #c90000; font-size: var(--au-hero-kicker-size); font-weight: 800;
    letter-spacing: .28em; text-transform: uppercase;
}

.au-hero-articles__title, .au-hero-blog__title,
.au-hero-food__title, .au-hero-people__title, .au-hero-person__title,
.au-hero-travel__title {
    color: #fff;
    font-size: var(--au-hero-title-size);
    font-weight: 700;
    line-height: .95;
    text-transform: uppercase;
}

/* Home, blog-category, and static-page heroes share one title treatment. */
.au-hero-home__title,
.au-hero-blog-category__title,
.au-hero-static__title {
    color: #fff;
    font-size: clamp(3rem, 4.3vw, 4.6rem);
    font-weight: 800;
    line-height: .98;
    letter-spacing: .005em;
    text-transform: uppercase;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .28);
    overflow-wrap: break-word;
}

.au-hero-articles__subtitle, .au-hero-blog__subtitle,
.au-hero-food__subtitle, .au-hero-people__subtitle,
.au-hero-person__subtitle, .au-hero-travel__subtitle {
    color: #fff; margin: 0 0 38px; font-size: var(--au-hero-subtitle-size); line-height: 1.6;
}

/* Home, blog-category, and static-page heroes share one subtitle treatment. */
.au-hero-home__subtitle,
.au-hero-blog-category__subtitle,
.au-hero-static__subtitle {
    color: #fff;
    margin: 0 0 38px;
    font-size: var(--au-hero-subtitle-size);
    line-height: 1.6;
}

.au-hero-articles__button, .au-hero-blog__button, .au-hero-blog-category__button,
.au-hero-food__button, .au-hero-home__button, .au-hero-people__button,
.au-hero-person__button, .au-hero-static__button, .au-hero-travel__button {
    color: #fff; font-weight: 750; letter-spacing: .16em; text-transform: uppercase;
    text-decoration: none;
}

.au-hero-articles__stat, .au-hero-blog__stat, .au-hero-blog-category__stat,
.au-hero-food__stat, .au-hero-home__stat, .au-hero-people__stat,
.au-hero-person__stat, .au-hero-static__stat, .au-hero-travel__stat {
    color: #fff; text-align: center;
}
.au-hero-articles__stat-value, .au-hero-blog__stat-value, .au-hero-blog-category__stat-value,
.au-hero-food__stat-value, .au-hero-home__stat-value, .au-hero-people__stat-value,
.au-hero-person__stat-value, .au-hero-static__stat-value, .au-hero-travel__stat-value {
    font-size: var(--au-hero-stat-value-size); font-weight: 700; line-height: 1.1;
    white-space: nowrap;
}
.au-hero-articles__stat-label, .au-hero-blog__stat-label, .au-hero-blog-category__stat-label,
.au-hero-food__stat-label, .au-hero-home__stat-label, .au-hero-people__stat-label,
.au-hero-person__stat-label, .au-hero-static__stat-label, .au-hero-travel__stat-label {
    color: #c90000; margin-top: 25px; font-size: var(--au-hero-stat-label-size); font-weight: 800;
    letter-spacing: .2em; text-transform: uppercase;
}

/* Home hero red accent and contrast treatment */
.au-hero-home__kicker,
.au-hero-home__stat-label,
.au-hero-blog-category__kicker {
    color: #ff1a1a;
    text-shadow: 0 1px 2px rgba(0,0,0,.75), 0 0 6px rgba(0,0,0,.45);
}

/* Responsive typography exceptions are centralized here. */
@media (max-width: 575px) {
    .au-hero-articles__title,
    .au-hero-blog__title,
    .au-hero-food__title,
    .au-hero-people__title,
    .au-hero-person__title,
    .au-hero-travel__title {
        font-size: 3.2rem;
    }

    .au-hero-articles__subtitle,
    .au-hero-blog__subtitle,
    .au-hero-food__subtitle,
    .au-hero-people__subtitle,
    .au-hero-person__subtitle,
    .au-hero-travel__subtitle {
        font-size: 1rem;
    }

    .au-hero-home__kicker,
    .au-hero-blog-category__kicker {
        margin-bottom: 20px;
        font-size: .72rem;
        letter-spacing: .22em;
    }

    .au-hero-home__title,
    .au-hero-blog-category__title,
    .au-hero-static__title {
        font-size: clamp(2.5rem, 9vw, 3.4rem);
        line-height: .95;
        letter-spacing: -.02em;
    }

    .au-hero-home__subtitle,
    .au-hero-blog-category__subtitle,
    .au-hero-static__subtitle {
        margin-bottom: 28px;
        font-size: 1rem;
        line-height: 1.55;
    }
}

@media (max-width: 1199px) {
    .au-hero-home__title,
    .au-hero-blog-category__title,
    .au-hero-static__title {
        font-size: clamp(3rem, 4.3vw, 4.2rem);
    }
}

@media (max-width: 991px) {
    .au-hero-home__title,
    .au-hero-blog-category__title,
    .au-hero-static__title {
        font-size: clamp(2.5rem, 9vw, 3.4rem);
        line-height: .95;
        overflow-wrap: anywhere;
    }
}

/* Mobile text spacing is typography-owned; component files only control layout. */
@media (max-width: 575px) {
    .au-contact-bar { font-size: .86rem; }
}
