/* =============================================================================
   DDG · main.css — the single stylesheet each page links.
   Link ONLY this file:   <link rel="stylesheet" href="assets/css/main.css?v=66">

   The @layer line below fixes the cascade order up front, so it no longer
   matters what order the files load in — later layers always win over earlier
   ones, and we never need !important or specificity hacks to override the reset.
   Component styles will slot into the `components` layer as we build them.

   CACHE-BUSTING: every @import carries ?v=N, mirrored by main.js for the JS
   modules. Chrome caches file:// @imports aggressively — hard-reload does NOT
   reliably refetch them, which shows up as "my fix didn't apply" while Safari
   (fresh load) looks right. Bump N here, in index.html's <link>/<script>, and
   in main.js's VERSION together whenever shipping style/script changes.
   ========================================================================== */

@layer reset, tokens, base, layouts, components, utilities;

/* @import must precede normal rules; each partial assigns itself to a layer. */
@import url("fonts.css?v=66");
@import url("tokens.css?v=66");
@import url("reset.css?v=66");
@import url("base.css?v=66");

/* Component partials — added as each global module is built. */
@import url("components/header.css?v=66");
@import url("components/footer.css?v=66");
@import url("components/hero.css?v=66");
@import url("components/works.css?v=66");
@import url("components/services.css?v=66");
@import url("components/events.css?v=66");
@import url("components/news.css?v=66");

/* About page components. */
@import url("components/about-hero.css?v=66");
@import url("components/feature-cards.css?v=66");
@import url("components/team.css?v=66");
@import url("components/documents.css?v=66");


/* News archive. */
@import url("components/spinner.css?v=66");
@import url("components/page-hero.css?v=66");
@import url("components/filter-dropdown.css?v=66");
@import url("components/news-listing.css?v=66");
@import url("components/card-listing.css?v=66");
@import url("components/notch-card.css?v=66");
@import url("components/projects.css?v=66");
@import url("components/research.css?v=66");
@import url("components/media-card.css?v=66");
@import url("components/project-inner.css?v=66");
@import url("components/legal.css?v=66");
@import url("components/contacts.css?v=66");
@import url("components/get-involved.css?v=66");

/* News inner page. */
@import url("components/services-page.css?v=66");
@import url("components/article.css?v=66");
@import url("components/article-slider.css?v=66");
@import url("components/project-partners.css?v=66");

/* The popup a Documents list opens an image, a video or an audio file in.
   About page and Project page both. */
@import url("components/lightbox.css?v=66");

/* Vendor · Owl Carousel 2.3.4 (News section). Deliberately UNLAYERED so its
   own display/transform machinery outranks our component layer — the section's
   two documented overrides live at the foot of components/news.css. */
@import url("owl-carousel.min.css?v=66");
