/* Gastrotruck V68: jobs use the platform's spacing, palette and component shapes.
   Intentionally scoped. Existing application behaviour and Vite assets are retained. */
.gt-redesign .gt-jobs {
    --job-orange: var(--color-olive-600, #c44818);
    --job-green: var(--color-ink-soft, #4a524c);
    --job-line: var(--color-line, #e1e5dd);
    --job-soft: var(--color-sand-50, #f7f7f3);
    color: var(--color-ink, #202622);
    font-size: 1rem;
    line-height: 1.55;
    padding-block: 1.25rem 3rem;
}
.gt-redesign .gt-jobs.gt-container { max-width: 84rem; }
.gt-redesign.gt-working-page .gt-jobs { padding-top: 0; }
.gt-redesign .gt-jobs :is(h1, h2, h3) { font-family: inherit; font-weight: 600; }
.gt-redesign .gt-jobs h1 { font-size: clamp(1.75rem, 2.6vw, 2.5rem); letter-spacing: -.04em; }
.gt-redesign .gt-jobs h2 { font-size: clamp(1.15rem, 1.6vw, 1.5rem); }
.gt-redesign .gt-jobs h3 { font-size: 1rem; }
.gt-redesign .gt-jobs a { color: var(--job-orange); }
.gt-redesign .gt-jobs .gt-job-lead { color: #4a524c; font-size: .9375rem; line-height: 1.65; }
.gt-redesign .gt-jobs .gt-job-topline {
    gap: .75rem 1.25rem;
    margin: 0 0 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--job-line);
    font-size: .8125rem;
}
.gt-redesign .gt-jobs .gt-job-home-link {
    display: inline-flex; align-items: center; gap: .5rem;
    min-height: 2.75rem; color: #202622; font-weight: 600;
}
.gt-jobs .gt-job-nav-icon { width: 1.25rem; height: 1.25rem; color: var(--job-orange); flex: none; }
.gt-redesign .gt-jobs .gt-job-topline .gt-job-actions { gap: .35rem; }
.gt-redesign .gt-jobs .gt-job-topline .gt-job-actions > a:not(.gt-job-button) {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 2.75rem; padding: .55rem .75rem; border-radius: .6rem;
    color: #4a524c; font-size: .8125rem;
}
.gt-redesign .gt-jobs .gt-job-topline .gt-job-actions > a:not(.gt-job-button):hover {
    background: #f0f1ec; color: #a63713; text-decoration: none;
}
.gt-redesign .gt-jobs .gt-job-button {
    min-height: 2.875rem; padding: .75rem 1.15rem; border-radius: .65rem;
    font-size: .875rem; font-weight: 600; line-height: 1.3;
    box-shadow: 0 3px 8px rgb(196 72 24 / 12%);
}
.gt-redesign .gt-jobs .gt-job-button-secondary {
    color: #4a524c !important; border-color: #d8ddd5;
    background: #fff; box-shadow: none;
}
.gt-redesign .gt-jobs .gt-job-button-secondary:hover { background: #fff5ed; border-color: #efa77f; }
.gt-redesign .gt-jobs :is(.gt-job-input, textarea) {
    min-height: 2.875rem; border-radius: .6rem; border-color: #d8ddd5;
    padding: .7rem .85rem; font-size: .9375rem; line-height: 1.4;
}
.gt-redesign .gt-jobs .gt-job-input:focus { border-color: #c44818; outline-color: #ffd0b5; }
.gt-redesign .gt-jobs .gt-job-input[aria-invalid=true] { border-color: #b72828; }
.gt-redesign .gt-jobs .gt-job-field { gap: .4rem; font-size: .8125rem; font-weight: 600; }
.gt-redesign .gt-jobs .gt-job-input::placeholder { color: #687069; opacity: 1; }
.gt-redesign .gt-jobs .gt-job-eyebrow {
    color: #a63713; font-size: .7rem; font-weight: 600; letter-spacing: .14em;
}

/* One coherent introduction, with the search directly underneath the hero. */
.gt-jobs .gt-job-intro {
    background: #fff; border: 1px solid var(--job-line); border-radius: 1rem;
    box-shadow: 0 8px 28px rgb(32 38 34 / 5%);
}
.gt-redesign .gt-jobs .gt-job-hero {
    grid-template-columns: 1.05fr 1fr; gap: 0; margin: 0;
    align-items: stretch; min-height: 18.5rem;
}
.gt-jobs .gt-job-hero-copy { padding: clamp(1.5rem, 3vw, 2.5rem); align-self: center; min-width: 0; }
.gt-redesign .gt-jobs .gt-job-hero h1 {
    max-width: 19ch; font-size: clamp(1.9rem, 3vw, 2.85rem);
    line-height: 1.12; margin-bottom: 1rem;
}
.gt-jobs .gt-job-hero-visual { position: relative; min-width: 0; overflow: hidden; border-radius: 0 1rem 0 0; }
.gt-redesign .gt-jobs .gt-job-hero-photo {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: center; border-radius: 0;
}
.gt-jobs .gt-job-hero-visual::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(90deg, #fff, rgb(255 255 255 / 25%) 12%, transparent 35%);
}
.gt-redesign .gt-jobs .gt-job-tags { gap: .4rem; margin-block: .85rem; }
.gt-redesign .gt-jobs .gt-job-tag {
    padding: .35rem .65rem; border-radius: .45rem; background: #f0f1ec;
    color: #4a524c !important; font-size: .75rem; line-height: 1.4;
}
.gt-redesign .gt-jobs a.gt-job-tag { min-height: 2.25rem; border: 1px solid #e1e5dd; background: #fff; }
.gt-redesign .gt-jobs a.gt-job-tag:hover { background: #fff5ed; border-color: #efa77f; color: #a63713 !important; text-decoration: none; }
.gt-redesign .gt-jobs .gt-job-tag-green { background: #e5eedc; color: #31491e !important; }
.gt-redesign .gt-jobs .gt-job-tag-red { background: #ffebe9; color: #9b2424 !important; }
.gt-redesign .gt-jobs .gt-job-searchbar {
    grid-template-columns: minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,.85fr) auto;
    gap: .75rem; padding: 1.25rem; margin-block: 1.25rem;
    border-radius: 1rem; border-color: var(--job-line);
    box-shadow: 0 2px 5px rgb(32 38 34 / 2%);
}
.gt-redesign .gt-jobs .gt-job-intro > .gt-job-searchbar {
    margin: 0; border: 0; border-top: 1px solid var(--job-line);
    border-radius: 0 0 1rem 1rem; box-shadow: none;
}
.gt-redesign .gt-jobs .gt-job-searchbar .gt-job-input { background: #fcfcfa; font-size: .875rem; }
.gt-redesign .gt-jobs .gt-job-categories { gap: .75rem; margin-block: 1.25rem 2rem; }
.gt-redesign .gt-jobs .gt-job-categories > a {
    min-width: 0; gap: .75rem; padding: .85rem; border-radius: .8rem;
    font-size: .8125rem; color: #4a524c; transition: background-color .18s, border-color .18s;
}
.gt-redesign .gt-jobs .gt-job-categories > a:hover { background: #fff8f3; border-color: #efa77f; text-decoration: none; }
.gt-jobs .gt-job-category-symbol { display: grid; place-items: center; flex: none; width: 2.5rem; height: 2.5rem; border-radius: .6rem; background: #f7f7f3; }
.gt-redesign .gt-jobs .gt-job-category-icon { width: 1.5rem; height: 1.5rem; color: #4a524c; }
.gt-redesign .gt-jobs .gt-job-section-title { margin-block: 1.75rem 1rem; gap: .75rem; }
.gt-redesign .gt-jobs .gt-job-section-title > a { font-size: .875rem; font-weight: 600; }

/* Listing cards, filters and job detail panels follow marketplace cards. */
.gt-redesign .gt-jobs :is(.gt-job-card, .gt-job-panel, .gt-job-empty, .gt-job-filters, .gt-job-table-wrap) {
    border-color: var(--job-line); border-radius: 1rem;
    box-shadow: 0 2px 5px rgb(32 38 34 / 2%);
}
.gt-redesign .gt-jobs .gt-job-card { grid-template-columns: 12rem minmax(0,1fr); transition: border-color .18s, box-shadow .18s; }
.gt-redesign .gt-jobs .gt-job-card:hover { border-color: #e8b79e; box-shadow: 0 8px 24px rgb(32 38 34 / 6%); }
.gt-redesign .gt-jobs .gt-job-card-compact { display: flex; flex-direction: column; }
.gt-redesign .gt-jobs .gt-job-card-body { display: flex; flex-direction: column; padding: 1.15rem; flex: 1; }
.gt-redesign .gt-jobs .gt-job-card-title h3 { font-size: 1rem; line-height: 1.4; }
.gt-redesign .gt-jobs .gt-job-card-title h3 a { color: #202622; }
.gt-redesign .gt-jobs .gt-job-card-bottom { margin-top: auto; padding-top: 1rem; border-top: 1px solid #edf0e9; gap: .75rem; }
.gt-redesign .gt-jobs .gt-job-card-bottom strong { font-size: 1rem; }
.gt-redesign .gt-jobs .gt-job-card-bottom a { font-size: .8125rem; font-weight: 600; }
.gt-redesign .gt-jobs .gt-job-photo { background: #f0f1ec; }
.gt-redesign .gt-jobs .gt-job-card-compact .gt-job-photo { height: 11rem; min-height: 0; flex: none; }
.gt-redesign .gt-jobs .gt-job-photo img { height: 100%; }
.gt-redesign .gt-jobs .gt-job-placeholder { color: #777f70; width: 3.5rem; height: 3.5rem; }
.gt-redesign .gt-jobs .gt-job-heart { width: 2.75rem; height: 2.75rem; flex: none; border: 1px solid var(--job-line); font-size: 1.5rem; }
.gt-redesign .gt-jobs .gt-job-heart:hover { background: #fff5ed; }
.gt-redesign .gt-jobs .gt-job-empty { padding: 2rem 1.5rem; gap: .5rem; }
.gt-redesign .gt-jobs .gt-job-empty-icon { width: 3rem; height: 3rem; color: #a63713; }
.gt-redesign .gt-jobs .gt-job-empty p { color: #687069; font-size: .875rem; }
.gt-redesign .gt-jobs .gt-job-employer-banner { background: #202622; border-radius: 1rem; padding: 1.75rem 2rem; margin-block: 1.5rem; }
.gt-redesign .gt-jobs .gt-job-employer-banner h2 { color: #fff; font-size: 1.4rem; }
.gt-redesign .gt-jobs .gt-job-employer-banner p { color: #d6dcd6; font-size: .875rem; }
.gt-redesign .gt-jobs .gt-job-employer-banner > .gt-job-button { flex: none; }
.gt-redesign .gt-jobs .gt-job-alert { background: #fff; border-color: var(--job-line); border-radius: 1rem; padding: 1.5rem; gap: 2rem; }
.gt-redesign .gt-jobs .gt-job-alert h2 { font-size: 1.25rem; }
.gt-redesign .gt-jobs .gt-job-alert p { color: #687069; }
.gt-redesign .gt-jobs .gt-job-alert form { gap: .85rem; }
.gt-redesign .gt-jobs .gt-job-alert .gt-job-button { align-self: flex-start; }
.gt-redesign .gt-jobs .gt-job-filters { padding: 1.25rem; }
.gt-redesign .gt-jobs .gt-job-filters summary { min-height: 2.75rem; align-items: center; }
.gt-redesign .gt-jobs .gt-job-results > .gt-job-section-title { margin-top: 0; }
.gt-redesign .gt-jobs .gt-job-detail { background: #fff; border: 1px solid var(--job-line); border-radius: 1rem; padding: 1.5rem; min-width: 0; }
.gt-redesign .gt-jobs .gt-job-detail-photo { border-radius: .75rem; }
.gt-redesign .gt-jobs .gt-job-detail-placeholder { background: #f7f7f3; border-radius: .75rem; padding: 1.5rem; font-size: 1rem; }
.gt-redesign .gt-jobs .gt-job-prose { font-size: .9375rem; line-height: 1.75; }
.gt-redesign .gt-jobs .gt-job-panel { padding: 1.5rem; }
.gt-redesign .gt-jobs .gt-job-pay { color: #202622; font-size: 1.5rem; font-weight: 600; }
.gt-redesign .gt-jobs .gt-job-map-link { background: #f7f7f3; border: 1px solid var(--job-line); border-radius: .65rem; }
.gt-redesign .gt-jobs .gt-job-upload { border-radius: .75rem; background: #fcfcfa; }
.gt-redesign .gt-jobs .gt-job-preview-photo { background: #f0f1ec; }
.gt-redesign .gt-jobs .gt-job-option { border-radius: .6rem; background: #fff; }
.gt-redesign .gt-jobs .gt-job-option:has(input:checked) { background: #fff5ed; border-color: #c44818; }
.gt-redesign .gt-jobs .gt-job-message { background: #f7f7f3; border-color: var(--job-line); border-radius: .8rem; }
.gt-redesign .gt-jobs .gt-job-message-employer { background: #fff5ed; border-color: #f1ddcb; }
.gt-redesign .gt-jobs .gt-job-stats .gt-job-panel { padding: 1rem; }
.gt-redesign .gt-jobs .gt-job-stats strong { font-size: 1.65rem; }
.gt-redesign .gt-jobs .gt-job-table th { background: #f7f7f3; }
.gt-redesign .gt-jobs .gt-job-back { font-size: .875rem; margin-bottom: 1.25rem; }
.gt-redesign .gt-jobs :is(.gt-job-check, .gt-job-hint, .gt-job-definition) { overflow-wrap: anywhere; }

@media (max-width: 1100px) {
    .gt-redesign .gt-jobs .gt-job-searchbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .gt-redesign .gt-jobs .gt-job-searchbar > .gt-job-button { grid-column: 1 / -1; }
    .gt-redesign .gt-jobs .gt-job-hero { min-height: 17rem; }
    .gt-redesign .gt-jobs .gt-job-card:not(.gt-job-card-compact) { grid-template-columns: 9rem minmax(0,1fr); }
    .gt-redesign .gt-jobs .gt-job-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .gt-redesign .gt-jobs .gt-job-sort { flex-wrap: wrap; }
}
@media (max-width: 760px) {
    .gt-redesign .gt-jobs { padding-block: 1rem 2rem; }
    .gt-redesign .gt-jobs .gt-job-topline { gap: .5rem; margin-bottom: 1rem; padding-bottom: .75rem; }
    .gt-redesign .gt-jobs .gt-job-topline > .gt-job-actions { width: 100%; gap: .35rem; }
    .gt-redesign .gt-jobs .gt-job-topline .gt-job-actions > a:not(.gt-job-button) { padding-inline: .5rem; font-size: .8125rem; }
    .gt-redesign .gt-jobs .gt-job-topline .gt-job-button { margin-left: auto; padding-inline: .85rem; }
    .gt-redesign .gt-jobs .gt-job-hero { grid-template-columns: 1fr; min-height: 0; gap: 0; }
    .gt-jobs .gt-job-hero-copy { padding: 1.35rem; }
    .gt-redesign .gt-jobs .gt-job-hero h1 { max-width: 21ch; font-size: clamp(1.8rem, 6.5vw, 2.4rem); }
    .gt-jobs .gt-job-hero-visual { height: 10rem; border-radius: 0; }
    .gt-jobs .gt-job-hero-visual::after { background: linear-gradient(180deg, #fff, transparent 35%); }
    .gt-redesign .gt-jobs .gt-job-searchbar { padding: 1rem; gap: .85rem .65rem; }
    .gt-redesign .gt-jobs .gt-job-searchbar .gt-job-input,
    .gt-redesign .gt-jobs :is(input.gt-job-input, select.gt-job-input, textarea.gt-job-input) { font-size: 16px; }
    .gt-redesign .gt-jobs .gt-job-categories { margin-block: 1rem 1.5rem; gap: .6rem; }
    .gt-redesign .gt-jobs .gt-job-categories > a { padding: .75rem; gap: .6rem; }
    .gt-redesign .gt-jobs .gt-job-category-symbol { width: 2rem; height: 2rem; }
    .gt-redesign .gt-jobs .gt-job-categories > a > span:last-child { display: none; }
    .gt-redesign .gt-jobs .gt-job-grid { grid-template-columns: 1fr; }
    .gt-redesign .gt-jobs .gt-job-card:not(.gt-job-card-compact) { grid-template-columns: 1fr; }
    .gt-redesign .gt-jobs .gt-job-photo,
    .gt-redesign .gt-jobs .gt-job-card-compact .gt-job-photo { height: 11rem; }
    .gt-redesign .gt-jobs :is(.gt-job-detail, .gt-job-panel, .gt-job-alert) { padding: 1.15rem; }
    .gt-redesign .gt-jobs .gt-job-employer-banner { padding: 1.4rem; gap: 1rem; }
    .gt-redesign .gt-jobs .gt-job-alert { grid-template-columns: 1fr; gap: 1rem; }
    .gt-redesign .gt-jobs .gt-job-detail-placeholder { padding: 1rem; gap: 1rem; }
    .gt-redesign .gt-jobs .gt-job-mobile-apply { border-radius: .8rem; }
}
@media (max-width: 420px) {
    .gt-redesign .gt-jobs .gt-job-categories > a { flex-direction: column; align-items: flex-start; font-size: .8125rem; }
    .gt-redesign .gt-jobs .gt-job-topline .gt-job-actions > .gt-job-button { width: 100%; margin-left: 0; }
    .gt-redesign .gt-jobs .gt-job-topline .gt-job-actions > a:not(.gt-job-button) { flex: 1 1 auto; }
    .gt-redesign .gt-jobs .gt-job-sort { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
    .gt-redesign .gt-jobs * { transition: none !important; scroll-behavior: auto !important; }
}
