/*
 * OmnibusCloud - Site-specific styles
 */

@import url('theme.css');

@import url('/_content/OutWit.Docs.Framework/css/framework.css');

/* Add your custom styles below */

/* Smooth transition from header/navy to page background in dark mode */
[data-theme="dark"] .hero,
[data-theme="dark"] .hero--product {
    background: radial-gradient(900px 500px at 50% 0%,
        rgba(120, 148, 199, 0.12),
        rgba(0, 0, 0, 0) 60%),
     linear-gradient(to bottom,
        rgba(30, 36, 51, 0.75),
        rgba(17, 21, 31, 0.0) 55%);
}

[data-theme="dark"] .header {
    border-bottom: none;
    box-shadow: 0 1px 0 rgba(231, 237, 247, 0.06);
}

/* Inline prose links: the framework paints every <a> with the navy accent, which
   on the light theme is nearly the body-text color — so links in running text
   don't stand out. Use the dedicated --color-link (a brighter royal blue on light;
   the lightened accent on dark, i.e. unchanged there). Headings keep the navy accent. */
.article-content__body a {
    color: var(--color-link);
}

/* Content screenshots (e.g. Trust & Safety client captures) — framed as a window
   card so the light-UI captures sit well on both light and dark themes. */
.article-content__body img {
    display: block;
    max-width: min(100%, 600px);
    height: auto;
    margin: 1.5rem auto;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

/* Hero: cloud-of-devices illustration sized by WIDTH to track the "OmnibusCloud"
   title. The title is clamp(2.5rem, 6vw, 4rem); its rendered width runs ~280px→~445px,
   so the logo width follows the same curve and stays close to the wordmark width. */
.hero__product-logo {
    width: clamp(280px, 42vw, 450px);
    height: auto;
    max-width: 100%;
}

/* Blog list: featured-image thumbnail on excerpt cards (site-level addition) */
.content-card__image-link {
    display: block;
    margin: 0.9rem 0;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: var(--color-bg-secondary);
}

.content-card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.content-card--with-image:hover .content-card__image {
    transform: scale(1.02);
}

/* Contact page invitation block above the form */
.contact-invite {
    margin-bottom: 2rem;
}

.contact-invite h2 {
    margin-top: 1.75rem;
}

.contact-invite h2:last-child {
    margin-bottom: 0;
}

/* Contact form: optional-field marker + per-topic hint under the select */
.form-label__optional {
    font-weight: 400;
    color: var(--color-text-secondary);
}

.contact-form__hint {
    display: block;
    color: var(--color-text-secondary);
    font-size: 0.85rem;
    line-height: 1.4;
}

/* Compact contact form — tighten the framework's default spacing */
.contact-form {
    gap: 0.55rem;
}

.contact-form .form-group {
    gap: 0.2rem;
}

.contact-form .form-input,
.contact-form .form-select,
.contact-form .form-textarea,
.contact-form .form-group input,
.contact-form .form-group select,
.contact-form .form-group textarea {
    padding: 0.45rem 0.75rem;
}

.contact-form .form-textarea,
.contact-form .form-group textarea {
    min-height: 84px;
}

.contact-form__hint {
    margin-top: 0.05rem;
}

/* Header with 7 top-level items: the row (logo + nav + search + theme) is
   ~1180px wide, which no longer fits the framework's 1040px .container — it
   overflowed past the right edge below ~1400px viewport and sat visibly
   off-axis on wide screens; the stock burger breakpoint is 768px. Ranges:
     ≥1160px — header gets its own 1400px axis (symmetric at any width);
     1160–1439px — additionally compacted so the row fits the viewport;
     <1160px — burger menu (the framework's own rules still cover <768px). */
@media (min-width: 1160px) {
    .header__container {
        max-width: 1400px;
    }
}

@media (min-width: 1160px) and (max-width: 1439.98px) {
    .header__container {
        gap: 1rem;
    }

    .header__nav-link {
        padding: 0.5rem 0.5rem;
    }

    .header__search input {
        width: 100px;
    }
}

@media (max-width: 1159.98px) {
    .header__nav,
    .header__search {
        display: none;
    }

    .header__mobile-toggle {
        display: block;
    }
}
