/* Hubpile v31 marketplace design system. Scope strictly to two public listing pages. */
:root { --hp31-ink:#101d32; --hp31-subtle:#5c6d82; --hp31-line:#e5ebf3; --hp31-paper:#ffffff; --hp31-blue:#1976f7; --hp31-radius:22px; --hp31-shadow:0 15px 48px rgba(16,40,70,.055); }
.hp31-market { background:#f7f9fc; color:var(--hp31-ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
.hp31-market * { box-sizing:border-box; }
.hp31-market :is(a,button,input,select,summary):focus-visible { outline:3px solid #6baaff; outline-offset:3px; }
.hp31-market :is(a,button) { -webkit-tap-highlight-color:transparent; }
.hp31-market :is(.hpf-wrap,.dpm-wrap) { width:min(1260px,calc(100% - 64px)); margin-inline:auto; }
.hp31-market :is(.hpf-title,.dpm-section-head h2,.dpm-intro h2) { letter-spacing:-.045em; color:#132136; line-height:1.08; font-weight:850; text-wrap:balance; }
.hp31-market :is(.hpf-lead,.dpm-section-head p,.dpm-intro p) { color:var(--hp31-subtle); line-height:1.7; }
.hp31-market :is(.hpf-eyebrow,.dpm-eyebrow) { letter-spacing:.16em; font-size:11px; font-weight:850; text-transform:uppercase; }
.hp31-market :is(.hpf-section,.dpm-section) { scroll-margin-top:110px; }
.hp31-market :is(.hpf-card,.dpm-product,.dpm-intro-card,.dpm-filter-shell,.dpm-category,.dpm-creator-card) { box-shadow:var(--hp31-shadow); }
.hp31-market .hp31-hero-utilities { display:flex; gap:20px; align-items:center; flex-wrap:wrap; margin-top:21px; }
.hp31-market .hp31-hero-utilities a { font-size:12px; font-weight:800; color:#a5f7d1; text-decoration:none; border-bottom:1px solid rgba(165,247,209,.4); padding:0 0 6px; }
.hp31-market .hp31-hero-utilities a:hover { color:#fff; border-bottom-color:#fff; }
.hp31-market .hp31-hero-utilities--light a { color:#a6cbff; border-color:rgba(166,203,255,.4); }
.hp31-market .hp31-market-status { font-size:12px; color:#68768a; font-weight:750; margin:0 0 13px; }
.hp31-market [data-hp-market-results][aria-busy="true"] { opacity:.55; pointer-events:none; transition:opacity .18s ease; }
.hp31-market [data-hp-market-form][aria-busy="true"] { opacity:.72; }
.hp31-market .hp31-sr-status { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
/* Course marketplace: dramatic green-black editorial hero and substantial search */
.hp31-courses { --hpf-green:#0b9869; --hpf-ink:#132136; --hpf-line:#e3eae7; }
.hp31-courses .hpf-market-hero { position:relative; isolation:isolate; padding:91px 0 100px; background:radial-gradient(ellipse at 84% 23%,rgba(35,168,137,.27),transparent 34%),radial-gradient(ellipse at 3% 89%,rgba(0,165,120,.12),transparent 34%),linear-gradient(120deg,#081b1a 0%,#082b26 52%,#073e33 100%); overflow:hidden; }
.hp31-courses .hpf-market-hero::before { content:""; position:absolute; pointer-events:none; inset:0; opacity:.11; background-image:linear-gradient(rgba(255,255,255,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px); background-size:86px 86px; mask-image:linear-gradient(90deg,transparent 25%,black 100%); }
.hp31-courses .hpf-market-grid { position:relative; display:grid; grid-template-columns:minmax(0,1.18fr) minmax(315px,.82fr); gap:clamp(28px,5vw,90px); align-items:center; }
.hp31-courses .hpf-market-hero .hpf-badge.dark { background:rgba(110,230,180,.1); border:1px solid rgba(139,251,205,.3); color:#b6f8d8; border-radius:999px; padding:8px 14px; }
.hp31-courses .hpf-market-hero h1 { max-width:13ch; font-size:clamp(48px,5.7vw,82px); font-weight:850; line-height:1.035; letter-spacing:-.067em; margin:21px 0 20px; text-wrap:balance; }
.hp31-courses .hpf-market-hero h1 em { font-style:normal; color:#8de4c1; }
.hp31-courses .hpf-market-hero p { font-size:clamp(15px,1.3vw,18px); line-height:1.72; max-width:600px; color:#c5ddd3; }
.hp31-courses .hpf-searchbar { margin-top:33px; max-width:610px; min-height:62px; border:1px solid rgba(255,255,255,.26); background:#fff; padding:6px; border-radius:17px; box-shadow:0 21px 45px rgba(0,8,5,.15); }
.hp31-courses .hpf-searchbar input { color:#182b3c; background:transparent; font-size:14px; }
.hp31-courses .hpf-searchbar input::placeholder { color:#8c99a7; }
.hp31-courses .hpf-searchbar button { padding:13px 22px; color:#fff; background:#087e5f; border-radius:11px; font-size:13px; letter-spacing:0; min-width:135px; }
.hp31-courses .hpf-searchbar button:hover { background:#065f46; }
.hp31-courses .hpf-hero-panel { background:rgba(244,255,252,.08); border:1px solid rgba(231,255,248,.22); border-radius:26px; padding:26px; box-shadow:0 35px 75px rgba(0,16,12,.2); backdrop-filter:blur(15px); }
.hp31-courses .hpf-hero-panel>.hpf-eyebrow { color:#b6efdc !important; margin-bottom:8px; }
.hp31-courses .hpf-hero-statgrid { gap:12px; }
.hp31-courses .hpf-hero-stat { min-height:123px; background:rgba(255,255,255,.11); border:1px solid rgba(255,255,255,.13); border-radius:17px; padding:23px 20px; }
.hp31-courses .hpf-hero-stat strong { font-size:clamp(27px,3vw,39px); font-weight:850; letter-spacing:-.055em; color:#fff; }
.hp31-courses .hpf-hero-stat span { line-height:1.4; color:#b6d3ca; font-size:11px; }
.hp31-courses .hp31-course-filters { position:relative; padding-top:30px; background:#f8fafb; }
.hp31-courses .hpf-topic-strip { padding:0 0 17px; gap:8px; scroll-padding-inline:4px; }
.hp31-courses .hpf-topic-strip a { color:#4a5b68; background:#fff; border:1px solid #e1e9eb; font-weight:720; padding:11px 16px; border-radius:999px; }
.hp31-courses .hpf-topic-strip a:hover { color:#086f59; background:#edfaf5; border-color:#b8e5d3; }
.hp31-courses .hpf-filterbar { background:#fff; border:1px solid #e1e9eb; border-radius:22px; padding:19px; grid-template-columns:minmax(185px,2fr) repeat(4,minmax(108px,1fr)) auto; gap:12px; }
.hp31-courses .hpf-field label { font-size:10px; margin-bottom:9px; color:#5a6d76; letter-spacing:.11em; }
.hp31-courses .hpf-input { height:48px; font-size:13px; border:1px solid #dce6e7; border-radius:11px; color:#142b32; }
.hp31-courses .hpf-input:focus { border-color:#099874; box-shadow:0 0 0 3px rgba(9,152,116,.12); }
.hp31-courses .hpf-filterbar .hpf-btn { min-height:48px; border-radius:11px; }
.hp31-courses .hp31-course-library { padding:40px 0 80px !important; background:#f8fafb; }
.hp31-courses .hpf-head { margin-bottom:24px; }
.hp31-courses .hpf-title { font-size:clamp(30px,3.4vw,49px); }
.hp31-courses .hpf-course-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:22px; }
.hp31-courses .hpf-course-card { background:#fff; border:1px solid #e3ebed; border-radius:20px; min-height:100%; box-shadow:0 12px 32px rgba(13,33,39,.046); transform:translateZ(0); }
.hp31-courses .hpf-course-card:hover { transform:translateY(-4px); border-color:#c5ddd6; box-shadow:0 24px 55px rgba(8,55,42,.12); }
.hp31-courses .hpf-course-media { aspect-ratio:16/10; background:linear-gradient(135deg,#d9e8e3,#8fb8ab); }
.hp31-courses .hpf-course-media img { object-fit:cover; }
.hp31-courses .hpf-course-overlay { background:linear-gradient(180deg,rgba(5,22,20,.05),transparent 60%,rgba(2,30,21,.28)); }
.hp31-courses .hpf-course-badges .hpf-badge { box-shadow:0 5px 15px rgba(0,0,0,.08); font-weight:800; }
.hp31-courses .hpf-preview-play { width:39px; height:39px; background:rgba(255,255,255,.95); font-size:14px; }
.hp31-courses .hpf-course-body { padding:23px 22px 21px; }
.hp31-courses .hpf-course-meta { align-items:center; gap:7px; color:#667989; font-size:10px; }
.hp31-courses .hpf-course-meta span { border-radius:6px; background:#f1f6f5; padding:5px 7px; }
.hp31-courses .hpf-course-card h3 { font-size:19px; letter-spacing:-.035em; font-weight:800; line-height:1.3; margin:16px 0 9px; min-height:2.6em; }
.hp31-courses .hpf-course-card h3 a:hover { color:#077d60; }
.hp31-courses .hpf-course-desc { font-size:12px; line-height:1.65; color:#65778a; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; min-height:3.6em; }
.hp31-courses .hpf-instructor-link { color:#31586a; font-size:12px; margin-bottom:3px; }
.hp31-courses .hpf-card-actions { gap:8px; margin:16px 0; }
.hp31-courses .hpf-card-link { min-height:39px; padding:8px 13px; border-radius:9px; }
.hp31-courses .hpf-card-link.primary { background:#0e765e; color:#fff; border-color:#0e765e; }
.hp31-courses .hpf-card-link.primary:hover { background:#07583f; }
.hp31-courses .hpf-course-foot { margin-top:auto; padding-top:15px; align-items:center; }
.hp31-courses .hpf-price { font-size:23px; letter-spacing:-.04em; color:#0c2830; }
.hp31-courses .hpf-rating { line-height:1.45; color:#5e7283; }
.hp31-courses .hpf-creators { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.hp31-courses .hpf-creator-card { border:1px solid #e2eaf0; border-radius:17px; min-height:106px; }
.hp31-courses .hpf-creator-card:hover { box-shadow:0 12px 32px rgba(13,39,49,.1); border-color:#9ed9c3; }
.hp31-courses .hpf-pagination a { border-radius:10px; }
.hp31-courses .hpf-pagination .current { background:#086b55; border-color:#086b55; }
/* Digital-products marketplace: gallery/shop contrast, dimensional product cards. */
.hp31-products { --dpm-max:1260px; --dpm-bg:#fbfcfe; --dpm-text:#101d32; --dpm-muted:#65758a; --dpm-line:#e2e9f1; --dpm-brand:#1976f7; --dpm-brand-dark:#095cd1; --dpm-shadow:0 15px 48px rgba(16,40,70,.055); }
.hp31-products .dpm-hero { position:relative; background:radial-gradient(ellipse at 87% 10%,rgba(70,148,250,.31),transparent 38%),radial-gradient(ellipse at 4% 90%,rgba(26,103,187,.17),transparent 34%),linear-gradient(118deg,#071729 5%,#0a2141 57%,#122f5e 100%); padding:92px 0 105px; }
.hp31-products .dpm-hero:before { content:""; pointer-events:none; position:absolute; inset:0; opacity:.085; background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px); background-size:82px 82px; mask-image:linear-gradient(90deg,transparent 25%,black 100%); }
.hp31-products .dpm-hero-grid { grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr); gap:clamp(28px,5vw,84px); }
.hp31-products .dpm-hero h1 { font-size:clamp(48px,6vw,82px); line-height:1.04; letter-spacing:-.065em; max-width:800px; font-weight:850; text-wrap:balance; }
.hp31-products .dpm-hero h1 span { color:#96c5ff; }
.hp31-products .dpm-hero-copy { font-size:clamp(15px,1.25vw,18px); line-height:1.72; color:#cadaed; max-width:610px; }
.hp31-products .dpm-hero-actions { margin-top:28px; gap:11px; flex-wrap:wrap; }
.hp31-products .dpm-hero-actions .dpm-btn { min-height:49px; padding:12px 21px; font-size:13px; border-radius:11px; }
.hp31-products .dpm-hero-actions .dpm-btn-ghost { border-color:rgba(255,255,255,.21); background:rgba(255,255,255,.095); color:#fff; }
.hp31-products .dpm-hero-actions .dpm-btn-ghost:hover { background:rgba(255,255,255,.17); }
.hp31-products .dpm-proof { gap:15px; margin-top:21px; }
.hp31-products .dpm-proof span { color:#cbd9eb; font-size:11px; }
.hp31-products .dpm-hero-showcase { background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.16); border-radius:27px; padding:20px; box-shadow:0 40px 75px rgba(0,9,30,.3); }
.hp31-products .dpm-showcase-head { padding:4px 4px 18px; }
.hp31-products .dpm-showcase-head strong { font-size:15px; color:#fff; }
.hp31-products .dpm-showcase-head span { color:#9fb6d6; }
.hp31-products .dpm-showcase-list { gap:11px; }
.hp31-products .dpm-showcase-item { grid-template-columns:90px 1fr auto; gap:15px; padding:10px; border:1px solid rgba(255,255,255,.65); border-radius:17px; transition:transform .18s ease,box-shadow .18s ease; }
.hp31-products .dpm-showcase-item:hover { transform:translateX(-3px); box-shadow:0 13px 30px rgba(0,0,0,.1); }
.hp31-products .dpm-showcase-item img { width:90px; height:74px; object-fit:cover; border-radius:11px; }
.hp31-products .dpm-showcase-item h3 { font-size:13px; line-height:1.4; }
.hp31-products .dpm-showcase-price { font-size:12px; white-space:nowrap; color:#0d3662; }
.hp31-products .dpm-stats-wrap { margin-top:-39px; }
.hp31-products .dpm-stats { gap:15px; }
.hp31-products .dpm-stat { border-radius:17px; border:1px solid #e4eaf1; padding:22px; }
.hp31-products .dpm-stat strong { font-size:33px; letter-spacing:-.05em; color:#162944; }
.hp31-products .dpm-stat span { font-size:11px; color:#61768e; }
.hp31-products .dpm-section { padding:75px 0; }
.hp31-products .dpm-intro { gap:75px; }
.hp31-products .dpm-intro h2 { max-width:15ch; font-size:clamp(30px,3.9vw,55px); }
.hp31-products .dpm-intro-card { border-radius:24px; padding:31px; }
.hp31-products .dpm-intro-point { gap:15px; }
.hp31-products .dpm-intro-point i { border-radius:11px; width:41px; height:41px; background:#ebf3ff; color:#176ad9; }
.hp31-products .dpm-shop { background:#f5f8fc; border-color:#e7edf4; }
.hp31-products .dpm-section-head h2 { max-width:19ch; font-size:clamp(32px,3.8vw,50px); }
.hp31-products .dpm-filter-shell { border-radius:21px; padding:19px; border:1px solid #e3eaf3; box-shadow:0 14px 38px rgba(14,35,65,.055); }
.hp31-products .dpm-filter-form { grid-template-columns:minmax(195px,2fr) repeat(4,minmax(110px,1fr)) auto; gap:11px; }
.hp31-products .dpm-filter-form .hp31-filter-field { display:flex; flex-direction:column; gap:7px; min-width:0; color:#60718a; font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.hp31-products .dpm-filter-form .hp31-filter-field .dpm-input { letter-spacing:normal; font-weight:550; text-transform:none; }
.hp31-products .dpm-filter-form > button { align-self:end; }

.hp31-products .dpm-input { min-height:49px; border-radius:11px; border:1px solid #dce4ee; font-size:12px; color:#233754; }
.hp31-products .dpm-input:focus { border-color:#3181ff; box-shadow:0 0 0 3px rgba(45,132,253,.12); }
.hp31-products .dpm-filter-form .dpm-btn { border-radius:11px; min-height:49px; }
.hp31-products .hp31-quicklinks { display:flex; gap:9px; overflow-x:auto; padding:0 1px 18px; scrollbar-width:thin; }
.hp31-products .hp31-quicklinks a { flex-shrink:0; background:#fff; color:#31577b; border:1px solid #dce6f0; padding:10px 15px; font-size:12px; font-weight:780; text-decoration:none; border-radius:999px; }
.hp31-products .hp31-quicklinks a:hover { color:#075ec7; background:#eaf3ff; border-color:#aaccf8; }
.hp31-products .dpm-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.hp31-products .dpm-product { width:100%; max-width:none; border-radius:21px; border:1px solid #e4eaf0; box-shadow:0 13px 38px rgba(13,34,58,.055); }
.hp31-products .dpm-product:hover { transform:translateY(-5px); box-shadow:0 28px 60px rgba(12,38,69,.125); border-color:#b9d4f3; }
.hp31-products .dpm-product-media { aspect-ratio:16/10; background:linear-gradient(120deg,#0e345b,#1176e7); }
.hp31-products .dpm-product-media img { width:100%; height:100%; object-fit:cover; }
.hp31-products .dpm-product-body { padding:23px 21px 20px; }
.hp31-products .dpm-product h3 { font-size:19px; line-height:1.3; letter-spacing:-.03em; font-weight:850; min-height:2.55em; }
.hp31-products .dpm-product p { font-size:12px; line-height:1.64; min-height:3.3em; }
.hp31-products .dpm-creator-mini { font-size:12px; margin-bottom:12px; }
.hp31-products .dpm-creator-mini img { width:30px; height:30px; }
.hp31-products .dpm-card-meta span { font-size:10px; background:#f0f5fb; color:#5e728c; }
.hp31-products .dpm-price strong { font-size:24px; letter-spacing:-.05em; }
.hp31-products .dpm-card-footer { align-items:center; gap:12px; }
.hp31-products .dpm-card-actions { gap:7px; }
.hp31-products .dpm-card-actions .dpm-btn { min-height:39px; font-size:11px; border-radius:9px; padding:9px 12px; }
.hp31-products .dpm-card-actions .dpm-btn-primary { background:#0d6ce0; }
.hp31-products .dpm-category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.hp31-products .dpm-category { border-radius:21px; padding:24px; min-height:204px; }
.hp31-products .dpm-category:hover { border-color:#b7d5f7; box-shadow:0 15px 40px rgba(24,96,155,.09); }
.hp31-products .dpm-category b { width:45px; height:45px; background:#eaf3ff; border-radius:12px; }
.hp31-products .dpm-category h3 { font-size:19px; letter-spacing:-.025em; }
.hp31-products .dpm-category p { line-height:1.6; }
.hp31-products .dpm-dark { background:linear-gradient(120deg,#081b32,#0e315a); }
.hp31-products .dpm-dark .dpm-section-head h2 { color:#fff; }
.hp31-products .dpm-creator-card { max-width:none; border-radius:18px; }
.hp31-products .dpm-dual-card { padding:39px; border-radius:25px; min-height:286px; }
.hp31-products .dpm-dual-card h2 { font-size:clamp(25px,2.8vw,38px); }
.hp31-products .dpm-faq details { padding:20px 22px; border-radius:15px; }
.hp31-products .dpm-faq summary { font-size:14px; }
.hp31-products .dpm-cart-pill { background:#0e2f58; box-shadow:0 13px 36px rgba(12,40,78,.3); }
/* Shared responsive behaviour. Avoid horizontal page overflow and cramped form controls. */
@media(max-width:1120px) {
 .hp31-market :is(.hpf-wrap,.dpm-wrap) { width:min(100% - 42px,1260px); }
 .hp31-courses .hpf-market-grid, .hp31-products .dpm-hero-grid { gap:30px; grid-template-columns:minmax(0,1fr) minmax(275px,.85fr); }
 .hp31-courses .hpf-filterbar { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .hp31-products .dpm-filter-form { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .hp31-courses .hpf-course-grid, .hp31-products .dpm-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
 .hp31-courses .hpf-creators { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media(max-width:800px) {
 .hp31-market :is(.hpf-wrap,.dpm-wrap) { width:min(100% - 36px,1260px); }
 .hp31-courses .hpf-market-grid, .hp31-products .dpm-hero-grid { grid-template-columns:1fr; }
 .hp31-courses .hpf-market-hero, .hp31-products .dpm-hero { padding:65px 0 85px; }
 .hp31-courses .hpf-hero-panel { max-width:690px; }
 .hp31-products .dpm-hero-showcase { max-width:690px; }
 .hp31-products .dpm-intro { gap:27px; grid-template-columns:1fr; }
 .hp31-products .dpm-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .hp31-products .dpm-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .hp31-products .dpm-dual { grid-template-columns:1fr; }
 .hp31-products .dpm-section { padding:60px 0; }
 .hp31-products .dpm-section-head { display:block; }
}
@media(max-width:600px) {
 .hp31-market :is(.hpf-wrap,.dpm-wrap) { width:min(100% - 30px,1260px); }
 .hp31-courses .hpf-market-hero, .hp31-products .dpm-hero { padding:48px 0 68px; }
 .hp31-courses .hpf-market-hero h1, .hp31-products .dpm-hero h1 { font-size:clamp(39px,10.8vw,57px); max-width:100%; letter-spacing:-.06em; }
 .hp31-courses .hpf-market-hero p, .hp31-products .dpm-hero-copy { font-size:14px; line-height:1.66; }
 .hp31-courses .hpf-searchbar { grid-template-columns:1fr; padding:7px; }
 .hp31-courses .hpf-searchbar input { min-height:42px; }
 .hp31-courses .hpf-searchbar button { min-height:45px; width:100%; }
 .hp31-market .hp31-hero-utilities { gap:12px 19px; }
 .hp31-courses .hpf-hero-panel { padding:17px; border-radius:20px; }
 .hp31-courses .hpf-hero-stat { min-height:106px; padding:16px; }
 .hp31-courses .hpf-hero-stat strong { font-size:30px; }
 .hp31-courses .hpf-filterbar { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:14px; }
 .hp31-courses .hpf-filterbar .hpf-field:first-child { grid-column:1/-1; }
 .hp31-courses .hpf-filterbar button,.hp31-courses .hpf-filterbar .hpf-btn { width:100%; }
 .hp31-courses .hpf-course-grid, .hp31-products .dpm-product-grid { grid-template-columns:1fr !important; gap:17px; }
 .hp31-courses .hpf-course-card h3 { min-height:0; }
 .hp31-courses .hpf-creators { grid-template-columns:1fr !important; }
 .hp31-courses .hpf-course-body { padding:19px; }
 .hp31-courses .hp31-course-library { padding:32px 0 54px !important; }
 .hp31-products .dpm-showcase-item { grid-template-columns:68px 1fr; gap:10px; }
 .hp31-products .dpm-showcase-item img { width:68px; height:66px; }
 .hp31-products .dpm-showcase-price { grid-column:2; padding:0; font-size:11px; }
 .hp31-products .dpm-proof { flex-wrap:wrap; }
 .hp31-products .dpm-stats { gap:9px; }
 .hp31-products .dpm-stat { padding:15px; }
 .hp31-products .dpm-stat strong { font-size:26px; }
 .hp31-products .dpm-filter-form { grid-template-columns:1fr 1fr; }
 .hp31-products .dpm-filter-form .hp31-filter-field--search { grid-column:1/-1; }
 .hp31-products .dpm-filter-form button { grid-column:1/-1; }
 .hp31-products .dpm-category-grid { grid-template-columns:1fr; }
 .hp31-products .dpm-category { min-height:160px; }
 .hp31-products .dpm-product h3 { min-height:0; }
 .hp31-products .dpm-card-footer { flex-wrap:wrap; }
 .hp31-products .dpm-card-actions { width:100%; }
 .hp31-products .dpm-card-actions form { flex:1; }
 .hp31-products .dpm-card-actions :is(.dpm-btn,form .dpm-btn) { min-width:88px; }
 .hp31-products .dpm-section { padding:50px 0; }
 .hp31-products .dpm-dual-card { padding:27px; }
 .hp31-products .dpm-cart-pill { bottom:12px; right:12px; }
}
@media(max-width:390px) {
 .hp31-courses .hpf-filterbar,.hp31-products .dpm-filter-form { grid-template-columns:1fr; }
 .hp31-courses .hpf-hero-statgrid { gap:8px; }
 .hp31-products .dpm-showcase-price { display:block; }
 .hp31-market :is(.hpf-wrap,.dpm-wrap) { width:min(100% - 26px,1260px); }
}
@media(prefers-reduced-motion:reduce) {
 .hp31-market *, .hp31-market *::before, .hp31-market *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
/* Legacy course v3.3 selectors use body specificity; take precedence for filter layout. */
@media(min-width:1121px) {
 body.hp31-courses.hpf-catalog-v32 .hpf-filterbar { grid-template-columns:minmax(180px,1.7fr) repeat(5,minmax(95px,1fr)) auto; }
 body.hp31-courses.hpf-catalog-v32 .hpf-filterbar > .hpf-btn { grid-column:auto; justify-self:stretch; min-width:112px; }
}
@media(min-width:601px) and (max-width:1120px) {
 body.hp31-courses.hpf-catalog-v32 .hpf-filterbar { grid-template-columns:repeat(3,minmax(0,1fr)); }
 body.hp31-courses.hpf-catalog-v32 .hpf-filterbar > .hpf-btn { grid-column:auto; width:100%; justify-self:stretch; }
}
@media(min-width:391px) and (max-width:600px) {
 body.hp31-courses.hpf-catalog-v32 .hpf-filterbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.hp31-courses.hpf-catalog-v32 .hpf-filterbar > .hpf-field:first-child { grid-column:1/-1; }
 body.hp31-courses.hpf-catalog-v32 .hpf-filterbar > .hpf-btn { grid-column:1/-1; width:100%; }
}
