/* ===========================================================================
   "Secure. Native. Yours.", after orionix.framer.website's three-steps
   section (data-framer-name "Section - Progress").

   Measured off the reference at 1440: an 80px top padding, the header left in
   a 520 column with 16 between eyebrow and a 56/60 two-line title, 72 down to
   the grid, then three 400 cells with a 48 gap, each holding a 320 column: a
   96px white disc with a 36px icon, 32 down to the text, and 12 between the
   heading (40/44) and the paragraph (16/24, grey).

   Two departures. The eyebrow is our own small uppercase line, not the
   reference's white pill with a coloured dot, which appears nowhere else
   here. And the icons are the page's own Streamline line glyphs in ink: the
   reference's gradient blobs are its brand, and they are the one part of the
   section Christina did not want.
   =========================================================================== */

.values {
    position: relative;
    z-index: 1;
    padding: 80px var(--gutter) 120px;
    background: var(--paper);
    color: var(--c-text, #212121);
}

/* ---- header --------------------------------------------------------------- */

.values__head {
    display: grid;
    gap: 16px;
    max-width: 560px;
    margin: 0 0 72px;
}

.values__eyebrow {
    margin: 0;
    font-size: clamp(9px, 0.694vw, 12px);
    line-height: 1.55;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #171717;
}

.values__title {
    margin: 0;
    font-weight: 400;
    font-size: clamp(36px, 3.9vw, 56px);
    line-height: 1.07;
    letter-spacing: -0.015em;
    color: var(--c-text, #212121);
    text-wrap: balance;
}

/* ---- the three ------------------------------------------------------------ */

.values__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 48px;
    align-items: start;
}

.values__col {
    display: flex;
    flex-direction: column;
    gap: 32px;
    max-width: 360px;
}

/* The disc is the only thing lifting off the paper in this section, so it is
   held by a hairline and a shadow that is little more than a breath. */
.values__disc {
    display: grid;
    place-items: center;
    width: 96px;
    height: 96px;
    flex: none;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(18, 16, 22, 0.05),
        0 12px 28px -14px rgba(18, 16, 22, 0.22);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.35s ease;
}

.values__disc svg {
    width: 36px;
    height: 36px;
    display: block;
    color: var(--ink);
}

.values__col:hover .values__disc {
    transform: translateY(-3px);
    box-shadow: 0 0 0 1px rgba(18, 16, 22, 0.07),
        0 18px 36px -16px rgba(18, 16, 22, 0.28);
}

.values__text {
    display: grid;
    gap: 12px;
    justify-items: start;
}

.values__text h3 {
    margin: 0;
    font-weight: 400;
    font-size: clamp(26px, 2.8vw, 40px);
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--c-text, #212121);
}

.values__text p {
    margin: 0;
    font-size: 16px;
    line-height: 24px;
    color: #656565;
}

.values__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 16px;
    color: var(--c-text, #212121);
    text-decoration: none;
}

.values__link .arr {
    display: inline-block;
    transition: transform 0.2s ease;
}

.values__link:hover { color: var(--accent); }
.values__link:hover .arr { transform: translateX(3px); }

/* ---- arrival ------------------------------------------------------------- */

.values__col {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.7s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.values.is-revealed .values__col { opacity: 1; transform: none; }
.values.is-revealed .values__col:nth-child(2) { transition-delay: 90ms; }
.values.is-revealed .values__col:nth-child(3) { transition-delay: 180ms; }

@media (prefers-reduced-motion: reduce) {
    .values__col { transform: none; transition-duration: 200ms; transition-delay: 0ms; }
    .values__disc { transition: none; }
}

/* ---- narrow screens ------------------------------------------------------- */

@media (max-width: 900px) {
    .values { padding: 56px 24px 72px; }
    .values__head { margin-bottom: 40px; }
    .values__grid { grid-template-columns: 1fr; gap: 40px; }
    .values__col { max-width: none; gap: 20px; }
    .values__disc { width: 72px; height: 72px; }
    .values__disc svg { width: 28px; height: 28px; }
}
