packages feed

kitchen-sink-0.1.0.0: scaffolding/css/corporate.css

/* Theme and layout for the `corporate` article layout: a landing/marketing
   page rendered as full-width sections (hero, feature grid, pricing table,
   call to action, testimonial strip) instead of a narrow reading column.
   A small, neutral corporate palette on top of the site's own colors.css
   variables, dark-mode aware via the same `prefers-color-scheme` query. */

:root {
  --corp-bg: #f4f6fb;
  --corp-surface: #ffffff;
  --corp-accent: #2454e0;
  --corp-accent-ink: #ffffff;
  --corp-accent-soft: #e6ecfd;
}

@media (prefers-color-scheme: dark) {
  :root {
    --corp-bg: #11151d;
    --corp-surface: #171c26;
    --corp-accent: #7c9bff;
    --corp-accent-ink: #0c1020;
    --corp-accent-soft: rgba(124, 155, 255, 0.14);
  }
}

.main.corporate-layout {
  max-width: none;
  padding: 0;
  margin: 0;
  font-size: 1.05em;
}

.main.corporate-layout .main-article {
  display: flex;
  flex-direction: column;
}

.main.corporate-layout > article {
  display: block;
}

/* every main-content/callout/pricing section is its own full-bleed band,
   with its content kept to a comfortable reading width */
.main.corporate-layout .main-section {
  padding: 4em 1.5em;
  max-width: 1100px;
  margin: 0 auto;
}

.main.corporate-layout table.pricing-table {
  max-width: 900px;
  margin: 1.5em auto;
}

/* a section whose only content is a hero goes edge-to-edge instead of
   sitting inside the 1100px column (falls back gracefully to the nested
   padding on browsers without :has()) */
.main.corporate-layout .main-section:has(> .hero) {
  padding: 0;
  max-width: none;
}

/* ~~ hero: the first section of a corporate page ~~~~~~~~~~~~~~~~~~~~~~~ */

.hero {
  text-align: center;
  padding: 5em 1.5em;
  background: linear-gradient(180deg, var(--corp-surface), var(--corp-bg));
  border-bottom: 1px solid var(--border);
}

.hero h1 {
  margin-top: 0;
  font-size: 2.6em;
}

.hero .hero-subtitle {
  max-width: 60ch;
  margin: 0 auto 1.75em;
  font-size: 1.2em;
  color: var(--muted);
}

.hero .hero-actions {
  display: flex;
  gap: 1em;
  justify-content: center;
  flex-wrap: wrap;
}

/* ~~ buttons, used by the hero and the call-to-action ~~~~~~~~~~~~~~~~~~ */

a.button {
  display: inline-block;
  padding: 0.75em 1.6em;
  border-radius: var(--radius);
  background-color: var(--corp-accent);
  color: var(--corp-accent-ink);
  font-weight: 700;
  text-decoration: none;
}

a.button:hover {
  opacity: 0.9;
}

a.button.secondary {
  background-color: transparent;
  color: var(--corp-accent);
  border: 1px solid var(--corp-accent);
}

/* ~~ feature grid ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2em;
}

.feature-card {
  padding: 1.6em;
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}

.feature-card h3 {
  margin-top: 0;
}

.feature-card p {
  margin-bottom: 0;
}

/* ~~ call to action banner ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

.cta-banner {
  text-align: center;
  padding: 3em 2em;
  background-color: var(--corp-accent-soft);
  border-radius: var(--radius);
}

.cta-banner h2 {
  margin-top: 0;
}

/* ~~ testimonial strip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

.testimonial-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2em;
}

.testimonial {
  padding: 1.6em;
  background-color: var(--surface-alt);
  border-radius: var(--radius);
  font-style: italic;
  color: var(--ink-soft);
}

.testimonial .testimonial-author {
  display: block;
  margin-top: 1em;
  font-style: normal;
  font-weight: 700;
  color: var(--muted);
}

/* ~~ in-page footer columns, from the tramaj `corporate/footer-columns` ~~ */
/* component: link columns inside the page body, distinct from the        */
/* site-wide <footer class="site-footer"> chrome rendered below it.       */

.corp-footer-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
}

.corp-footer-column h2 {
  font-size: 1em;
  margin-bottom: 0.5em;
}

.corp-footer-column ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.corp-footer-column li {
  margin-bottom: 0.4em;
}

/* single column, tighter padding on narrow screens */
@media (max-width: 700px) {
  .hero {
    padding: 3em 1em;
  }

  .hero h1 {
    font-size: 1.9em;
  }

  .main.corporate-layout .main-section {
    padding: 2.5em 1em;
  }
}