/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

@font-face {
  font-family: "Agile Syne";
  src: url("/assets/agile/Syne-VariableFont_wght.ttf") format("truetype-variations");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Agile Kanit";
  src: url("/assets/agile/Kanit-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Agile Kanit";
  src: url("/assets/agile/Kanit-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Agile Kanit";
  src: url("/assets/agile/Kanit-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Agile Kanit";
  src: url("/assets/agile/Kanit-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Agile Kanit";
  src: url("/assets/agile/Kanit-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

.brand-agile {
  --agile-navy: #0D1F3C;
  --agile-navy-mid: #162d52;
  --agile-navy-light: #1e3d70;
  --agile-navy-deep: #08131f;
  --agile-navy-code: #0a1628;
  --agile-turquoise: #3ECFB2;
  --agile-turquoise-hi: #5de0c8;
  --agile-turquoise-dim: rgba(62, 207, 178, 0.15);
  --agile-fg: #ffffff;
  --agile-fg-2: rgba(255, 255, 255, 0.75);
  --agile-fg-muted: rgba(255, 255, 255, 0.5);
  --agile-border: rgba(62, 207, 178, 0.2);
  --agile-border-faint: rgba(255, 255, 255, 0.08);
  --agile-radius: 4px;
  --agile-radius-lg: 12px;

  /* Graphics tokens, retinted for this brand. No !important needed and none
     wanted: body.brand-agile is specificity (0,1,1) and beats the :root block
     in tailwind/application.css at (0,1,0). Bespoke SVG reads only --viz-*,
     never a palette utility class, so it never enters the !important fight
     that the rules below this block are having. */
  --viz-bg:          var(--agile-navy-deep);
  --viz-surface:     rgba(62, 207, 178, 0.06);
  --viz-grid:        rgba(62, 207, 178, 0.12);
  --viz-dim:         rgba(255, 255, 255, 0.30);
  --viz-stroke:      rgba(255, 255, 255, 0.55);
  --viz-accent:      var(--agile-turquoise);
  --viz-accent-soft: var(--agile-turquoise-dim);
  --viz-ink:         var(--agile-fg);
  --viz-ink-dim:     var(--agile-fg-muted);
  --viz-ink-line:    var(--agile-border);
  --viz-redact:      rgba(255, 255, 255, 0.10);
  /* The gate card is bg-white, which this brand already rewrites to navy —
     a hardcoded white fade would band against it. */
  --viz-gate-fade:   var(--agile-navy-mid);
  background: var(--agile-navy);
  color: var(--agile-fg);
  font-family: "Agile Kanit", system-ui, sans-serif;
  font-weight: 300;
}

.brand-agile header.bg-white,
.brand-agile footer.bg-white {
  background: rgba(13, 31, 60, 0.95) !important;
  border-color: var(--agile-border-faint) !important;
}

.brand-agile .text-carbon,
.brand-agile .text-body {
  color: var(--agile-fg) !important;
}

.brand-agile .text-muted {
  color: var(--agile-fg-muted) !important;
}

.brand-agile .text-forest,
.brand-agile .text-green-bright {
  color: var(--agile-turquoise) !important;
}

.brand-agile .bg-sage-white,
.brand-agile .bg-white {
  background-color: var(--agile-navy-mid) !important;
}

.brand-agile .bg-sage {
  background-color: var(--agile-turquoise-dim) !important;
}

.brand-agile .bg-forest,
.brand-agile .bg-green-bright {
  background-color: var(--agile-turquoise) !important;
  color: var(--agile-navy) !important;
}

.brand-agile .bg-forest-deep {
  background-color: var(--agile-navy-deep) !important;
}

.brand-agile .border-border,
.brand-agile .border-forest {
  border-color: var(--agile-border) !important;
}

.brand-agile input,
.brand-agile select,
.brand-agile textarea {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: var(--agile-border-faint) !important;
  border-radius: var(--agile-radius) !important;
  color: var(--agile-fg) !important;
  font-weight: 300;
}

.brand-agile input::placeholder,
.brand-agile textarea::placeholder {
  color: rgba(255, 255, 255, 0.35) !important;
}

.brand-agile input:focus,
.brand-agile textarea:focus {
  border-color: var(--agile-turquoise) !important;
  background: rgba(62, 207, 178, 0.04) !important;
  box-shadow: none !important;
}

.brand-agile .rounded-xl,
.brand-agile .rounded-lg {
  border-radius: var(--agile-radius-lg) !important;
}

.brand-agile .rounded-md {
  border-radius: var(--agile-radius) !important;
}

.brand-agile h1,
.brand-agile h2 {
  font-family: "Agile Syne", Georgia, serif;
  font-weight: 400 !important;
  letter-spacing: -0.02em !important;
}

.brand-agile h1 em,
.brand-agile h2 em,
.agile-page em {
  color: var(--agile-turquoise);
  font-style: normal;
  font-weight: 700;
}

.agile-page {
  background: var(--agile-navy);
  color: var(--agile-fg);
  overflow: hidden;
}

/* Matches the shared header's max-w-7xl px-6, so every section lines up
   with the logo and nav above it. */
.agile-container {
  width: 100%;
  max-width: 80rem;
  margin-inline: auto;
  padding-inline: 1.5rem;
}

.agile-hero {
  min-height: calc(100vh - 72px);
  display: flex;
  align-items: center;
  position: relative;
  padding-block: clamp(4rem, 8vw, 7rem);
}

.agile-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(62, 207, 178, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(62, 207, 178, 0.04) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black, transparent);
}

.agile-glow {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(62, 207, 178, 0.12) 0%, transparent 70%);
  top: 50%;
  right: -10%;
  transform: translateY(-50%);
  pointer-events: none;
}

.agile-label {
  font-family: "DM Mono", "JetBrains Mono", Menlo, monospace;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--agile-turquoise);
}

.agile-display {
  font-family: "Agile Syne", Georgia, serif;
  font-size: clamp(3rem, 7vw, 6.5rem);
  line-height: 1;
  letter-spacing: -0.02em;
  font-weight: 400;
}

.agile-body-lg {
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  font-weight: 300;
  line-height: 1.7;
  color: var(--agile-fg-2);
}

.agile-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.9rem 1.8rem;
  border-radius: var(--agile-radius);
  font-size: 0.95rem;
  font-weight: 500;
  border: 1.5px solid transparent;
  transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  white-space: nowrap;
}

.agile-btn-primary {
  background: var(--agile-turquoise);
  color: var(--agile-navy);
  border-color: var(--agile-turquoise);
}

.agile-btn-primary:hover {
  background: var(--agile-turquoise-hi);
  border-color: var(--agile-turquoise-hi);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(62, 207, 178, 0.3);
}

.agile-card {
  background: var(--agile-navy-mid);
  border: 1px solid var(--agile-border);
  border-radius: var(--agile-radius-lg);
  padding: clamp(1.5rem, 3vw, 2.5rem);
}

/* Pocket — from the Pocket Design System (brand kit v1.0). A flat, bordered,
   light brand: Pocket Blue headings on a pale-blue page, one orange CTA per
   section, Pocket Black for the footer.

   Unlike .brand-agile, which inverts the page to navy, Pocket keeps CertIQ's
   light layout, so it re-points Tailwind's palette variables instead of
   overriding utilities with !important: every bg-forest, text-muted and
   border-border on every page follows without a rule of its own. */
.brand-pocket {
  --pocket-blue: #0077B3;
  --pocket-blue-dark: #005A87;
  --pocket-blue-deeper: #004268;
  --pocket-blue-hover: #0088CC;
  --pocket-pale-blue: #E7F3F8;
  --pocket-pale-blue-dark: #CCE5F0;
  --pocket-border: #A8CDE0;
  --pocket-orange: #FF8C19;
  --pocket-orange-dark: #E07510;
  --pocket-black: #333333;
  --pocket-black-mid: #444444;
  --pocket-white: #FAFCFD;
  --pocket-text-2: #4A6070;
  --pocket-text-3: #7A96A8;
  --pocket-radius-btn: 6px;
  --pocket-radius-card: 10px;

  --font-sans: "Merriweather Sans", system-ui, sans-serif;

  --color-forest: var(--pocket-blue);
  --color-forest-deep: var(--pocket-blue-deeper);
  --color-forest-mid: var(--pocket-blue-hover);
  --color-forest-light: var(--pocket-blue-hover);
  --color-sage-white: var(--pocket-pale-blue);
  --color-sage: var(--pocket-pale-blue-dark);
  --color-sage-mid: var(--pocket-border);
  --color-carbon: var(--pocket-black);
  --color-body: var(--pocket-black);
  /* The kit's tertiary #7A96A8 is under 3:1 on the pale-blue page, so muted
     text takes the secondary grey-blue, which passes 4.5:1. */
  --color-muted: var(--pocket-text-2);
  --color-border: var(--pocket-border);
  --color-green-bright: var(--pocket-pale-blue-dark);
  --color-white: var(--pocket-white);

  /* Graphics tokens. Dark grounds are Pocket Black, per the kit; the accent is
     the lighter blue, the one Pocket blue that holds 3:1 on both that and the
     near-white cards. */
  --viz-bg:          var(--pocket-black);
  --viz-surface:     rgba(255, 255, 255, 0.05);
  --viz-grid:        rgba(255, 255, 255, 0.12);
  --viz-accent:      var(--pocket-blue-hover);
  --viz-accent-soft: rgba(0, 136, 204, 0.18);
  --viz-ink:         var(--pocket-black);
  --viz-ink-dim:     var(--pocket-text-2);
  --viz-ink-line:    var(--pocket-border);
  --viz-redact:      var(--pocket-pale-blue-dark);
  --viz-gate-fade:   var(--pocket-white);
}

/* Headings are Pocket Blue and sentence case. Scoped to Pocket's own page:
   the shared pages set white headings on dark heroes, and an unlayered rule
   here would beat their text-white utility. */
.pocket-page h1,
.pocket-page h2,
.pocket-page h3 {
  color: var(--pocket-blue);
  letter-spacing: -0.02em;
}

/* Bordered, not shadowed, and only lightly rounded. */
.brand-pocket .rounded-md { border-radius: var(--pocket-radius-btn); }
.brand-pocket .rounded-lg,
.brand-pocket .rounded-xl { border-radius: var(--pocket-radius-card); }

/* Nav links are small caps with a blue underline on hover. */
.brand-pocket header nav a {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pocket-text-2);
  padding-block: 4px;
  border-bottom: 2px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.brand-pocket header nav a:hover,
.brand-pocket header nav a.text-forest {
  color: var(--pocket-black);
  border-bottom-color: var(--pocket-blue);
}

/* The kit's dark sections are Pocket Black, not deep blue. */
.brand-pocket footer.bg-forest-deep {
  background-color: var(--pocket-black);
  border-top: 1px solid var(--pocket-black-mid);
}

.brand-pocket input:focus,
.brand-pocket textarea:focus {
  outline: 2px solid var(--pocket-blue);
  outline-offset: -1px;
  border-color: var(--pocket-blue);
}

/* Matches the shared header's max-w-7xl px-6, so every section lines up
   with the logo and nav above it. */
.pocket-container {
  width: 100%;
  max-width: 80rem;
  margin-inline: auto;
  padding-inline: 1.5rem;
}

.pocket-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pocket-text-2);
}

.pocket-display {
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--pocket-blue);
}

.pocket-lede {
  font-size: clamp(1rem, 1.4vw, 1.0625rem);
  line-height: 1.75;
  color: var(--pocket-text-2);
}

.pocket-rule {
  width: 40px;
  height: 3px;
  background: var(--pocket-blue);
}

.pocket-card {
  background: var(--pocket-white);
  border: 1px solid var(--pocket-border);
  border-radius: var(--pocket-radius-card);
  padding: clamp(1.5rem, 3vw, 2.5rem);
}

.pocket-input {
  width: 100%;
  background: var(--pocket-white);
  border: 1px solid var(--pocket-border);
  border-radius: var(--pocket-radius-btn);
  padding: 12px 14px;
  color: var(--pocket-black);
}

/* The one orange action on the page. Colour-only interaction: no lift, no
   shadow. */
.pocket-btn-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--pocket-orange);
  color: var(--pocket-black);
  font-size: 15px;
  font-weight: 700;
  padding: 14px 28px;
  border: none;
  border-radius: var(--pocket-radius-btn);
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease;
}
.pocket-btn-cta:hover { background: var(--pocket-orange-dark); }

/* Tiles sit edge to edge; the 2px gap reads as a hairline, not white space. */
.pocket-tiles {
  display: grid;
  gap: 2px;
  background: var(--pocket-border);
  border: 1px solid var(--pocket-border);
}
.pocket-tile {
  background: var(--pocket-white);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  transition: background 0.15s ease;
}
.pocket-tile:hover { background: var(--pocket-pale-blue-dark); }

.pocket-tile-num {
  font-size: 52px;
  font-weight: 800;
  line-height: 1;
  color: var(--pocket-pale-blue-dark);
}
.pocket-tile:hover .pocket-tile-num { color: var(--pocket-blue); }

/* Keep the fixed consent banner off the footer while it shows; the gap goes
   the moment a choice is made. See shared/_consent_banner. */
body:has(#consent-banner:not([hidden])) { padding-bottom: 96px; }
@media (max-width: 639px) {
  body:has(#consent-banner:not([hidden])) { padding-bottom: 200px; }
}
