/* ==========================================================================
   ASAS — Option A  ·  "Bronze on Charcoal"
   --------------------------------------------------------------------------
   Palette is taken directly from the ASAS mark: bronze #A88556 over a warm
   near-black. Dark, cinematic, NMDC-leaning. Loaded after style.css and
   responsive.css so it can re-point the theme tokens the template already
   uses, then correct the components the tokens don't reach.
   ========================================================================== */

/* ---------- 1. tokens ---------------------------------------------------- */
:root {
    --thm-font:    'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif;
    --thm-font-2:  'Archivo', 'Helvetica Neue', Arial, sans-serif;
    --thm-font-two:'Archivo', 'Helvetica Neue', Arial, sans-serif;

    --thm-base:     #A88556;          /* bronze — every accent in the template */
    --thm-base-rgb: 168, 133, 86;
    --thm-accent:   #A88556;
    --thm-black:    #15120F;          /* warm near-black */
    --thm-black-rgb: 21, 18, 15;
    --thm-primary:  #221D18;
    --thm-primary-rgb: 34, 29, 24;
    --thm-gray:     #6E675F;
    --thm-gray-rgb: 110, 103, 95;

    /* option-A additions */
    --a-bronze-hi:  #C9A974;
    --a-bronze-lo:  #7C6243;
    --a-ink:        #15120F;
    --a-ink-2:      #221D18;
    --a-ink-3:      #3A322B;
    --a-paper:      #FFFFFF;
    --a-stone:      #F2F0EC;
    --a-stone-2:    #E6E2DB;
    --a-line:       #DCD8D1;
    --a-line-dk:    rgba(255, 255, 255, .15);
    --a-radius:     10px;             /* NMDC-scale softness */
    --a-radius-sm:  10px;            /* was 6px — unified with --a-radius so
                                        corners match across the whole site */
}

/* ---------- 2. typography ------------------------------------------------ */
body {
    font-family: var(--thm-font);
    color: #2A2520;
    background: var(--a-paper);
}

h1, h2, h3, h4, h5, h6,
.sec-title__title,
.section-header h2 {
    font-family: var(--thm-font-2);
    letter-spacing: -0.018em;
    color: var(--a-ink);
}

.sec-title__title,
.section-header h2 {
    text-transform: uppercase;
    font-weight: 800;
    line-height: 1.04;
}

/* eyebrow / tagline above every section title */
.sec-title__tagline h6,
.section-tag,
.eyebrow {
    font-family: 'IBM Plex Mono', ui-monospace, Menlo, monospace !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase;
    color: var(--a-bronze-lo) !important;
}

.sec-title__tagline .right,
.sec-title__tagline span.right {
    background: var(--a-bronze-lo) !important;
}

/* ---------- 3. buttons --------------------------------------------------- */
.thm-btn,
.btn-one,
.main-header__btn,
button.thm-btn,
a.thm-btn {
    font-family: var(--thm-font) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    border-radius: var(--a-radius-sm) !important;
    background: var(--a-bronze-lo) !important;
    color: #FFFFFF !important;
    border: 1px solid var(--a-bronze-lo) !important;
    transition: background .28s ease, color .28s ease, border-color .28s ease !important;
}

.thm-btn:hover,
.btn-one:hover,
.main-header__btn:hover,
button.thm-btn:hover,
a.thm-btn:hover {
    background: var(--a-ink) !important;
    border-color: var(--a-ink) !important;
    color: var(--a-bronze-hi) !important;
}

/* the template paints a sliding pseudo-element behind buttons — disable it
   so the flat fill above is what actually shows */
.thm-btn::before,
.thm-btn::after,
.btn-one::before,
.btn-one::after { display: none !important; }

/* ---------- 4. surfaces: soften the template's heavy card styling -------- */
/* Blog cards are styled in full further down (section 10); they are deliberately
   left out of this blanket rule, whose !important would otherwise beat it. */
.pcard__thumb,
.project-card,
.service-card,
.unit-card,
.company-card,
.brand-card {
    border-radius: var(--a-radius) !important;
    box-shadow: none !important;
}

/* ---------- 5. page headers --------------------------------------------- */
/* The template washes the banner out with a white gradient and sets the title
   in near-black, which leaves it unreadable over a bright sky. Option A does
   the opposite: a charcoal scrim, white title, bronze breadcrumb. */
.page-header {
    background: var(--a-ink);
    padding: clamp(120px, 15vw, 190px) 0 clamp(110px, 14vw, 175px);
}

.page-header__bg::before {
    background: linear-gradient(90deg,
                rgba(21, 18, 15, .92) 0%,
                rgba(21, 18, 15, .80) 34%,
                rgba(21, 18, 15, .42) 68%,
                rgba(21, 18, 15, .22) 100%) !important;
}

/* a second, vertical pass so the sticky header always has something to sit on */
.page-header__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
                rgba(21, 18, 15, .55) 0%,
                rgba(21, 18, 15, 0) 38%);
    z-index: 1;
}

.page-header__content { position: relative; z-index: 2; }

.page-header__content h2 {
    font-family: var(--thm-font-2);
    font-size: clamp(34px, 6vw, 68px) !important;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.028em;
    line-height: .98;
    color: #FFFFFF !important;
}

/* bronze rule under the title */
.page-header__content h2::after {
    content: "";
    display: block;
    width: 72px;
    height: 3px;
    background: var(--a-bronze-hi);
    margin-top: 24px;
}

.page-header__menu ul,
.page-header__menu li {
    font-family: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--a-bronze-hi);
}

.page-header__menu li a,
.page-header__menu li a i { color: #D8D2C9 !important; }
.page-header__menu li a:hover { color: var(--a-bronze-hi) !important; }

/* ---------- 6. header / nav --------------------------------------------- */
.main-header { background: var(--a-paper); border-bottom: 1px solid var(--a-line); }

.main-menu__list > li > a,
.main-menu .main-menu__list > li > a {
    font-family: var(--thm-font);
    font-weight: 600;
    font-size: 12.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--a-ink);
}

.main-menu__list > li > a:hover,
.main-menu__list > li.current > a {
    color: var(--a-bronze-lo);
}

/* ---------- 7. footer ---------------------------------------------------- */
.footer-one-sec,
.footer-one {
    background: #0B0A09 !important;
    color: #9C938A;
}

.footer-one-sec::before,
.footer-one-sec::after { display: none !important; }

.footer-widget__title,
.footer-widget h3 {
    font-family: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #E4DED6;
}

.footer-widget__links li a,
.footer-one a { color: #9C938A; }
.footer-widget__links li a:hover,
.footer-one a:hover { color: var(--a-bronze-hi); }

/* ---------- 8. home hero ------------------------------------------------- */
/* NMDC's opener: a tall, tight, uppercase lockup with one accent line and a
   bronze rule, over a proper gradient scrim rather than a flat wash. */
.video-hero-content h2 {
    font-family: var(--thm-font-2) !important;
    font-weight: 800 !important;
    font-size: clamp(32px, 5.4vw, 72px) !important;
    line-height: .99 !important;
    letter-spacing: -0.028em !important;
    text-transform: uppercase;
    text-shadow: 0 2px 30px rgba(0, 0, 0, .45) !important;
}

.video-hero-content h2::after {
    content: "";
    display: block;
    width: 76px;
    height: 3px;
    background: var(--a-bronze-hi);
    margin: 26px 0 0;
}

.video-hero-content .video-hero__eyebrow,
.video-hero-content > span:first-child {
    font-family: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--a-bronze-hi);
}

.video-hero-content p {
    font-size: 16.5px;
    color: #D9D3CA;
    max-width: 52ch;
}

/* ghost button beside the solid one */
.video-hero__btn-ghost {
    border-radius: var(--a-radius-sm) !important;
    border: 1px solid rgba(255, 255, 255, .5) !important;
    background: transparent !important;
    color: #fff !important;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-size: 13px;
}

.video-hero__btn-ghost:hover {
    background: #fff !important;
    color: var(--a-ink) !important;
    border-color: #fff !important;
}

.video-hero__scroll-label {
    font-family: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
    font-size: 10px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--a-bronze-hi);
}

/* ---------- 9. utility --------------------------------------------------- */
.a-ink-band   { background: var(--a-ink); color: #E8E3DB; }
.a-stone-band { background: var(--a-stone); }

::selection { background: var(--a-bronze-lo); color: #fff; }

html { scrollbar-color: var(--a-bronze-lo) var(--a-stone-2); }

/* ---------- 10. blog cards (listing + home strip) ------------------------- */
/* Squared image, hairline frame, meta in mono, title in display — the same
   card logic as the projects grid so the two read as one family. */
.blog-one__single {
    background: var(--a-paper);
    border-radius: var(--a-radius);
    box-shadow: 0 0 0 1px var(--a-line);
    overflow: hidden;
    height: 100%;
    transition: box-shadow .25s ease;
}

.blog-one__single:hover {
    box-shadow: 0 0 0 1px var(--a-bronze-lo);
    transform: none;
}

.blog-one__single-img,
.blog-one__single-img .inner {
    border-radius: 0 !important;
    overflow: hidden;
}

.blog-one__single-img .inner img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .55s cubic-bezier(.2, .7, .3, 1);
}

.blog-one__single:hover .blog-one__single-img .inner img { transform: scale(1.05); }

.blog-one__single-content {
    position: static !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
}

.blog-one__single-content .inner-content { padding: 20px 22px 24px; }

.blog-one__single .meta-info {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}

.blog-one__single .meta-info li,
.blog-one__single .meta-info li a {
    font-family: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
    font-size: 10.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--a-bronze-lo);
}

.blog-one__single .meta-info li a:hover { color: var(--a-ink); }

.blog-one__single-content h2,
.blog-one__single-content h3 {
    font-family: var(--thm-font-2);
    font-size: 17.5px !important;
    font-weight: 700;
    line-height: 1.28;
    letter-spacing: -0.012em;
    margin: 0 0 14px;
}

.blog-one__single-content h2 a,
.blog-one__single-content h3 a { color: var(--a-ink); transition: color .25s ease; }
.blog-one__single:hover .blog-one__single-content h2 a { color: var(--a-bronze-lo); }

/* the card's own button reads as a text link, so the page isn't a field of blocks */
.blog-one__single .btn-box .thm-btn {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--a-bronze-lo) !important;
    border-radius: 0 !important;
    color: var(--a-bronze-lo) !important;
    padding: 0 0 6px !important;
    height: auto !important;
    font-size: 12px !important;
    letter-spacing: .12em !important;
}

.blog-one__single .btn-box .thm-btn:hover {
    color: var(--a-ink) !important;
    border-bottom-color: var(--a-ink) !important;
    background: transparent !important;
}

@media (prefers-reduced-motion: reduce) {
    .blog-one__single, .blog-one__single-img .inner img { transition: none; }
}

/* ---------- contact map: responsive -------------------------------------- */
/* The embed ships with width="1200" height="600" hard-coded, so on a phone
   only the left third of the map was visible. */
.contact-page-google-map iframe {
    width: 100%;
    max-width: 100%;
    display: block;
    border: 0;
}

@media (max-width: 767px) {
    .contact-page-google-map iframe { height: 360px; }
}

/* ---------- radius normalisation ----------------------------------------- */
/* The template shipped a mix of 6px, 12px, 16px and 20px corners. Everything
   that reads as a box or control is pinned to the one token, --a-radius.
   Deliberately untouched: circles (50%) such as avatars and social icons,
   and the third-party chat widget. */
.project-card-elegant,
.project-card-badge,
.business-units-content-area,
.unit-tab-horizontal,
.content-icon,
.thm-btn,
button.thm-btn,
.video-hero__btn-ghost,
.mobile-nav__toggler,
.brand-one-sec .swiper-slide a,
.thm-swiper__slider .swiper-slide a,
.input,
.textarea,
input.input,
textarea.textarea,
.story-section,
.message-section,
.companies-section,
.featured-badge,
.pcard__tag,
.contact-page-google-map iframe,
.about-three__img,
.about-three__img img,
.blog-one__single,
.blog-one__single-img,
.blog-one__single-img .inner {
    border-radius: var(--a-radius) !important;
}

/* style.css gives the home About image a 200px leaf shape via longhand
   properties, which the shorthand above already overrides — these pin the
   longhands too, in case the shorthand is ever reordered. */
.about-three__img {
    border-top-right-radius: var(--a-radius) !important;
    border-bottom-left-radius: var(--a-radius) !important;
}

/* .inner-content only ever occurs inside a blog card, whose parent already
   carries the radius and clips with overflow:hidden — so it needs none of
   its own. (An earlier version rounded its bottom corners, which left the
   square blog card looking half-finished.) */
.blog-one__single .inner-content {
    border-radius: 0 !important;
}

/* ---------- radius: single source of truth -------------------------------- */
/* Individual pages set their own corners in body <style> blocks, and some of
   those render after the footer, so document order cannot win. The `html body`
   prefix raises specificity above any page rule instead, whatever the order.
   Left square on purpose: full-bleed bands, table cells, the sticky header and
   the mobile-nav shell. Circles (50%) and the chat widget are untouched. */
html body .blog-one__single,
html body .blog-one__single-img,
html body .blog-one__single-img .inner,
html body .about-three__img,
html body .about-three__img .inner,
html body .about-three__img img,
html body .node-card,
html body .message-image,
html body .message-image img,
html body .mission-vision-grid,
html body .gallery-item,
html body .gallery-item img,
html body .contact-page__content-single-inner,
html body .tab-pane,
html body .project-card-elegant,
html body .project-card-badge,
html body .project-card-image,
html body .pcard__thumb,
html body .pcard__tag,
html body .business-units-content-area,
html body .unit-tab-horizontal,
html body .content-icon,
html body .featured-badge,
html body .story-section,
html body .message-section,
html body .companies-section,
html body .svc-card,
html body .thm-btn,
html body button.thm-btn,
html body a.thm-btn,
html body .video-hero__btn-ghost,
html body .mobile-nav__toggler,
html body .brand-one-sec .swiper-slide a,
html body .thm-swiper__slider .swiper-slide a,
html body .input,
html body .textarea,
html body input.input,
html body textarea.textarea,
html body input[type="text"],
html body input[type="email"],
html body input[type="tel"],
html body textarea,
html body .contact-page-google-map iframe {
    border-radius: var(--a-radius) !important;
}

/* set upstream as longhands, so pin those too */
html body .about-three__img {
    border-top-right-radius: var(--a-radius) !important;
    border-bottom-left-radius: var(--a-radius) !important;
}

/* clipped by the card above it, and an underlined text link, respectively */
html body .blog-one__single .inner-content { border-radius: 0 !important; }
html body .blog-one__single .btn-box .thm-btn { border-radius: 0 !important; }

