:root {
  color-scheme: light;
  --bg: #f5f7fb;
  --surface: #ffffff;
  --surface-muted: #eef3fb;
  --surface-strong: #e4ebf7;
  --text: #0c1729;
  --text-soft: #59677b;
  --text-faint: #8793a5;
  --line: #dce4ef;
  --accent: #2167f3;
  --accent-deep: #154fc8;
  --accent-soft: #eaf1ff;
  --accent-ink: #0d3a9b;
  --navy: #071d43;
  --navy-2: #0d2f6d;
  --success: #14785d;
  --success-soft: #e4f6ef;
  --warning: #9a5a08;
  --warning-soft: #fff3dd;
  --shadow: 0 20px 55px rgba(30, 76, 144, .12);
  --shadow-soft: 0 8px 24px rgba(30, 76, 144, .08);
  --radius: 16px;
  --container: 1180px;
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  font-synthesis: none;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0b1220;
  --surface: #121c2d;
  --surface-muted: #17243a;
  --surface-strong: #1f2d44;
  --text: #edf3ff;
  --text-soft: #b0bdd0;
  --text-faint: #8491a6;
  --line: #28364b;
  --accent: #5b8cff;
  --accent-deep: #3f73eb;
  --accent-soft: #192f59;
  --accent-ink: #c8d9ff;
  --navy: #0b1933;
  --navy-2: #153977;
  --success: #62d0ac;
  --success-soft: #123d35;
  --warning: #f1b965;
  --warning-soft: #4b361a;
  --shadow: 0 24px 64px rgba(0, 0, 0, .34);
  --shadow-soft: 0 10px 28px rgba(0, 0, 0, .24);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { min-width: 320px; min-height: 100dvh; margin: 0; background: var(--bg); color: var(--text); transition: background .2s ease, color .2s ease; }
body.modal-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
p, h1, h2, h3, dl, dd, dt { margin: 0; }
input, select, textarea { color: var(--text); background: var(--surface); }
button { cursor: pointer; }

.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 10px 14px; border-radius: 8px; color: white; background: var(--accent-deep); transform: translateY(-140%); }
.skip-link:focus { transform: translateY(0); }
.sr-only, .visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.announcement { min-height: 36px; padding: 8px 20px; display: flex; align-items: center; justify-content: center; gap: 22px; color: #eaf2ff; background: #1558df; font-size: 13px; }
.announcement a { color: white; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.site-header { position: sticky; z-index: 30; top: 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 85%, transparent); background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.header-inner { position: relative; width: min(calc(100% - 40px), var(--container)); min-height: 72px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 11px; width: max-content; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; color: white; background: linear-gradient(135deg, var(--accent), var(--accent-deep)); box-shadow: inset 0 1px 0 rgba(255,255,255,.35); font-weight: 900; letter-spacing: -.06em; }
.brand-copy { display: grid; gap: 1px; }
.brand-copy strong { font-size: 18px; letter-spacing: -.04em; }
.brand-copy small { color: var(--text-soft); font-size: 10px; letter-spacing: .06em; }
.primary-nav { display: flex; align-items: center; gap: 4px; }
.primary-nav a { padding: 10px 14px; border-radius: 10px; color: var(--text-soft); font-size: 15px; white-space: nowrap; transition: background .2s ease, color .2s ease, transform .2s ease; }
.primary-nav a:hover { color: var(--text); background: var(--surface-muted); }
.primary-nav a.active { color: var(--accent-ink); background: var(--accent-soft); font-weight: 700; }
.primary-nav a:active, .button:active, button:active { transform: translateY(1px); }
.header-actions { justify-self: end; display: flex; align-items: center; }
.account-menu { position: relative; }
.account-entry, .mobile-menu-button { min-height: 38px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--text-soft); background: var(--surface); font-size: 13px; }
.account-entry { max-width: 170px; display: inline-flex; align-items: center; gap: 8px; overflow: hidden; color: var(--accent-ink); border-color: color-mix(in srgb, var(--accent) 32%, var(--line)); background: var(--accent-soft); white-space: nowrap; }
.account-entry > span:first-child { overflow: hidden; text-overflow: ellipsis; }
.account-entry.verified-enterprise { max-width: 250px; color: var(--success); border-color: color-mix(in srgb, var(--success) 42%, var(--line)); background: var(--success-soft); box-shadow: inset 0 1px 0 color-mix(in srgb, var(--surface) 65%, transparent); }
.account-verified-badge { flex: 0 0 auto; padding-left: 8px; border-left: 1px solid color-mix(in srgb, var(--success) 34%, var(--line)); font-size: 10px; font-weight: 800; }
.account-chevron { flex: 0 0 auto; font-size: 15px; line-height: 1; transition: transform .18s ease; }
.account-entry:not(.authenticated) .account-chevron { display: none; }
.account-menu.open .account-chevron { transform: rotate(180deg); }
.account-dropdown { position: absolute; top: calc(100% + 10px); right: 0; width: 220px; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow); }
.account-dropdown::before { content: ""; position: absolute; top: -11px; right: 0; width: 100%; height: 11px; }
.account-menu-identity { margin: 2px 4px 7px; padding: 10px 10px 12px; display: grid; gap: 3px; border-bottom: 1px solid var(--line); }
.account-menu-identity strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.account-menu-identity span { color: var(--text-faint); font-size: 11px; }
.account-dropdown > a, .account-dropdown > button { width: 100%; min-height: 42px; padding: 10px; display: flex; align-items: center; border: 0; border-radius: 9px; color: var(--text-soft); background: transparent; font-size: 13px; text-align: left; }
.account-dropdown > a:hover, .account-dropdown > button:hover, .account-dropdown > a:focus-visible, .account-dropdown > button:focus-visible { color: var(--text); background: var(--surface-muted); outline: none; }
.account-dropdown > a:active, .account-dropdown > button:active { transform: translateY(1px); }
.mobile-auth-entry { display: none; }
.mobile-account-option { display: none; }
.mobile-menu-button { display: none; align-items: center; justify-content: center; justify-self: end; font-weight: 700; }

.section-shell { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.button { min-height: 46px; padding: 12px 22px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 12px; font-weight: 700; white-space: nowrap; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.primary-button { color: #fff; background: var(--accent); box-shadow: 0 10px 22px rgba(33, 103, 243, .23); }
.primary-button:hover { background: var(--accent-deep); box-shadow: 0 14px 30px rgba(33, 103, 243, .29); }
.secondary-button { color: var(--accent-ink); border-color: var(--line); background: var(--surface); }
.secondary-button:hover { border-color: var(--accent); background: var(--accent-soft); }
.light-button { color: var(--accent-deep); background: #f8fbff; }
.light-button:hover { background: #fff; box-shadow: 0 12px 25px rgba(0,0,0,.15); }

.hero { min-height: min(710px, calc(100dvh - 108px)); padding-block: 56px 48px; display: grid; grid-template-columns: minmax(0, .88fr) minmax(520px, 1.12fr); align-items: center; gap: 34px; }
.hero-copy { position: relative; z-index: 2; }
.hero-kicker, .page-label { width: max-content; margin-bottom: 22px; padding: 8px 12px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line)); border-radius: 999px; color: var(--accent-ink); background: var(--accent-soft); font-size: 13px; font-weight: 700; }
.hero h1 { max-width: 680px; font-size: clamp(48px, 5.1vw, 76px); line-height: 1.08; letter-spacing: -.07em; font-weight: 420; }
.hero h1 strong { color: var(--accent); font-weight: 850; }
.hero-lead { max-width: 540px; margin-top: 22px; color: var(--text-soft); font-size: 18px; line-height: 1.8; }
.hero-actions { margin-top: 30px; display: flex; gap: 12px; }
.hero-proof { margin-top: 38px; display: flex; gap: 0; }
.hero-proof div { min-width: 116px; padding-right: 22px; margin-right: 22px; border-right: 1px solid var(--line); }
.hero-proof div:last-child { border: 0; }
.hero-proof dt { font-size: 22px; font-weight: 750; font-variant-numeric: tabular-nums; }
.hero-proof dd { margin-top: 4px; color: var(--text-soft); font-size: 12px; }
.hero-visual { position: relative; min-height: 520px; border-radius: 28px; overflow: hidden; box-shadow: var(--shadow); background: var(--surface-muted); }
.hero-visual::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.65); border-radius: inherit; pointer-events: none; }
.hero-visual img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; object-position: 55% center; }
.matching-card { position: absolute; right: 24px; bottom: 24px; width: min(320px, calc(100% - 48px)); padding: 18px; border: 1px solid rgba(255,255,255,.7); border-radius: 14px; background: rgba(248,251,255,.9); color: #0c1729; box-shadow: 0 18px 40px rgba(13, 59, 137, .2); backdrop-filter: blur(18px); }
.matching-card strong { display: block; margin-top: 9px; font-size: 15px; }
.matching-card p { margin-top: 10px; color: #5c6b81; font-size: 12px; }
.matching-card p b { color: #1558df; }
.match-status { color: #1558df; font-size: 11px; font-weight: 750; }
.match-progress { height: 5px; margin-top: 14px; overflow: hidden; border-radius: 5px; background: #dde7f7; }
.match-progress i { display: block; width: 78%; height: 100%; background: #2167f3; transform-origin: left; animation: matching 2.8s ease-in-out infinite alternate; }

.trust-strip { min-height: 70px; padding: 0 max(20px, calc((100% - var(--container)) / 2)); display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; gap: 1px; border-block: 1px solid var(--line); background: var(--surface); }
.trust-strip span { padding: 18px 24px; text-align: center; color: var(--text-soft); border-right: 1px solid var(--line); font-size: 13px; }
.trust-strip span:last-child { border: 0; }

.dashboard-section, .workflow-section, .trend-section, .service-process { padding-block: 110px; }
.section-intro { max-width: 700px; margin-bottom: 46px; }
.section-intro h2 { font-size: clamp(32px, 4vw, 52px); line-height: 1.18; letter-spacing: -.05em; }
.section-intro p { max-width: 620px; margin-top: 14px; color: var(--text-soft); font-size: 16px; line-height: 1.75; }
.section-intro.on-dark h2 { color: #f2f6ff; }
.section-intro.on-dark p { color: #b9c8e5; }

.dashboard-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 18px; }
.traffic-panel, .visit-panel { min-height: 330px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.panel-head { display: flex; justify-content: space-between; gap: 18px; }
.panel-head div { display: grid; gap: 7px; }
.panel-head span, .visit-number span { color: var(--text-soft); font-size: 13px; }
.panel-head strong { font-size: 20px; }
.panel-head > b { height: max-content; padding: 6px 9px; border-radius: 8px; color: var(--success); background: var(--success-soft); font-size: 12px; }
.line-chart { height: 195px; margin-top: 24px; }
.line-chart svg { width: 100%; height: 100%; overflow: visible; }
.line-chart .line { fill: none; stroke: var(--accent); stroke-width: 4; stroke-linecap: round; }
.line-chart .area { fill: url(#lineArea); }
.chart-labels { display: grid; grid-template-columns: repeat(7, 1fr); color: var(--text-faint); font-size: 11px; }
.chart-labels span { text-align: center; }
.visit-panel { display: grid; grid-template-columns: 1fr 142px; align-items: center; gap: 22px; }
.visit-number { display: grid; gap: 5px; }
.visit-number strong { font-size: 48px; letter-spacing: -.06em; }
.visit-number small, .visit-ring small { color: var(--text-soft); }
.visit-ring { width: 140px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; align-content: center; gap: 4px; background: conic-gradient(var(--accent) calc(var(--value) * 1%), var(--surface-strong) 0); position: relative; }
.visit-ring::after { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: var(--surface); }
.visit-ring span, .visit-ring small { position: relative; z-index: 1; }
.visit-ring span { font-size: 26px; font-weight: 800; }
.visit-ring small { font-size: 10px; }
.visit-note { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid var(--line); display: grid; gap: 4px; }
.visit-note strong { font-size: 13px; }
.visit-note span { color: var(--text-soft); font-size: 12px; }

.workflow-section { padding-top: 40px; }
.workflow-track { display: grid; grid-template-columns: 1.2fr 1fr 1fr; border-top: 1px solid var(--line); }
.workflow-track article { min-height: 245px; padding: 28px 32px 24px 0; border-right: 1px solid var(--line); }
.workflow-track article:not(:first-child) { padding-left: 32px; }
.workflow-track article:last-child { border: 0; }
.workflow-track span { color: var(--accent); font-size: 13px; font-weight: 750; }
.workflow-track h3 { margin-top: 44px; font-size: 23px; letter-spacing: -.04em; }
.workflow-track p { max-width: 300px; margin-top: 12px; color: var(--text-soft); line-height: 1.7; font-size: 14px; }

.cases-section { padding-block: 100px; overflow: hidden; background: var(--navy); }
.case-stage { transition: opacity .18s ease, transform .18s ease; }
.case-stage.switching { opacity: 0; transform: translateX(10px); }
.case-card { min-height: 470px; display: grid; grid-template-columns: 1.3fr .7fr; gap: 0; border-radius: 20px; overflow: hidden; background: #102b61; }
.case-image { min-height: 470px; overflow: hidden; }
.case-image img { width: 100%; height: 100%; object-fit: cover; }
.case-copy { padding: 48px; display: flex; flex-direction: column; align-items: flex-start; color: #f6f8ff; }
.case-copy > span { color: #9bbcff; font-size: 13px; font-weight: 700; }
.case-copy h3 { margin-top: 48px; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.2; letter-spacing: -.05em; }
.case-copy p { margin-top: 24px; color: #c9d9f8; font-size: 18px; }
.case-copy small { margin-top: 12px; color: #89a2cd; }
.case-copy a { margin-top: auto; padding-bottom: 6px; border-bottom: 1px solid #7ea5f7; color: #dce8ff; font-size: 14px; }
.case-controls { margin-top: 20px; display: flex; justify-content: flex-end; align-items: center; gap: 14px; color: #9bb0d4; }
.case-controls button { padding: 9px 12px; border: 1px solid #36598f; border-radius: 10px; color: #dce8ff; background: transparent; }
.case-controls span { font-variant-numeric: tabular-nums; font-size: 13px; }

.trend-board { padding: 34px; border-radius: 22px; color: #edf4ff; background: linear-gradient(125deg, #071d43, #0e3478); box-shadow: 0 24px 55px rgba(9, 36, 87, .25); }
.trend-board-head { display: flex; justify-content: space-between; align-items: center; }
.trend-board-head strong { font-size: 20px; }
.trend-board-head span { color: #9bb0d4; font-size: 12px; }
.trend-metrics { margin-top: 30px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.trend-metrics div { min-height: 144px; padding: 22px; border: 1px solid rgba(255,255,255,.11); border-radius: 14px; background: rgba(255,255,255,.06); }
.trend-metrics dt { font-size: 30px; letter-spacing: -.05em; }
.trend-metrics dd { margin-top: 14px; color: #d8e5fb; font-size: 13px; }
.trend-metrics small { display: block; margin-top: 7px; color: #8da6d0; }
.trend-demand { margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); display: grid; grid-template-columns: 170px 1fr 1fr 1fr; gap: 22px; align-items: center; }
.trend-demand > span { color: #b9cbea; }
.trend-demand div { position: relative; min-height: 80px; display: grid; align-content: end; grid-template-columns: 1fr auto; gap: 6px; }
.trend-demand i { position: absolute; top: 0; bottom: 26px; left: 0; width: var(--bar); border-radius: 8px 8px 3px 3px; background: rgba(109, 154, 255, .28); }
.trend-demand b, .trend-demand em { position: relative; z-index: 1; font-size: 12px; font-style: normal; }

.closing-cta { margin-bottom: 110px; padding: 44px 48px; border-radius: 22px; color: white; background: var(--accent); display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.closing-cta h2 { max-width: 730px; font-size: clamp(28px, 3.5vw, 42px); letter-spacing: -.05em; }
.closing-cta p { margin-top: 10px; color: #dce7ff; }

.page-hero { padding-block: 90px 54px; }
.compact-hero { min-height: 330px; }
.compact-hero h1, .service-hero h1 { max-width: 880px; font-size: clamp(40px, 5.6vw, 68px); line-height: 1.12; letter-spacing: -.06em; }
.compact-hero > p:last-child, .service-hero > div > p { max-width: 670px; margin-top: 18px; color: var(--text-soft); font-size: 17px; line-height: 1.7; }

.needs-layout { padding-bottom: 90px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 24px; align-items: start; }
.demand-form, .matches-panel { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.form-heading, .matches-heading { margin-bottom: 26px; display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.form-heading h2, .matches-heading h2 { font-size: 25px; }
.form-heading span, .matches-heading b { padding: 6px 9px; border-radius: 8px; color: var(--accent-ink); background: var(--accent-soft); font-size: 11px; }
.field { display: grid; gap: 8px; margin-bottom: 20px; }
.field label, .search-field { color: var(--text-soft); font-size: 13px; font-weight: 650; }
.field input, .field select, .field textarea, .search-field input { width: 100%; border: 1px solid var(--line); border-radius: 11px; outline: 0; transition: border .18s ease, box-shadow .18s ease; }
.field input, .field select { height: 48px; padding: 0 14px; }
.field textarea { min-height: 130px; padding: 13px 14px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .search-field input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: #d44747; }
.field-error { min-height: 16px; color: #c43737; font-size: 12px; }
.field-hint { color: var(--text-faint); font-size: 11px; }
.two-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.consent { display: flex; align-items: center; gap: 8px; color: var(--text-soft); font-size: 13px; }
.consent input { width: 16px; height: 16px; accent-color: var(--accent); }
.consent-error { display: block; margin: 6px 0; }
.submit-demand { margin-top: 10px; }
.matches-panel { position: sticky; top: 96px; }
.matches-heading span { color: var(--accent); font-size: 12px; font-weight: 750; }
.matches-heading h2 { margin-top: 4px; }
.matches-panel > p { margin: -12px 0 20px; color: var(--text-soft); font-size: 13px; }
.compact-provider-list { display: grid; gap: 12px; }
.provider-card { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.provider-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); box-shadow: var(--shadow-soft); }
.provider-top { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }
.provider-logo { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; color: var(--accent-ink); background: var(--accent-soft); font-weight: 850; letter-spacing: -.04em; }
.provider-top h3 { font-size: 17px; }
.provider-top p { margin-top: 4px; color: var(--text-soft); font-size: 11px; }
.rating { color: var(--warning); font-size: 13px; }
.match-score { color: var(--accent); font-size: 16px; }
.compact-provider { padding: 16px; }
.compact-provider > p { margin: 12px 0; color: var(--text-soft); font-size: 12px; }
.compact-provider button, .provider-card > button { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--accent-ink); background: var(--surface-muted); font-weight: 700; }

.needs-list-section { padding-bottom: 110px; }
.list-heading { margin-bottom: 24px; display: flex; justify-content: space-between; align-items: end; gap: 32px; }
.list-heading h2 { font-size: 32px; }
.list-heading p { margin-top: 8px; color: var(--text-soft); font-size: 13px; }
.need-directory-tools { display: flex; align-items: end; gap: 12px; }
.need-type-tabs { display: flex; gap: 5px; padding: 4px; border-radius: 11px; background: var(--surface-muted); }
.need-type-tabs button { min-height: 34px; padding: 7px 10px; border: 0; border-radius: 8px; color: var(--text-soft); background: transparent; font-size: 12px; white-space: nowrap; }
.need-type-tabs button.active { color: var(--accent-ink); background: var(--surface); box-shadow: var(--shadow-soft); font-weight: 700; }
.search-field { min-width: 260px; display: grid; gap: 7px; }
.search-field input { height: 42px; padding: 0 12px; }
.need-list { border-top: 1px solid var(--line); }
.need-row { min-height: 142px; padding-block: 24px; display: grid; grid-template-columns: 1.2fr .8fr auto; align-items: center; gap: 30px; border-bottom: 1px solid var(--line); }
.need-row h3 { margin-top: 10px; font-size: 19px; }
.need-row p { margin-top: 7px; color: var(--text-soft); font-size: 13px; }
.need-row .need-summary { max-width: 620px; display: -webkit-box; overflow: hidden; color: var(--text-faint); line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.status-tag { color: var(--success); font-size: 11px; font-weight: 750; }
.need-row dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.need-row dt { color: var(--text-faint); font-size: 10px; }
.need-row dd { margin-top: 5px; font-size: 13px; font-weight: 700; }
.need-row > button { padding: 10px 13px; border: 1px solid var(--line); border-radius: 10px; color: var(--accent-ink); background: var(--surface); }
.empty-state { min-height: 220px; grid-column: 1 / -1; display: grid; place-items: center; align-content: center; text-align: center; color: var(--text-soft); }
.empty-state strong { color: var(--text); }
.empty-state p { margin-top: 8px; }

.provider-tools { padding-bottom: 28px; display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.category-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.category-tabs button { padding: 9px 13px; border: 1px solid var(--line); border-radius: 10px; color: var(--text-soft); background: var(--surface); }
.category-tabs button[aria-selected="true"] { color: white; border-color: var(--accent); background: var(--accent); }
.provider-directory { padding-bottom: 70px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.provider-intro { min-height: 48px; margin-top: 22px; color: var(--text-soft); line-height: 1.7; font-size: 14px; }
.provider-tags { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 7px; }
.provider-tags span { padding: 6px 9px; border-radius: 8px; color: var(--accent-ink); background: var(--accent-soft); font-size: 11px; }
.provider-card dl { margin-block: 20px; padding-block: 18px; display: grid; grid-template-columns: 1fr 1fr; border-block: 1px solid var(--line); }
.provider-card dl div + div { padding-left: 20px; border-left: 1px solid var(--line); }
.provider-card dt { font-size: 20px; font-weight: 800; }
.provider-card dd { margin-top: 4px; color: var(--text-soft); font-size: 11px; }
.provider-join { margin-bottom: 110px; padding: 46px; border-radius: 22px; background: var(--surface-strong); display: flex; justify-content: space-between; align-items: end; gap: 22px; }
.provider-join span { color: var(--accent); font-size: 12px; font-weight: 750; }
.provider-join h2 { max-width: 720px; margin-top: 10px; font-size: 36px; letter-spacing: -.05em; }
.provider-join p { margin-top: 10px; color: var(--text-soft); }

.service-hero { min-height: 580px; padding-block: 100px; display: grid; grid-template-columns: 1.3fr .7fr; gap: 70px; align-items: center; }
.service-hero .button { margin-top: 28px; }
.service-sla { padding: 30px; border-radius: 18px; color: white; background: var(--navy); box-shadow: var(--shadow); }
.service-sla span { color: #91b2ef; font-size: 12px; }
.service-sla strong { display: block; margin-top: 40px; font-size: 28px; }
.service-sla p { margin-top: 12px; color: #b8c9e7; line-height: 1.7; font-size: 13px; }
.service-catalog { border-top: 1px solid var(--line); }
.service-item { min-height: 164px; display: grid; grid-template-columns: 70px 1fr .55fr auto; align-items: center; gap: 24px; border-bottom: 1px solid var(--line); }
.service-item > span { color: var(--accent); font-size: 12px; font-weight: 750; }
.service-item h2 { font-size: 24px; }
.service-item p { max-width: 520px; margin-top: 8px; color: var(--text-soft); line-height: 1.6; font-size: 13px; }
.service-item > strong { color: var(--text-soft); font-size: 13px; font-weight: 600; }
.service-item button { padding: 10px 13px; border: 1px solid var(--line); border-radius: 10px; color: var(--accent-ink); background: var(--surface); }
.process-line { display: grid; grid-template-columns: repeat(4, 1fr); }
.process-line div { min-height: 150px; padding: 28px; border-left: 2px solid var(--accent); background: linear-gradient(90deg, var(--accent-soft), transparent); }
.process-line div + div { border-left-color: var(--line); }
.process-line strong { display: block; }
.process-line span { display: block; margin-top: 12px; color: var(--text-soft); font-size: 13px; line-height: 1.6; }

.auth-gate { min-height: calc(100dvh - 108px); padding-block: 90px; display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 70px; }
.auth-gate-copy > span, .auth-intro > span, .account-heading > span { color: var(--accent); font-size: 13px; font-weight: 750; }
.auth-gate-copy h1, .auth-intro h1, .account-heading h1 { max-width: 720px; margin-top: 16px; font-size: clamp(40px, 5vw, 64px); line-height: 1.1; letter-spacing: -.055em; }
.auth-gate-copy > p, .auth-intro > p, .account-heading > p { max-width: 620px; margin-top: 20px; color: var(--text-soft); font-size: 16px; line-height: 1.75; }
.auth-gate-copy > div { margin-top: 30px; display: flex; gap: 12px; }
.auth-policy { padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.auth-policy > strong { font-size: 20px; }
.auth-policy dl { margin-top: 28px; display: grid; gap: 18px; }
.auth-policy dl div { padding-top: 18px; border-top: 1px solid var(--line); }
.auth-policy dt { color: var(--accent-ink); font-weight: 750; }
.auth-policy dd { margin-top: 7px; color: var(--text-soft); font-size: 13px; line-height: 1.6; }

.member-access { margin-top: -10px; margin-bottom: 44px; padding: 28px 32px; display: flex; align-items: center; justify-content: space-between; gap: 28px; border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line)); border-radius: var(--radius); background: var(--accent-soft); }
.member-access span { color: var(--accent-ink); font-size: 12px; font-weight: 750; }
.member-access h2 { margin-top: 8px; font-size: 24px; }
.member-access p { max-width: 720px; margin-top: 8px; color: var(--text-soft); line-height: 1.6; font-size: 13px; }
.list-loading { padding: 46px 24px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--text-soft); background: var(--surface); text-align: center; }
.empty-state button { margin-top: 18px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 10px; color: var(--accent-ink); background: var(--accent-soft); }

.auth-page { min-height: calc(100dvh - 108px); padding-block: 76px; display: grid; grid-template-columns: 1fr 480px; align-items: center; gap: 80px; }
.auth-intro dl { margin-top: 34px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.auth-intro dl div { padding: 20px; border-left: 2px solid var(--accent); background: var(--surface-muted); }
.auth-intro dt { font-weight: 750; }
.auth-intro dd { margin-top: 7px; color: var(--text-soft); font-size: 12px; }
.auth-card { padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow); }
.auth-tabs { margin-bottom: 26px; display: grid; grid-template-columns: repeat(3, 1fr); padding: 4px; border-radius: 12px; background: var(--surface-muted); }
.auth-tabs button { min-height: 42px; border: 0; border-radius: 9px; color: var(--text-soft); background: transparent; font-weight: 700; }
.auth-tabs button[aria-selected="true"] { color: var(--accent-ink); background: var(--surface); box-shadow: var(--shadow-soft); }
.auth-form { display: grid; gap: 2px; }
.auth-form .button { width: 100%; margin-top: 16px; }
.field-help { margin-top: 7px; color: var(--text-faint); font-size: 11px; }
.form-error { min-height: 20px; margin-top: 9px; color: #b42318; font-size: 12px; line-height: 1.5; }
:root[data-theme="dark"] .form-error { color: #ff9b91; }
.auth-form input:disabled, .auth-form button:disabled { cursor: wait; opacity: .68; }
.verification-row { display: grid; grid-template-columns: minmax(0, 1fr) 120px; gap: 8px; }
.verification-row button { border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--line)); border-radius: 10px; color: var(--accent-ink); background: var(--accent-soft); font-size: 12px; font-weight: 750; }
.auth-registration-note { margin: 8px 0 10px; padding: 13px 14px; display: grid; gap: 4px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line)); border-radius: 12px; background: var(--accent-soft); }
.auth-registration-note strong { color: var(--accent-ink); font-size: 12px; }
.auth-registration-note span { color: var(--text-soft); font-size: 11px; line-height: 1.55; }
.auth-text-action { width: max-content; margin: 2px 0 8px auto; border: 0; color: var(--accent-ink); background: transparent; font-size: 12px; }

.account-page { min-height: calc(100dvh - 108px); padding-block: 76px 100px; }
.account-heading { max-width: 800px; }
.verified-enterprise-heading > span, .verified-identity-text { color: var(--success) !important; }
.account-grid { margin-top: 46px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 18px; }
.profile-panel, .certification-panel { min-height: 330px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.profile-panel { display: flex; flex-direction: column; gap: 18px; }
.profile-avatar { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 15px; color: white; background: var(--accent); font-size: 22px; font-weight: 850; }
.profile-panel > div:not(.profile-avatar) { display: grid; gap: 5px; }
.profile-panel span, .certification-head span { color: var(--text-soft); font-size: 12px; }
.profile-panel .button { margin-top: auto; width: 100%; }
.certification-panel { background: linear-gradient(145deg, var(--surface), var(--accent-soft)); }
.certification-head { display: flex; align-items: center; justify-content: space-between; }
.certification-head b { padding: 6px 9px; border-radius: 8px; color: var(--warning); background: var(--warning-soft); font-size: 11px; }
.certification-panel.verified { border-color: color-mix(in srgb, var(--success) 32%, var(--line)); background: linear-gradient(145deg, var(--surface), var(--success-soft)); }
.certification-panel.verified .certification-head b { color: var(--success); background: var(--success-soft); }
.certification-panel h2 { margin-top: 50px; font-size: 30px; letter-spacing: -.04em; }
.certification-panel p { max-width: 580px; margin-top: 14px; color: var(--text-soft); line-height: 1.7; }
.certification-panel .button { margin-top: 28px; }
.account-actions { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.account-actions a { padding: 24px 28px; display: grid; gap: 7px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.account-actions a:hover { border-color: var(--accent); }
.account-actions span { color: var(--text-soft); font-size: 12px; }

.certification-page { min-height: calc(100dvh - 108px); padding-block: 68px 100px; }
.certification-heading { max-width: 780px; }
.certification-heading > span, .form-section-heading span { color: var(--accent); font-size: 13px; font-weight: 750; }
.certification-heading h1 { margin-top: 14px; font-size: clamp(40px, 5vw, 60px); line-height: 1.08; letter-spacing: -.055em; }
.certification-heading > p { max-width: 680px; margin-top: 18px; color: var(--text-soft); font-size: 15px; line-height: 1.75; }
.certification-layout { margin-top: 46px; display: grid; grid-template-columns: 320px minmax(0, 1fr); align-items: start; gap: 22px; }
.certification-guide { position: sticky; top: 120px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.certification-guide > strong { font-size: 20px; }
.certification-guide dl { margin-top: 24px; display: grid; gap: 20px; }
.certification-guide dl div { padding-top: 18px; border-top: 1px solid var(--line); }
.certification-guide dt { color: var(--accent-ink); font-size: 13px; font-weight: 750; }
.certification-guide dd { margin-top: 7px; color: var(--text-soft); font-size: 12px; line-height: 1.65; }
.certification-guide > a { margin-top: 26px; display: inline-flex; color: var(--accent-ink); font-size: 13px; font-weight: 700; }
.certification-workspace { min-width: 0; }
.certification-form, .certification-status { padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.form-section-heading { margin-bottom: 26px; }
.form-section-heading h2 { margin-top: 6px; font-size: 26px; letter-spacing: -.035em; }
.contact-heading { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--line); }
.file-field input[type="file"] { height: auto; min-height: 54px; padding: 10px; color: var(--text-soft); background: var(--surface-muted); }
.file-field input[type="file"]::file-selector-button { margin-right: 12px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--accent-ink); background: var(--surface); cursor: pointer; }
.certification-declaration { margin-top: 8px; align-items: flex-start; line-height: 1.6; }
.certification-form > .button { width: 100%; margin-top: 16px; }
.certification-form :disabled { cursor: wait; opacity: .68; }
.certification-loading, .certification-empty { min-height: 260px; padding: 40px; display: grid; place-content: center; gap: 9px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--text-soft); background: var(--surface); text-align: center; }
.certification-empty strong { color: var(--text); font-size: 19px; }
.certification-empty p { max-width: 520px; line-height: 1.65; }
.certification-empty .button { margin-top: 10px; }
.certification-alert { margin-bottom: 14px; padding: 20px 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.certification-alert.rejected { border-color: color-mix(in srgb, #b42318 30%, var(--line)); background: color-mix(in srgb, #b42318 7%, var(--surface)); }
.certification-alert p { margin-top: 7px; color: var(--text-soft); line-height: 1.6; }
.status-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.status-heading > span { color: var(--text-soft); font-size: 12px; font-weight: 700; }
.status-heading b, .review-status { padding: 6px 9px; border-radius: 8px; color: var(--warning); background: var(--warning-soft); font-size: 11px; }
.certification-status.verified .status-heading b, .review-status.verified { color: var(--success); background: var(--success-soft); }
.review-status.rejected { color: #b42318; background: color-mix(in srgb, #b42318 10%, var(--surface)); }
:root[data-theme="dark"] .review-status.rejected { color: #ff9b91; }
.certification-status h2 { margin-top: 48px; font-size: 34px; letter-spacing: -.045em; }
.certification-status > p { max-width: 640px; margin-top: 12px; color: var(--text-soft); line-height: 1.7; }
.certification-data { margin-top: 30px; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.certification-data div { min-width: 0; padding: 18px 0; border-bottom: 1px solid var(--line); }
.certification-data div:nth-child(odd) { padding-right: 24px; }
.certification-data dt, .certification-review-item dt { color: var(--text-faint); font-size: 11px; }
.certification-data dd, .certification-review-item dd { margin-top: 7px; overflow-wrap: anywhere; font-size: 13px; font-weight: 700; }
.review-note { margin-top: 22px; padding: 18px 20px; border-left: 3px solid var(--accent); background: var(--accent-soft); }
.review-note p { margin-top: 7px; color: var(--text-soft); font-size: 13px; line-height: 1.6; }
.certification-status > .button { margin-top: 26px; }

.admin-login-page { min-height: calc(100dvh - 108px); display: grid; place-items: center; padding: 60px 20px; background: radial-gradient(circle at 50% 10%, var(--accent-soft), transparent 38%), var(--bg); }
.admin-login { width: min(100%, 460px); padding: 42px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow); }
.admin-logo { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 13px; color: white; background: var(--accent); font-weight: 850; }
.admin-login h1 { margin-top: 26px; font-size: 34px; }
.admin-login > p { margin: 8px 0 30px; color: var(--text-soft); }
.admin-login .button { width: 100%; }
.admin-login > small { display: block; margin-top: 14px; color: var(--text-faint); text-align: center; }
.admin-shell { min-height: calc(100dvh - 108px); display: grid; grid-template-columns: 250px 1fr; }
.admin-sidebar { padding: 24px 18px; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: var(--surface); }
.admin-brand { padding: 0 8px 24px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.admin-brand span, .admin-user span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: white; background: var(--accent); font-weight: 800; }
.admin-sidebar nav { margin-top: 24px; display: grid; gap: 6px; }
.admin-sidebar nav button, .admin-logout { padding: 12px 14px; border: 0; border-radius: 10px; text-align: left; color: var(--text-soft); background: transparent; }
.admin-sidebar nav button:hover, .admin-sidebar nav button.active { color: var(--accent-ink); background: var(--accent-soft); font-weight: 700; }
.admin-logout { margin-top: auto; border: 1px solid var(--line); text-align: center; }
.admin-content { min-width: 0; padding: 34px; }
.admin-content > header { display: flex; justify-content: space-between; align-items: center; }
.admin-content > header span { color: var(--text-faint); font-size: 11px; }
.admin-content > header h1 { margin-top: 5px; font-size: 32px; }
.admin-user { display: flex; align-items: center; gap: 10px; color: var(--text-soft); font-size: 13px; }
.admin-kpis { margin-top: 30px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.admin-kpis article { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.admin-kpis span { color: var(--text-soft); font-size: 12px; }
.admin-kpis strong { display: block; margin-top: 22px; font-size: 30px; }
.admin-kpis small { display: block; margin-top: 5px; color: var(--success); }
.admin-chart-card { min-height: 330px; margin-top: 16px; padding: 26px; display: grid; grid-template-columns: .45fr 1fr; gap: 40px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.admin-chart-card p { margin-top: 8px; color: var(--text-soft); font-size: 13px; }
.admin-bars { height: 250px; display: flex; align-items: end; justify-content: space-around; gap: 14px; border-bottom: 1px solid var(--line); }
.admin-bars i { position: relative; width: 9%; height: var(--bar); border-radius: 8px 8px 0 0; background: var(--accent); }
.admin-bars b { position: absolute; top: -28px; left: 50%; min-width: 28px; color: var(--text); font-size: 12px; font-style: normal; text-align: center; transform: translateX(-50%); }
.admin-bars span { position: absolute; bottom: -28px; left: 50%; color: var(--text-faint); font-size: 11px; font-style: normal; white-space: nowrap; transform: translateX(-50%); }
.admin-table, .admin-module { margin-top: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.module-head { min-height: 70px; padding: 16px 22px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.module-head h2 { font-size: 18px; }
.module-head button, .admin-task-list button { padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--accent-ink); background: var(--surface-muted); }
.admin-table article, .admin-task-list article { min-height: 66px; padding: 14px 22px; display: grid; grid-template-columns: 120px 1fr auto auto; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); }
.admin-table article:last-child, .admin-task-list article:last-child { border: 0; }
.admin-table article span { color: var(--text-soft); font-size: 12px; }
.admin-table article b { color: var(--warning); font-size: 11px; }
.admin-table article button { padding: 7px 10px; border: 0; color: var(--accent); background: transparent; }
.admin-module { min-height: 420px; margin-top: 30px; }
.admin-task-list article { grid-template-columns: 50px 1fr auto; }
.admin-content-list { display: grid; }
.admin-content-row { min-width: 0; padding: 22px; display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; align-items: start; gap: 20px; border-bottom: 1px solid var(--line); }
.admin-content-row:last-child { border-bottom: 0; }
.admin-order { display: grid; gap: 4px; }
.admin-order strong { color: var(--accent-ink); font-size: 22px; }
.admin-order span { color: var(--text-faint); font-size: 10px; }
.admin-content-main { min-width: 0; display: grid; gap: 12px; }
.admin-content-main > div { display: flex; align-items: center; gap: 12px; }
.admin-content-main .provider-logo { flex: 0 0 auto; }
.admin-content-main h3 { font-size: 17px; }
.admin-content-main p, .admin-content-main h3 + p { color: var(--text-soft); font-size: 12px; line-height: 1.6; }
.content-visibility { width: max-content; padding: 6px 9px; border-radius: 8px; color: var(--success); background: var(--success-soft); font-size: 11px; }
.content-visibility.hidden { color: var(--text-soft); background: var(--surface-strong); }
.admin-content-actions { grid-column: 2 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.admin-content-actions button { min-height: 34px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--accent-ink); background: var(--surface-muted); font-size: 12px; }
.admin-content-actions button:hover:not(:disabled) { border-color: var(--accent); background: var(--accent-soft); }
.admin-content-actions button:disabled { cursor: not-allowed; opacity: .42; }
.admin-content-actions .danger-action { color: #b42318; border-color: color-mix(in srgb, #b42318 28%, var(--line)); background: color-mix(in srgb, #b42318 7%, var(--surface)); }
:root[data-theme="dark"] .admin-content-actions .danger-action { color: #ff9b91; }
.rating-management-list { display: grid; }
.rating-management-row { min-width: 0; padding: 20px 22px; display: grid; grid-template-columns: minmax(220px, 1.4fr) minmax(170px, .75fr) minmax(150px, .65fr) auto auto; align-items: center; gap: 22px; border-bottom: 1px solid var(--line); }
.rating-management-row:last-child { border-bottom: 0; }
.rating-provider-identity { min-width: 0; display: flex; align-items: center; gap: 12px; }
.rating-provider-identity .provider-logo { flex: 0 0 auto; }
.rating-provider-identity h3 { font-size: 16px; }
.rating-provider-identity p { margin-top: 5px; color: var(--text-soft); font-size: 12px; }
.rating-current { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; }
.rating-current > span { grid-column: 1 / -1; color: var(--text-faint); font-size: 11px; }
.rating-current strong { color: var(--warning); font-size: 20px; }
.rating-star-strip { display: inline-flex; gap: 2px; white-space: nowrap; }
.rating-star-strip i { color: var(--surface-strong); font-size: 16px; font-style: normal; }
.rating-star-strip i.filled { color: var(--warning); }
.rating-editor { display: grid; gap: 5px; }
.rating-editor label { color: var(--text-soft); font-size: 12px; font-weight: 700; }
.rating-editor input { width: 100%; height: 42px; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--text); background: var(--surface-muted); outline: 0; }
.rating-editor input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
.rating-editor small { color: var(--text-faint); font-size: 10px; }
.rating-save-button { min-width: 96px; white-space: nowrap; }
.rating-save-button:disabled { cursor: wait; opacity: .65; }
.hero-slide-management-list { display: grid; }
.hero-slide-management-row { min-width: 0; padding: 20px 22px; display: grid; grid-template-columns: 58px 180px minmax(260px, 1fr) auto; align-items: start; gap: 20px; border-bottom: 1px solid var(--line); }
.hero-slide-management-row:last-child { border-bottom: 0; }
.hero-slide-management-row > img { width: 180px; height: 112px; object-fit: cover; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-muted); }
.hero-slide-management-copy { min-width: 0; }
.hero-slide-management-copy > span { color: var(--accent-ink); font-size: 11px; font-weight: 750; }
.hero-slide-management-copy h3 { margin-top: 7px; font-size: 17px; }
.hero-slide-management-copy p { max-width: 680px; margin-top: 7px; color: var(--text-soft); font-size: 12px; line-height: 1.6; }
.hero-slide-management-copy small { margin-top: 9px; display: block; color: var(--text-faint); }
.hero-slide-management-row .admin-content-actions { grid-column: 3 / -1; }
.hero-slide-image-editor { padding: 16px; display: grid; grid-template-columns: minmax(240px, .8fr) minmax(280px, 1.2fr); gap: 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-muted); }
.hero-slide-image-editor > img { width: 100%; height: 240px; object-fit: cover; border-radius: 11px; background: var(--surface-strong); }
.hero-slide-image-editor > div { display: grid; align-content: start; gap: 2px; }
.hero-slide-image-editor input[type="file"] { height: auto; min-height: 48px; padding: 8px; }
.hero-slide-image-editor input[type="file"]::file-selector-button { margin-right: 10px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--accent-ink); background: var(--surface); }
.listing-admin-states { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.listing-manage-actions { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.modal-card.admin-editor-modal { width: min(820px, 100%); padding: 0; }
.admin-editor-form { padding: 26px 30px 30px; }
.admin-editor-form > .button { width: 100%; margin-top: 10px; }
.admin-editor-form :disabled { cursor: wait; opacity: .68; }
.confirm-delete-modal { width: min(500px, 100%); }
.danger-label { color: #b42318; font-size: 12px; font-weight: 800; }
:root[data-theme="dark"] .danger-label { color: #ff9b91; }
.confirm-delete-actions { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.danger-button { color: #fff; background: #b42318; }
.danger-button:hover { background: #8f1c13; }
.certification-admin .module-head { gap: 20px; }
.certification-admin .module-head p { margin-top: 5px; color: var(--text-soft); font-size: 12px; }
.certification-filters { display: flex; gap: 7px; }
.certification-filters button.active { color: #fff; border-color: var(--accent); background: var(--accent); }
.certification-review-list { padding: 0 22px 22px; }
.certification-review-item { padding: 26px 0; border-bottom: 1px solid var(--line); }
.certification-review-item:last-child { border-bottom: 0; }
.certification-review-item > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.certification-review-item > header span { color: var(--text-soft); font-size: 11px; }
.certification-review-item h3 { margin-top: 6px; font-size: 21px; }
.certification-review-item dl { margin-top: 22px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.material-row { margin-top: 20px; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-radius: 11px; background: var(--surface-muted); }
.material-row a { color: var(--accent-ink); font-size: 13px; font-weight: 750; }
.material-row span { overflow-wrap: anywhere; color: var(--text-soft); font-size: 11px; text-align: right; }
.review-field { margin-top: 20px; display: grid; gap: 8px; color: var(--text-soft); font-size: 12px; font-weight: 700; }
.review-field textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; outline: 0; resize: vertical; }
.review-field textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
.review-actions { margin-top: 14px; display: flex; justify-content: flex-end; gap: 10px; }

.listing-form { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.listing-form > .button { width: 100%; margin-top: 10px; }
.listing-form :disabled { cursor: wait; opacity: .68; }
.my-listing-list { display: grid; gap: 10px; }
.my-listing-list article { padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-muted); }
.my-listing-list article > div { display: flex; justify-content: space-between; gap: 14px; color: var(--accent-ink); font-size: 11px; font-weight: 750; }
.my-listing-list h3 { margin-top: 12px; font-size: 16px; line-height: 1.45; }
.my-listing-list p, .my-listing-list small { display: block; margin-top: 7px; color: var(--text-soft); font-size: 11px; line-height: 1.55; }
.my-listing-state { display: flex; align-items: center; gap: 6px; }
.owner-state { padding: 5px 8px; border-radius: 7px; color: var(--success); background: var(--success-soft); font-size: 10px; }
.owner-state.withdrawn { color: var(--warning); background: var(--warning-soft); }
.owner-state.closed { color: var(--text-soft); background: var(--surface-strong); }
.my-listing-list article > .my-listing-actions { margin-top: 14px; padding-top: 12px; display: flex; justify-content: flex-start; flex-wrap: wrap; border-top: 1px solid var(--line); }
.my-listing-actions button { padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--accent-ink); background: var(--surface); font-size: 11px; }
.my-listing-actions .danger-action { color: #b42318; }
.listing-match-entry { width: 100%; margin-top: 16px; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--accent) 32%, var(--line)); border-radius: 10px; color: var(--accent-ink); background: var(--accent-soft); font-size: 12px; font-weight: 750; }
.listing-match-entry:hover { border-color: var(--accent); }
.listing-state { padding: 4px 7px; border-radius: 7px; color: var(--warning); background: var(--warning-soft); }
.listing-state.approved, .review-status.approved { color: var(--success); background: var(--success-soft); }
.listing-state.rejected { color: #b42318; background: color-mix(in srgb, #b42318 10%, var(--surface)); }
:root[data-theme="dark"] .listing-state.rejected { color: #ff9b91; }
.listing-empty { min-height: 190px; padding: 28px; display: grid; place-content: center; gap: 8px; color: var(--text-soft); text-align: center; }
.listing-empty strong { color: var(--text); }
.listing-empty p { max-width: 360px; font-size: 12px; line-height: 1.6; }
.account-listings { margin-top: 18px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.account-listings-heading { margin-bottom: 24px; display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.account-listings-heading span { color: var(--accent-ink); font-size: 12px; font-weight: 750; }
.account-listings-heading h2 { margin-top: 7px; font-size: 28px; }
.account-listings-heading p { margin-top: 7px; color: var(--text-soft); font-size: 13px; }
.account-listings .my-listing-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.account-listings .listing-empty { min-height: 150px; border: 1px dashed var(--line); border-radius: 12px; background: var(--surface-muted); }
.account-intents { background: linear-gradient(145deg, var(--surface), color-mix(in srgb, var(--accent-soft) 38%, var(--surface))); }
.my-intent-list { display: grid; gap: 12px; }
.my-intent-card { padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.my-intent-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.my-intent-card header span { color: var(--text-soft); font-size: 11px; }
.my-intent-card h3 { margin-top: 7px; font-size: 18px; }
.my-intent-card h3 i { margin-inline: 6px; color: var(--accent); font-size: 11px; font-style: normal; }
.my-intent-meta { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--text-faint); font-size: 10px; }
.my-intent-message, .my-intent-feedback { margin-top: 16px; padding: 16px 18px; border-radius: 10px; background: var(--surface-muted); }
.my-intent-message strong, .my-intent-feedback strong { font-size: 12px; }
.my-intent-message p, .my-intent-feedback p { margin-top: 7px; color: var(--text-soft); font-size: 12px; line-height: 1.65; }
.my-intent-feedback { border-left: 3px solid var(--success); background: var(--success-soft); }
.my-intent-feedback.waiting { border-left-color: var(--warning); background: var(--warning-soft); }
.my-intent-feedback small { display: block; margin-top: 8px; color: var(--text-faint); font-size: 9px; }
.modal-card.listing-modal-card { width: min(780px, 100%); padding: 0; }
.modal-card.need-detail-modal { width: min(960px, 100%); padding: 0; }
.need-detail-heading { padding: 34px 34px 26px; border-bottom: 1px solid var(--line); }
.need-detail-heading > span { color: var(--success); font-size: 12px; font-weight: 750; }
.modal-card .need-detail-heading h2 { max-width: 760px; margin-top: 10px; padding-right: 46px; font-size: clamp(27px, 4vw, 38px); line-height: 1.2; }
.need-detail-heading p { margin-top: 10px; color: var(--text-soft); font-size: 13px; }
.need-detail-facts { padding: 0 34px; display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.need-detail-facts div { padding: 20px 0; }
.need-detail-facts div + div { padding-left: 24px; border-left: 1px solid var(--line); }
.need-detail-facts dt, .need-contact dt { color: var(--text-faint); font-size: 10px; }
.need-detail-facts dd, .need-contact dd { margin-top: 7px; overflow-wrap: anywhere; font-size: 13px; font-weight: 750; }
.need-detail-description { padding: 26px 34px; }
.need-detail-description strong { font-size: 14px; }
.need-detail-description p { margin-top: 10px; color: var(--text-soft); font-size: 13px; line-height: 1.75; white-space: pre-wrap; }
.need-contact { margin: 0 34px 30px; padding: 18px 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; border-radius: 12px; background: var(--success-soft); }
.need-contact-locked { margin: 0 34px 30px; padding: 20px; border-radius: 12px; background: var(--surface-muted); }
.need-contact-locked p { margin-top: 7px; color: var(--text-soft); font-size: 12px; line-height: 1.6; }
.need-contact-locked .button { width: auto; margin-top: 16px; }
.explainable-matches { padding: 30px 34px 36px; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--accent-soft) 48%, var(--surface)); }
.match-engine-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.match-engine-heading span { color: var(--accent); font-size: 11px; font-weight: 800; }
.match-engine-heading h3 { margin-top: 6px; font-size: 24px; }
.match-engine-heading small { padding: 7px 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--text-soft); background: var(--surface); font-size: 10px; white-space: nowrap; }
.match-disclaimer { max-width: 720px; margin-top: 10px; color: var(--text-soft); font-size: 12px; line-height: 1.65; }
.match-group { margin-top: 28px; }
.match-group > h4 { margin: 0 0 12px; font-size: 14px; }
.match-company-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.match-company-card, .match-opportunity-list article { padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.match-company-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; }
.match-company-head h4, .match-opportunity-list h4 { margin: 0; font-size: 15px; }
.match-company-head p, .match-opportunity-list p { margin-top: 4px; color: var(--text-soft); font-size: 11px; }
.match-company-head > b, .match-opportunity-list article > div > b { color: var(--accent); font-size: 14px; }
.match-reasons { margin: 15px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.match-reasons li { padding: 5px 7px; border-radius: 7px; color: var(--accent-ink); background: var(--accent-soft); font-size: 10px; }
.match-company-actions { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.match-company-actions button, .match-opportunity-list button { padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--accent-ink); background: var(--surface-muted); font-size: 11px; font-weight: 700; }
.match-owner-note { padding: 9px 10px; display: grid; place-items: center; color: var(--text-faint); font-size: 10px; text-align: center; }
.match-opportunity-list { display: grid; gap: 10px; }
.match-opportunity-list article > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.match-opportunity-list article > div > span { color: var(--success); font-size: 10px; font-weight: 750; }
.match-opportunity-list h4 { margin-top: 14px; }
.match-opportunity-actions { margin-top: 14px; display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; }
.match-opportunity-list button { width: 100%; }
.match-empty, .match-loading { min-height: 150px; padding: 28px; display: grid; place-content: center; gap: 7px; color: var(--text-soft); text-align: center; }
.match-empty strong { color: var(--text); }
.match-empty p { max-width: 460px; font-size: 12px; line-height: 1.6; }
.intent-submit-modal { width: min(680px, 100%); }
.intent-modal-label { color: var(--accent); font-size: 11px; font-weight: 800; }
.intent-submit-modal form { margin-top: 24px; }
.intent-submit-modal form > .button { width: 100%; }
.intent-review-item h3 i { margin-inline: 7px; color: var(--accent); font-size: 12px; font-style: normal; }
.intent-state { padding: 6px 9px; border-radius: 8px; color: var(--warning); background: var(--warning-soft); font-size: 11px; white-space: nowrap; }
.intent-state.contacting { color: var(--accent-ink); background: var(--accent-soft); }
.intent-state.completed { color: var(--success); background: var(--success-soft); }
.intent-state.closed { color: var(--text-soft); background: var(--surface-strong); }
.intent-message { margin-top: 20px; padding: 18px; border-left: 3px solid var(--accent); background: var(--surface-muted); }
.intent-message p { margin-top: 8px; color: var(--text-soft); font-size: 13px; line-height: 1.7; white-space: pre-wrap; }
.intent-followup { margin-top: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: color-mix(in srgb, var(--accent-soft) 42%, var(--surface)); }
.intent-followup .field { margin-bottom: 0; }
.intent-followup textarea { min-height: 48px; }
.intent-followup > .button { width: 100%; margin-top: 14px; }
.intent-handler { margin-top: 14px; display: block; color: var(--text-faint); font-size: 10px; text-align: right; }
.intent-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.exception-state { padding: 6px 9px; border-radius: 8px; color: #b42318; background: color-mix(in srgb, #b42318 10%, var(--surface)); font-size: 11px; white-space: nowrap; }
.exception-state.resolved { color: var(--success); background: var(--success-soft); }
.exception-fields { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }

.match-settings-form { padding: 24px; }
.match-rule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.match-rule-grid label { padding: 16px; display: grid; grid-template-columns: 1fr 72px; align-items: center; gap: 5px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-muted); }
.match-rule-grid label > span { font-size: 13px; font-weight: 750; }
.match-rule-grid input { width: 72px; height: 40px; padding-inline: 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); text-align: center; }
.match-rule-grid small { grid-column: 1 / -1; color: var(--text-soft); font-size: 10px; line-height: 1.45; }
.match-settings-actions { margin-top: 20px; padding-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); }
.match-settings-actions p { color: var(--text-soft); font-size: 11px; }

.admin-user-list { display: grid; }
.admin-user-list > article { padding: 20px 22px; display: grid; grid-template-columns: minmax(260px, .8fr) minmax(480px, 1.2fr); align-items: center; gap: 24px; border-bottom: 1px solid var(--line); }
.admin-user-list > article.primary-admin { background: color-mix(in srgb, var(--accent) 6%, var(--surface)); box-shadow: inset 3px 0 0 var(--accent); }
.admin-user-summary { min-width: 0; display: flex; align-items: center; gap: 12px; }
.admin-user-summary > span { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 11px; color: white; background: var(--accent); font-weight: 800; }
.admin-user-summary h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 15px; }
.primary-admin-badge { padding: 3px 7px; border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent); border-radius: 999px; color: var(--accent-ink); background: color-mix(in srgb, var(--accent) 10%, var(--surface)); font-size: 9px; line-height: 1.2; }
.admin-user-summary p, .admin-user-summary small { margin-top: 4px; display: block; overflow-wrap: anywhere; color: var(--text-soft); font-size: 10px; }
.admin-user-controls { display: grid; grid-template-columns: 1.1fr .8fr .7fr auto; align-items: end; gap: 8px; }
.admin-user-controls label { display: grid; gap: 5px; color: var(--text-soft); font-size: 10px; }
.admin-user-controls input, .admin-user-controls select { height: 38px; min-width: 0; padding-inline: 9px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.admin-user-controls select:disabled { color: var(--text-soft); background: var(--surface-muted); cursor: not-allowed; opacity: .75; }
.admin-user-controls .button { min-height: 38px; white-space: nowrap; }

.audit-log-list { display: grid; }
.audit-log-list article { min-height: 66px; padding: 12px 22px; display: grid; grid-template-columns: 150px minmax(180px, .7fr) minmax(260px, 1.3fr) 120px; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); }
.audit-log-list time, .audit-log-list span, .audit-log-list small { color: var(--text-soft); font-size: 10px; }
.audit-log-list article > div { display: grid; gap: 3px; }
.audit-log-list code { overflow-wrap: anywhere; color: var(--accent-ink); font-size: 11px; }
.listing-modal-heading { padding: 30px 30px 24px; border-bottom: 1px solid var(--line); }
.listing-modal-heading > span { color: var(--accent-ink); font-size: 12px; font-weight: 750; }
.modal-card .listing-modal-heading h2 { margin-top: 8px; }
.listing-modal-heading p { max-width: 650px; margin-top: 10px; color: var(--text-soft); font-size: 13px; line-height: 1.65; }
.listing-modal-form { padding: 26px 30px 30px; border: 0; border-radius: 0; box-shadow: none; }
.listing-review-item dl { grid-template-columns: repeat(4, 1fr); }
.listing-review-description { margin-top: 20px; padding: 18px; border-left: 3px solid var(--accent); background: var(--surface-muted); }
.listing-review-description p { margin-top: 8px; color: var(--text-soft); font-size: 13px; line-height: 1.7; white-space: pre-wrap; }

.site-footer { border-top: 1px solid var(--line); background: var(--surface); }
.footer-main { width: min(calc(100% - 40px), var(--container)); min-height: 210px; margin: 0 auto; padding-block: 44px; display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; }
.footer-brand { margin-bottom: 18px; }
.footer-main p { max-width: 440px; color: var(--text-soft); font-size: 14px; }
.footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 40px; color: var(--text-soft); font-size: 14px; }
.footer-links a:hover { color: var(--accent); }
.footer-bottom { min-height: 54px; padding-inline: max(20px, calc((100% - var(--container)) / 2)); display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--line); color: var(--text-faint); font-size: 11px; }

.toast { position: fixed; z-index: 70; left: 50%; bottom: 28px; max-width: min(520px, calc(100% - 40px)); padding: 13px 18px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); background: var(--surface); box-shadow: var(--shadow); opacity: 0; transform: translate(-50%, 10px); transition: opacity .2s ease, transform .2s ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.modal-layer { position: fixed; z-index: 60; inset: 0; display: grid; place-items: center; padding: 20px; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(5, 13, 28, .56); backdrop-filter: blur(6px); }
.modal-card { position: relative; z-index: 1; width: min(500px, 100%); max-height: calc(100dvh - 40px); padding: 34px; overflow-y: auto; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 28px 80px rgba(0,0,0,.28); }
.modal-card h2 { margin-top: 14px; font-size: 30px; }
.modal-card > p { margin: 12px 0 24px; color: var(--text-soft); line-height: 1.7; }
.modal-close { position: absolute; top: 16px; right: 16px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; color: var(--text-soft); background: var(--surface-muted); font-size: 11px; }
.modal-logo { margin-top: 6px; }
.modal-facts { margin-block: 22px; display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--line); }
.modal-facts div { padding: 18px 8px; text-align: center; }
.modal-facts div + div { border-left: 1px solid var(--line); }
.modal-facts strong { display: block; font-size: 22px; }
.modal-facts span { display: block; margin-top: 5px; color: var(--text-soft); font-size: 10px; }
.modal-card .primary-button { margin-top: 22px; width: 100%; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1); }
.reveal.revealed { opacity: 1; transform: translateY(0); }

@keyframes matching { from { transform: scaleX(.58); } to { transform: scaleX(1); } }
@media (max-width: 1050px) {
  .header-inner { grid-template-columns: 1fr auto; }
  .primary-nav { position: absolute; top: 72px; right: 20px; left: 20px; padding: 12px; display: none; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow); }
  .primary-nav.open { display: grid; }
  .header-inner:focus-within .primary-nav { display: grid; }
  .primary-nav a { padding: 12px; }
  .mobile-auth-entry { display: block; color: var(--accent-ink) !important; background: var(--accent-soft); }
  .mobile-account-option { width: 100%; padding: 12px; display: block; border: 0; border-radius: 10px; color: var(--text-soft); background: transparent; font-size: 15px; text-align: left; }
  .mobile-account-option:hover, .mobile-account-option:focus-visible { color: var(--text); background: var(--surface-muted); outline: none; }
  .mobile-menu-button { position: absolute; top: 50%; right: 0; display: inline-flex !important; color: var(--accent-ink); border-color: color-mix(in srgb, var(--accent) 32%, var(--line)); background: var(--accent-soft); transform: translateY(-50%); }
  .header-actions { display: none; }
  .hero { grid-template-columns: 1fr 1fr; }
  .hero h1 { font-size: clamp(42px, 5.6vw, 60px); }
  .hero-visual, .hero-visual img { min-height: 470px; }
  .trend-demand { grid-template-columns: 130px 1fr 1fr 1fr; }
  .admin-kpis { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 820px) {
  .announcement { justify-content: space-between; font-size: 11px; }
  .auth-gate, .auth-page { min-height: auto; padding-block: 60px; grid-template-columns: 1fr; gap: 36px; }
  .account-grid { grid-template-columns: 1fr; }
  .certification-layout { grid-template-columns: 1fr; }
  .certification-guide { position: static; }
  .hero { min-height: auto; padding-block: 42px 60px; grid-template-columns: 1fr; }
  .hero-copy { order: 0; }
  .hero-visual { order: 1; }
  .hero-visual { min-height: 430px; }
  .hero-visual img { min-height: 430px; }
  .trust-strip { grid-template-columns: 1fr 1fr; }
  .trust-strip span:nth-child(2) { border-right: 0; }
  .trust-strip span:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .dashboard-grid, .needs-layout, .service-hero { grid-template-columns: 1fr; }
  .matches-panel { position: static; }
  .case-card { grid-template-columns: 1fr; }
  .case-image { min-height: 340px; }
  .case-copy { min-height: 360px; }
  .trend-metrics { grid-template-columns: 1fr 1fr; }
  .trend-demand { grid-template-columns: 1fr; }
  .trend-demand div { min-height: 54px; }
  .workflow-track { grid-template-columns: 1fr; }
  .workflow-track article, .workflow-track article:not(:first-child) { min-height: auto; padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .workflow-track h3 { margin-top: 18px; }
  .provider-tools { align-items: stretch; flex-direction: column; }
  .provider-directory { grid-template-columns: 1fr; }
  .service-hero { gap: 30px; min-height: auto; }
  .service-item { padding-block: 24px; grid-template-columns: 50px 1fr auto; }
  .service-item > strong { grid-column: 2; }
  .service-item button { grid-column: 3; grid-row: 1 / span 2; }
  .process-line { grid-template-columns: 1fr 1fr; gap: 12px; }
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar { padding: 14px; position: static; }
  .admin-sidebar nav { display: flex; overflow-x: auto; }
  .admin-sidebar nav button { white-space: nowrap; }
  .admin-logout { margin-top: 12px; }
  .admin-chart-card { grid-template-columns: 1fr; }
  .admin-content { padding: 24px 18px; }
  .certification-review-item dl { grid-template-columns: 1fr 1fr; }
  .need-directory-tools { width: 100%; align-items: stretch; flex-direction: column; }
  .need-type-tabs { width: max-content; }
  .account-listings .my-listing-list { grid-template-columns: 1fr; }
  .match-company-grid { grid-template-columns: 1fr; }
  .listing-review-item dl { grid-template-columns: 1fr 1fr; }
  .match-rule-grid { grid-template-columns: 1fr 1fr; }
  .admin-user-list > article { grid-template-columns: 1fr; }
  .audit-log-list article { grid-template-columns: 120px 1fr 1.4fr; }
  .audit-log-list small { display: none; }
  .rating-management-row { grid-template-columns: minmax(220px, 1.4fr) minmax(160px, .8fr) minmax(130px, .65fr); }
  .rating-management-row > .content-visibility { justify-self: start; }
  .rating-save-button { width: 100%; }
  .hero-slide-management-row { grid-template-columns: 50px 150px minmax(220px, 1fr); }
  .hero-slide-management-row > img { width: 150px; height: 100px; }
  .hero-slide-management-row > .content-visibility { grid-column: 3; justify-self: start; }
  .hero-slide-management-row .admin-content-actions { grid-column: 2 / -1; }
}

@media (max-width: 620px) {
  .section-shell, .header-inner, .footer-main { width: min(calc(100% - 28px), var(--container)); }
  .header-inner { min-height: 64px; }
  .brand-copy small { display: none; }
  .brand-copy strong { font-size: 16px; }
  .brand-mark { width: 34px; height: 34px; }
  .primary-nav { top: 64px; left: 14px; right: 14px; }
  .announcement { padding-inline: 14px; }
  .announcement span { display: none; }
  .hero { padding-top: 34px; }
  .hero h1 { font-size: clamp(40px, 13vw, 56px); }
  .hero-lead { font-size: 16px; }
  .hero-actions { display: grid; }
  .hero-visual, .hero-visual img { min-height: 360px; }
  .hero-visual { border-radius: 18px; }
  .matching-card { right: 14px; bottom: 14px; width: calc(100% - 28px); }
  .hero-proof { display: grid; grid-template-columns: repeat(3, 1fr); }
  .hero-proof div { min-width: 0; padding-right: 10px; margin-right: 10px; }
  .hero-proof dt { font-size: 18px; }
  .trust-strip { padding: 0; }
  .trust-strip span { padding: 14px 8px; font-size: 11px; }
  .dashboard-section, .workflow-section, .trend-section, .service-process { padding-block: 76px; }
  .section-intro { margin-bottom: 30px; }
  .dashboard-grid { gap: 12px; }
  .traffic-panel, .visit-panel { min-height: 280px; padding: 20px; }
  .visit-panel { grid-template-columns: 1fr 110px; }
  .visit-ring { width: 110px; }
  .line-chart { height: 150px; }
  .cases-section { padding-block: 76px; }
  .case-image { min-height: 260px; }
  .case-copy { min-height: 330px; padding: 26px; }
  .case-copy h3 { margin-top: 30px; }
  .trend-board { padding: 20px; }
  .trend-metrics { gap: 8px; }
  .trend-metrics div { min-height: 128px; padding: 16px; }
  .trend-metrics dt { font-size: 24px; }
  .trend-board-head span { display: none; }
  .closing-cta, .provider-join { margin-bottom: 76px; padding: 28px; align-items: stretch; flex-direction: column; }
  .page-hero { padding-block: 60px 34px; }
  .auth-gate-copy h1, .auth-intro h1, .account-heading h1 { font-size: clamp(38px, 11vw, 52px); }
  .auth-gate-copy > div { display: grid; }
  .auth-policy, .auth-card, .profile-panel, .certification-panel { padding: 22px; }
  .auth-intro dl, .account-actions { grid-template-columns: 1fr; }
  .member-access { padding: 22px; align-items: stretch; flex-direction: column; }
  .member-access .button { width: 100%; }
  .account-page { padding-block: 58px 76px; }
  .certification-panel h2 { margin-top: 34px; }
  .certification-page { padding-block: 54px 76px; }
  .certification-heading h1 { font-size: clamp(38px, 11vw, 52px); }
  .certification-layout { margin-top: 34px; }
  .certification-guide, .certification-form, .certification-status { padding: 22px; }
  .certification-data { grid-template-columns: 1fr; }
  .certification-data div:nth-child(odd) { padding-right: 0; }
  .certification-status h2 { margin-top: 34px; font-size: 29px; }
  .compact-hero { min-height: 270px; }
  .compact-hero h1, .service-hero h1 { font-size: clamp(38px, 11vw, 52px); }
  .needs-layout { padding-bottom: 70px; }
  .demand-form, .matches-panel { padding: 20px; }
  .two-fields { grid-template-columns: 1fr; gap: 0; }
  .list-heading { align-items: stretch; flex-direction: column; }
  .search-field { min-width: 0; }
  .need-row { grid-template-columns: 1fr; gap: 18px; }
  .need-row > button { width: 100%; }
  .provider-join h2 { font-size: 30px; }
  .service-hero { padding-block: 70px; }
  .service-item { grid-template-columns: 40px 1fr; }
  .service-item > strong { grid-column: 2; }
  .service-item button { grid-column: 2; grid-row: auto; width: 100%; }
  .process-line { grid-template-columns: 1fr; }
  .admin-login { padding: 28px 22px; }
  .admin-content > header { align-items: flex-start; }
  .admin-user { display: none; }
  .admin-kpis { grid-template-columns: 1fr 1fr; gap: 8px; }
  .admin-kpis article { padding: 16px; }
  .admin-chart-card { padding: 18px; }
  .admin-table article, .admin-task-list article { grid-template-columns: 1fr auto; }
  .admin-table article span, .admin-task-list article span { display: none; }
  .admin-table article b { grid-column: 1; }
  .admin-content-row { grid-template-columns: 50px minmax(0, 1fr); padding: 18px 16px; gap: 14px; }
  .admin-content-row > .content-visibility { grid-column: 2; }
  .admin-content-actions { grid-column: 1 / -1; justify-content: stretch; }
  .admin-content-actions button { flex: 1 1 calc(33% - 8px); }
  .rating-admin .module-head { align-items: stretch; flex-direction: column; gap: 14px; }
  .rating-management-row { grid-template-columns: 1fr 1fr; gap: 16px; }
  .rating-provider-identity { grid-column: 1 / -1; }
  .rating-management-row > .content-visibility { justify-self: start; }
  .rating-save-button { align-self: end; min-height: 42px; }
  .hero-slide-admin .module-head { align-items: stretch; flex-direction: column; gap: 14px; }
  .hero-slide-admin .module-head .button { width: 100%; }
  .hero-slide-management-row { grid-template-columns: 48px minmax(0, 1fr); gap: 14px; }
  .hero-slide-management-row > img { width: 100%; height: 170px; grid-column: 2; }
  .hero-slide-management-copy, .hero-slide-management-row > .content-visibility { grid-column: 2; }
  .hero-slide-management-row .admin-content-actions { grid-column: 1 / -1; }
  .hero-slide-image-editor { grid-template-columns: 1fr; }
  .hero-slide-image-editor > img { height: 210px; }
  .listing-review-item > header { align-items: flex-start; flex-direction: column; }
  .listing-admin-states { justify-content: flex-start; }
  .admin-editor-form { padding: 22px; }
  .confirm-delete-actions { grid-template-columns: 1fr; }
  .certification-admin .module-head { padding: 16px; align-items: stretch; flex-direction: column; }
  .certification-filters { width: 100%; }
  .certification-filters button { flex: 1; }
  .certification-review-list { padding-inline: 16px; }
  .certification-review-item dl { grid-template-columns: 1fr; }
  .account-listings { padding: 22px; }
  .account-listings-heading { align-items: stretch; flex-direction: column; }
  .account-listings-heading .button { width: 100%; }
  .my-intent-card > header { flex-direction: column; gap: 12px; }
  .listing-modal-heading { padding: 26px 22px 20px; }
  .listing-modal-form { padding: 22px; }
  .need-detail-heading, .need-detail-description, .explainable-matches { padding-inline: 22px; }
  .need-detail-facts { padding-inline: 22px; grid-template-columns: 1fr; }
  .need-detail-facts div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .need-contact, .need-contact-locked { margin-inline: 22px; grid-template-columns: 1fr; }
  .match-engine-heading { flex-direction: column; gap: 10px; }
  .match-company-actions { grid-template-columns: 1fr; }
  .match-opportunity-actions { grid-template-columns: 1fr; }
  .listing-review-item dl { grid-template-columns: 1fr; }
  .material-row { align-items: flex-start; flex-direction: column; }
  .material-row span { text-align: left; }
  .review-actions { display: grid; grid-template-columns: 1fr; }
  .review-actions .button { width: 100%; }
  .verification-row { grid-template-columns: minmax(0, 1fr) 105px; }
  .match-rule-grid { grid-template-columns: 1fr; }
  .match-settings-actions { align-items: stretch; flex-direction: column; }
  .admin-user-controls { grid-template-columns: 1fr; }
  .audit-log-list article { grid-template-columns: 1fr; gap: 6px; }
  .footer-main { min-height: auto; align-items: flex-start; flex-direction: column; }
  .footer-links { width: 100%; }
  .footer-bottom { padding: 16px 14px; align-items: flex-start; flex-direction: column; gap: 5px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

@media (prefers-reduced-transparency: reduce) {
  .site-header, .matching-card, .modal-backdrop { backdrop-filter: none; -webkit-backdrop-filter: none; }
  .site-header { background: var(--surface); }
  .matching-card { background: #f8fbff; }
}

/* Taste Skill 正式首页。原首页保留在内部备份路由，新增规则使用 concept 前缀隔离。 */

.concept-hero { min-height: min(690px, calc(100dvh - 150px)); padding-block: 48px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(470px, .95fr); align-items: center; gap: clamp(36px, 6vw, 88px); }
.concept-hero-copy { padding-block: 20px; }
.concept-eyebrow { margin-bottom: 24px; color: var(--accent-ink); font-size: 13px; font-weight: 750; }
.concept-hero h1 { max-width: 720px; font-size: clamp(52px, 6vw, 82px); line-height: 1.02; letter-spacing: -.075em; font-weight: 430; }
.concept-hero h1 strong { color: var(--accent); font-weight: 850; }
.concept-hero-copy > p:not(.concept-eyebrow) { max-width: 500px; margin-top: 24px; color: var(--text-soft); font-size: 18px; line-height: 1.75; }
.concept-hero-actions { margin-top: 32px; display: flex; align-items: center; gap: 24px; }
.concept-text-link { width: max-content; padding-block: 7px; border-bottom: 1px solid color-mix(in srgb, var(--accent) 55%, var(--line)); color: var(--accent-ink); font-size: 14px; font-weight: 750; }
.concept-text-link:hover { border-color: var(--accent); color: var(--accent); }
.concept-hero-media { position: relative; min-height: 520px; overflow: hidden; border-radius: 16px; background: var(--surface-muted); box-shadow: var(--shadow); }
.concept-hero-media::after { content: ""; position: absolute; z-index: 4; inset: 0; border: 1px solid color-mix(in srgb, var(--line) 70%, transparent); border-radius: inherit; pointer-events: none; }
.concept-carousel-stage { position: absolute; inset: 0; transition: opacity .16s ease, transform .16s ease; }
.concept-carousel-stage.switching { opacity: .35; transform: translateX(8px); }
.concept-carousel-slide { position: relative; width: 100%; min-height: 520px; }
.concept-carousel-slide > img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 520px; object-fit: cover; object-position: 58% center; transition: transform .7s cubic-bezier(.16,1,.3,1); }
.concept-hero-media:hover .concept-carousel-slide > img { transform: scale(1.025); }
.concept-hero-note { position: absolute; z-index: 2; right: 18px; bottom: 18px; left: 18px; padding: 20px 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 22px; border: 1px solid color-mix(in srgb, var(--line) 72%, transparent); border-radius: 14px; color: #10203a; background: rgba(250,252,255,.93); box-shadow: 0 16px 40px rgba(29, 68, 126, .14); backdrop-filter: blur(16px); }
.concept-hero-note-copy { min-width: 0; }
.concept-hero-note-copy > span { color: #1f62e7; font-size: 11px; font-weight: 800; }
.concept-hero-note h2 { max-width: 420px; margin-top: 7px; overflow: hidden; font-size: 20px; line-height: 1.25; letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.concept-hero-note p { max-width: 440px; margin-top: 6px; overflow: hidden; color: #5c6b81; font-size: 11px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.concept-hero-note a { margin-top: 10px; display: inline-flex; border-bottom: 1px solid #8baef1; color: #174aa8; font-size: 11px; font-weight: 750; }
.concept-hero-stat { min-width: 92px; text-align: right; }
.concept-hero-stat strong { display: block; font-size: 28px; line-height: 1; letter-spacing: -.055em; }
.concept-hero-stat small { margin-top: 7px; display: block; color: #5c6b81; font-size: 10px; }
.concept-carousel-controls { position: absolute; z-index: 3; inset: 18px 18px auto; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
.concept-carousel-dots { padding: 8px 10px; display: flex; align-items: center; gap: 5px; border: 1px solid rgba(255,255,255,.64); border-radius: 999px; background: rgba(250,252,255,.76); box-shadow: 0 8px 24px rgba(29,68,126,.1); backdrop-filter: blur(12px); pointer-events: auto; }
.concept-carousel-dots button { width: 24px; height: 3px; padding: 0; border: 0; border-radius: 999px; background: rgba(62,86,122,.3); transition: width .22s ease, background-color .22s ease; }
.concept-carousel-dots button.active { width: 38px; background: #2468ed; }
.concept-carousel-actions { display: flex; gap: 7px; pointer-events: auto; }
.concept-carousel-actions button { width: 38px; height: 38px; padding: 0; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.66); border-radius: 50%; color: #163f84; background: rgba(250,252,255,.8); box-shadow: 0 8px 24px rgba(29,68,126,.1); backdrop-filter: blur(12px); transition: color .2s ease, border-color .2s ease, background-color .2s ease, transform .2s ease; }
.concept-carousel-actions button:hover { color: #fff; border-color: #2468ed; background: #2468ed; transform: translateY(-1px); }
.concept-carousel-actions button:active { transform: scale(.96); }
.concept-carousel-actions span { font-size: 15px; font-weight: 800; line-height: 1; }
.concept-carousel-dots button:focus-visible, .concept-carousel-actions button:focus-visible { outline: 3px solid rgba(36,104,237,.38); outline-offset: 3px; }
.concept-carousel:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 60%, transparent); outline-offset: 4px; }

.concept-entry, .concept-needs { padding-block: 100px; }
.concept-section-heading { max-width: 690px; margin-bottom: 38px; }
.concept-section-heading h2 { font-size: clamp(34px, 4.2vw, 54px); line-height: 1.12; letter-spacing: -.055em; }
.concept-section-heading p { max-width: 580px; margin-top: 14px; color: var(--text-soft); line-height: 1.7; }
.concept-entry-grid { min-height: 430px; display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: 1fr 1fr; gap: 14px; }
.concept-entry-grid a { border: 1px solid var(--line); border-radius: 16px; background: var(--surface); transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease; }
.concept-entry-grid a:hover { border-color: color-mix(in srgb, var(--accent) 48%, var(--line)); transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.concept-entry-grid span { color: var(--accent-ink); font-size: 12px; font-weight: 750; }
.concept-entry-grid h3 { margin-top: 18px; letter-spacing: -.04em; }
.concept-entry-grid b { color: var(--accent-ink); font-size: 13px; }
.concept-entry-primary { grid-row: 1 / span 2; padding: 38px; display: flex; flex-direction: column; align-items: flex-start; background: linear-gradient(145deg, var(--surface), var(--accent-soft)) !important; }
.concept-entry-primary h3 { max-width: 620px; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.15; }
.concept-entry-primary p { max-width: 500px; margin-top: 18px; color: var(--text-soft); line-height: 1.75; }
.concept-entry-primary b { margin-top: auto; padding-top: 28px; }
.concept-entry-item { padding: 28px 30px; display: flex; flex-direction: column; align-items: flex-start; }
.concept-entry-item h3 { max-width: 420px; font-size: 23px; line-height: 1.35; }
.concept-entry-item b { margin-top: auto; padding-top: 20px; }

.concept-needs { border-top: 1px solid var(--line); }
.concept-need-list { border-top: 1px solid var(--line); }
.concept-need-row { min-height: 94px; display: grid; grid-template-columns: 100px minmax(260px, 1.2fr) minmax(130px, .55fr) 130px 48px; align-items: center; gap: 24px; border-bottom: 1px solid var(--line); transition: padding .2s ease, color .2s ease; }
.concept-need-row:hover { padding-inline: 10px; color: var(--accent-ink); }
.concept-need-row > span { color: var(--accent-ink); font-size: 12px; font-weight: 750; }
.concept-need-row > strong { font-size: 17px; }
.concept-need-row > small, .concept-need-row > time { color: var(--text-soft); font-size: 12px; }
.concept-need-row > b { color: var(--accent); font-size: 12px; text-align: right; }
.concept-more-link { margin-top: 24px; display: inline-flex; color: var(--accent-ink); font-size: 13px; font-weight: 750; }

.concept-match { padding-block: 110px; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(44px, 7vw, 100px); border-top: 1px solid var(--line); }
.concept-match-image { min-height: 500px; overflow: hidden; border-radius: 16px; background: var(--surface-muted); }
.concept-match-image img { width: 100%; height: 100%; min-height: 500px; object-fit: cover; object-position: center; }
.concept-match-copy > span, .concept-case-copy > span, .concept-outcome-lead > span { color: var(--accent-ink); font-size: 12px; font-weight: 750; }
.concept-match-copy h2, .concept-case-copy h2, .concept-outcome-lead h2 { margin-top: 15px; font-size: clamp(34px, 4.2vw, 54px); line-height: 1.14; letter-spacing: -.055em; }
.concept-match-copy > p, .concept-case-copy > p { max-width: 600px; margin-top: 20px; color: var(--text-soft); font-size: 16px; line-height: 1.8; }
.concept-match-copy dl { margin-top: 34px; }
.concept-match-copy dl div { padding-block: 18px; display: grid; grid-template-columns: 130px 1fr; gap: 20px; border-top: 1px solid var(--line); }
.concept-match-copy dl div:last-child { border-bottom: 1px solid var(--line); }
.concept-match-copy dt { color: var(--text); font-weight: 750; }
.concept-match-copy dd { color: var(--text-soft); font-size: 13px; line-height: 1.6; }

.concept-outcomes { margin-bottom: 110px; padding: 48px; display: grid; grid-template-columns: .8fr 1.2fr; align-items: end; gap: 60px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line)); border-radius: 16px; background: var(--accent-soft); }
.concept-outcome-lead h2 { max-width: 470px; font-size: clamp(30px, 3.4vw, 44px); }
.concept-outcome-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 34px; }
.concept-outcome-metrics div { padding-top: 18px; border-top: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line)); }
.concept-outcome-metrics dt { color: var(--accent-ink); font-size: 34px; font-weight: 800; letter-spacing: -.05em; }
.concept-outcome-metrics dd { margin-top: 5px; color: var(--text-soft); font-size: 12px; }

.concept-case { padding-block: 20px 110px; display: grid; grid-template-columns: .72fr 1.28fr; align-items: center; gap: clamp(44px, 7vw, 100px); }
.concept-case-copy .concept-text-link { margin-top: 28px; display: inline-flex; }
.concept-case-media { min-height: 430px; overflow: hidden; border-radius: 16px; background: var(--surface-muted); }
.concept-case-media img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; }

.concept-closing { margin-bottom: 110px; padding-block: 42px; display: flex; align-items: center; justify-content: space-between; gap: 34px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.concept-closing h2 { font-size: clamp(30px, 3.7vw, 46px); letter-spacing: -.05em; }
.concept-closing p { margin-top: 10px; color: var(--text-soft); }

:root[data-theme="dark"] .concept-hero-note { color: #edf3ff; border-color: #30415b; background: rgba(18,28,45,.94); box-shadow: 0 16px 40px rgba(0,0,0,.28); }
:root[data-theme="dark"] .concept-hero-note p, :root[data-theme="dark"] .concept-hero-note small { color: #b0bdd0; }
:root[data-theme="dark"] .concept-carousel-dots, :root[data-theme="dark"] .concept-carousel-actions button { color: #d7e4ff; border-color: rgba(139,168,215,.32); background: rgba(18,28,45,.8); box-shadow: 0 8px 24px rgba(0,0,0,.2); }
:root[data-theme="dark"] .concept-carousel-dots button { background: #52637c; }
:root[data-theme="dark"] .concept-carousel-dots button.active { background: #7fa6ff; }
:root[data-theme="dark"] .concept-carousel-actions button:hover { color: #fff; border-color: #4f86f7; background: #2c67de; }

@media (max-width: 1050px) {
  .concept-hero { grid-template-columns: 1fr 1fr; gap: 32px; }
  .concept-hero h1 { font-size: clamp(46px, 6.2vw, 68px); }
  .concept-hero-media, .concept-carousel-slide, .concept-carousel-slide > img { min-height: 470px; }
  .concept-need-row { grid-template-columns: 90px 1fr 120px 50px; }
  .concept-need-row > small { display: none; }
}

@media (max-width: 820px) {
  .concept-hero { min-height: auto; padding-block: 54px 74px; grid-template-columns: 1fr; }
  .concept-hero-media { min-height: 460px; }
  .concept-entry, .concept-needs { padding-block: 78px; }
  .concept-entry-grid { min-height: auto; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; }
  .concept-entry-primary { grid-row: auto; grid-column: 1 / -1; min-height: 340px; }
  .concept-match, .concept-case { grid-template-columns: 1fr; gap: 40px; }
  .concept-match-copy { order: -1; }
  .concept-outcomes { grid-template-columns: 1fr; gap: 38px; }
  .concept-case-copy { max-width: 680px; }
}

@media (max-width: 620px) {
  .concept-hero { padding-top: 42px; }
  .concept-eyebrow { margin-bottom: 18px; }
  .concept-hero h1 { font-size: clamp(42px, 13.2vw, 58px); }
  .concept-hero-copy > p:not(.concept-eyebrow) { margin-top: 20px; font-size: 16px; }
  .concept-hero-actions { align-items: stretch; flex-direction: column; gap: 14px; }
  .concept-hero-actions .button { width: 100%; }
  .concept-hero-actions .concept-text-link { align-self: center; }
  .concept-hero-media, .concept-carousel-slide, .concept-carousel-slide > img { min-height: 430px; }
  .concept-hero-note { right: 12px; bottom: 12px; left: 12px; padding: 17px; }
  .concept-hero-note { grid-template-columns: 1fr; gap: 13px; }
  .concept-hero-note h2 { font-size: 18px; white-space: normal; }
  .concept-hero-note p { display: -webkit-box; white-space: normal; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .concept-hero-stat { display: flex; align-items: baseline; gap: 8px; text-align: left; }
  .concept-hero-stat strong { font-size: 24px; }
  .concept-carousel-controls { inset: 12px 12px auto; }
  .concept-carousel-dots { padding: 7px 9px; }
  .concept-carousel-dots button { width: 16px; }
  .concept-carousel-dots button.active { width: 28px; }
  .concept-carousel-actions { gap: 5px; }
  .concept-carousel-actions button { width: 34px; height: 34px; }
  .concept-entry-grid { display: grid; grid-template-columns: 1fr; }
  .concept-entry-primary { grid-column: auto; min-height: 330px; padding: 26px; }
  .concept-entry-item { min-height: 190px; padding: 24px; }
  .concept-section-heading { margin-bottom: 28px; }
  .concept-need-row { min-height: 120px; padding-block: 20px; grid-template-columns: 1fr auto; gap: 8px 18px; }
  .concept-need-row:hover { padding-inline: 0; }
  .concept-need-row > strong { grid-column: 1 / -1; }
  .concept-need-row > time { grid-column: 1; }
  .concept-need-row > b { grid-column: 2; grid-row: 1; }
  .concept-match { padding-block: 82px; }
  .concept-match-image, .concept-match-image img { min-height: 330px; }
  .concept-match-copy dl div { grid-template-columns: 1fr; gap: 7px; }
  .concept-outcomes { margin-bottom: 82px; padding: 28px 24px; }
  .concept-outcome-metrics { gap: 22px 16px; }
  .concept-outcome-metrics dt { font-size: 28px; }
  .concept-case { padding-bottom: 82px; }
  .concept-case-media, .concept-case-media img { min-height: 290px; }
  .concept-closing { margin-bottom: 82px; align-items: stretch; flex-direction: column; }
  .concept-closing .button { width: 100%; }
}

@media (prefers-reduced-transparency: reduce) {
  .concept-hero-note, .concept-carousel-dots, .concept-carousel-actions button { backdrop-filter: none; }
  .concept-hero-note { color: #10203a; background: #fafcff; }
  .concept-carousel-dots, .concept-carousel-actions button { background: #fafcff; }
  :root[data-theme="dark"] .concept-hero-note { color: #edf3ff; background: #121c2d; }
  :root[data-theme="dark"] .concept-carousel-dots, :root[data-theme="dark"] .concept-carousel-actions button { background: #121c2d; }
}

@media (prefers-reduced-motion: reduce) {
  .concept-carousel-stage, .concept-carousel-slide > img { transition: none; }
  .concept-carousel-stage.switching { opacity: 1; transform: none; }
}
