/*
 * Site-wide overrides that must survive `frontend:sync`.
 *
 * public/web-assets/css/styles.css is a verbatim copy of the upstream
 * stylesheet and `frontend:sync` overwrites it, so project-specific rules that
 * used to be edited into that file are kept here instead. Loaded from
 * layouts/webLayout/site.blade.php directly after styles.css and responsive.css.
 */

/*
 * Server-rendered panels.
 *
 * Upstream swaps a single element with JavaScript, so its markup has the panel
 * contents as DIRECT children of the flex column that styles them:
 *
 *   .process-body > figure.process-icon + h3.process-title + .process-copy
 *
 * We render every step and toggle `hidden`, which needs a wrapper per panel.
 * That wrapper became the flex item and the sizing rules written for the real
 * content stopped applying. `display: contents` removes the wrapper from the
 * layout so the children are flex items again, matching upstream exactly.
 *
 * The `[hidden]` rule has to be restated because an author `display`
 * declaration outranks the browser's built-in `[hidden] { display: none }`.
 */
[data-process-panel] {
    display: contents;
}

.service-inner[hidden],
.testimonial[hidden],
[data-build-panel][hidden],
[data-type-panel][hidden],
[data-process-panel][hidden] {
    display: none !important;
}

/*
 * The stacked position:sticky project cards overlap in DOM order but not in the
 * visual stack, so a tiny mouse-drag text-selection here can make the browser
 * extend the selection dozens of screens away (down to the footer) and
 * auto-scroll the whole page to follow it, freezing normal wheel scroll until
 * reload. These cards have no readable running text, so disabling
 * drag-selection removes the trigger without affecting clicks or links.
 */
.projects {
    user-select: none;
}

/* Links inside editor-authored FAQ answers, which upstream never had. */
.faq-a a {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}
