/* Rabbit Hole Local Jobs — built on the theme's own palette variables so it
   follows any future rebrand. Mobile first throughout. */

.rhj{
 --j-brand: var(--theme-palette-color-1, #661E9A);
 --j-brand-dark: var(--theme-palette-color-2, #4A1570);
 --j-ink: var(--theme-palette-color-4, #111);
 --j-body: var(--theme-palette-color-3, #2b2b2b);
 --j-line: var(--theme-palette-color-5, #e1e8ed);
 --j-tint: var(--theme-palette-color-6, #f2f5f7);
 --j-bg: var(--theme-palette-color-8, #fff);
 --j-ok: #1c5c2e; --j-okbg: #e8f6ec; --j-okline: #b7e0c2;
 --j-err: #8d1621; --j-errbg: #fdf3f3; --j-errline: #f0cfcf;
 --j-r: 10px;
 color: var(--j-body); max-width: 1180px; margin-inline: auto;
}
.rhj *{box-sizing:border-box}
.rhj h2,.rhj h3,.rhj h4{color:var(--j-ink);line-height:1.2;margin:0}
.rhj [hidden]{display:none !important}

/* buttons */
.rhj-btn{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-height:48px;padding:12px 20px;border-radius:8px;border:1px solid var(--j-line);
 background:#fff;color:var(--j-body);font-size:.95rem;font-weight:700;
 text-decoration:none;cursor:pointer;font-family:inherit;
}
.rhj-btn:hover{border-color:var(--j-brand);color:var(--j-brand)}
.rhj-btn--primary{background:var(--j-brand);border-color:var(--j-brand);color:#fff}
.rhj-btn--primary:hover{background:var(--j-brand-dark);border-color:var(--j-brand-dark);color:#fff}
.rhj-btn--lg{min-height:54px;padding:15px 26px;font-size:1rem}
.rhj-btn--sm{min-height:40px;padding:8px 14px;font-size:.85rem}
.rhj-btn--danger:hover{border-color:var(--j-err);color:var(--j-err)}

/* notices */
.rhj-notice{padding:13px 15px;border-radius:8px;margin-bottom:18px;font-size:.94rem;font-weight:600}
.rhj-notice--ok{background:var(--j-okbg);border:1px solid var(--j-okline);color:var(--j-ok)}
.rhj-notice--err{background:var(--j-errbg);border:1px solid var(--j-errline);color:var(--j-err)}

/* ---------- search ---------- */
.rhj-search{background:var(--j-tint);border:1px solid var(--j-line);border-radius:var(--j-r);padding:16px;margin-bottom:18px}
.rhj-search__row{display:grid;grid-template-columns:1fr;gap:12px}
.rhj-search__row--filters{margin-top:12px;padding-top:12px;border-top:1px solid var(--j-line)}
.rhj-field label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.75;margin-bottom:5px}
.rhj input[type=text],.rhj input[type=search],.rhj input[type=email],.rhj input[type=url],
.rhj input[type=tel],.rhj input[type=password],.rhj input[type=number],.rhj input[type=date],
.rhj select,.rhj textarea{
 width:100%;font-size:16px;font-family:inherit;height:auto;min-height:50px;line-height:1.35;
 padding:14px;border:1px solid var(--j-line);border-radius:8px;background:#fff;color:var(--j-body);
}
.rhj textarea{min-height:120px;resize:vertical}
.rhj select{
 -webkit-appearance:none;appearance:none;padding-right:38px;
 background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23555' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 14px center;background-size:12px;
}
.rhj input:focus,.rhj select:focus,.rhj textarea:focus{outline:2px solid var(--j-brand);outline-offset:1px;border-color:var(--j-brand)}
.rhj-field--where{position:relative}
/* 44px minimum: this is the control for people searching for work near
   home on a phone, so it has to be comfortably tappable. */
.rhj-locate{
 position:absolute;right:6px;bottom:3px;min-height:44px;padding:0 12px;font-size:.78rem;font-weight:700;
 border:1px solid var(--j-line);border-radius:6px;background:#fff;color:var(--j-brand);cursor:pointer;
}
@media (max-width:639px){
 /* Full-width below the field on small screens rather than crowding it. */
 .rhj-field--where{position:relative;padding-bottom:52px}
 .rhj-locate{left:0;right:0;bottom:0;width:100%}
}
.rhj-locate:hover{border-color:var(--j-brand)}
.rhj-locate.is-busy{opacity:.6;pointer-events:none}
.rhj-clear{align-self:end;font-size:.87rem;font-weight:700;color:var(--j-brand);padding-bottom:14px}

/* ---------- results bar ---------- */
.rhj-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px}
.rhj-count{margin:0;font-size:.95rem}
.rhj-views{display:inline-flex;border:1px solid var(--j-line);border-radius:999px;overflow:hidden;background:#fff}
.rhj-viewbtn{padding:10px 20px;min-height:44px;display:inline-flex;align-items:center;font-size:.88rem;font-weight:700;text-decoration:none;color:var(--j-body)}
.rhj-viewbtn.is-active{background:var(--j-brand);color:#fff}

/* ---------- cards ---------- */
.rhj-list{display:grid;grid-template-columns:1fr;gap:12px}
.rhj-card{background:var(--j-bg);border:1px solid var(--j-line);border-radius:var(--j-r);padding:16px}
.rhj-card.is-featured{border-left:4px solid var(--j-brand)}
.rhj-card.is-active{border-color:var(--j-brand);box-shadow:0 0 0 2px rgba(102,30,154,.15)}
.rhj-card__head{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}
.rhj-card__title{font-size:1.08rem;font-weight:800;flex:1 1 auto}
.rhj-card__title a{color:var(--j-ink);text-decoration:none}
.rhj-card__title a:hover{color:var(--j-brand);text-decoration:underline}
.rhj-badge{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:4px 9px;border-radius:999px;background:var(--j-tint);color:var(--j-body);white-space:nowrap}
.rhj-badge--remote{background:var(--j-brand);color:#fff}
.rhj-card__co{margin:5px 0 0;font-weight:700;font-size:.95rem;color:var(--j-brand)}
.rhj-card__meta{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;padding:0;font-size:.85rem;opacity:.85}
.rhj-card__meta li{position:relative}
.rhj-meta-dist{font-weight:700;color:var(--j-brand);opacity:1}
.rhj-card__excerpt{margin:10px 0 0;font-size:.92rem;line-height:1.55}
.rhj-card__actions{margin-top:14px}
.rhj-card--compact{padding:14px}
.rhj-card--compact .rhj-card__actions{margin-top:10px}

.rhj-empty{padding:40px 20px;text-align:center;background:var(--j-tint);border-radius:var(--j-r)}
.rhj-pager{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:22px;flex-wrap:wrap}
.rhj-pager__at{font-size:.88rem;opacity:.75}

/* ---------- map ---------- */
.rhj-split{display:grid;grid-template-columns:1fr;gap:14px}
.rhj-split__list{display:grid;gap:10px;order:2}
.rhj-split__map{order:1}
.rhj-map{height:60vh;min-height:340px;border-radius:var(--j-r);border:1px solid var(--j-line);overflow:hidden;background:var(--j-tint)}
.rhj-map__attrib{margin:6px 0 0;font-size:.7rem;opacity:.65}
.rhj-map__attrib a{color:inherit}
.rhj-map__note{margin:6px 0 0;font-size:.82rem;opacity:.8}
.rhj-split__more{margin:12px 0 0;padding:12px;background:var(--j-tint);border-radius:8px;font-size:.85rem;line-height:1.5}
.rhj-pin{
 width:30px;height:30px;border-radius:50% 50% 50% 6px;transform:rotate(-45deg);
 background:var(--j-brand);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);cursor:pointer;
}
.rhj-pin.is-active{background:#8d1621;transform:rotate(-45deg) scale(1.18)}
.rhj-pop{font-family:inherit;min-width:210px}
.rhj-pop h4{margin:0 0 4px;font-size:1rem;line-height:1.25}
.rhj-pop h4 a{color:#111;text-decoration:none}
.rhj-pop__co{margin:0 0 6px;font-size:.85rem;font-weight:700;color:#661E9A}
.rhj-pop__meta{margin:0 0 10px;font-size:.8rem;color:#444}
.rhj-pop .rhj-btn{min-height:40px;padding:9px 14px;font-size:.85rem;width:100%}
.maplibregl-popup-content{border-radius:10px;padding:14px}

/* ---------- account & forms ---------- */
.rhj-panel{background:var(--j-bg);border:1px solid var(--j-line);border-radius:var(--j-r);padding:22px;max-width:640px;margin-inline:auto}
.rhj-postjob .rhj-panel{max-width:760px}
.rhj-panel h2{font-size:1.4rem}
.rhj-panel__sub{margin:8px 0 18px;font-size:.94rem;opacity:.85;line-height:1.55}
.rhj-panel__alt{margin:16px 0 0;font-size:.9rem}
.rhj-form label{display:block;font-size:.85rem;font-weight:700;margin:14px 0 5px}
.rhj-form .rhj-hint{margin:6px 0 0;font-size:.82rem;opacity:.7}
.rhj-form button[type=submit]{margin-top:20px}
.rhj-check{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;margin-top:14px}
.rhj-check input{width:auto;min-height:0}
.rhj-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden}
.rhj-fs{border:1px solid var(--j-line);border-radius:var(--j-r);padding:16px;margin:0 0 16px}
.rhj-fs legend{padding:0 8px;font-weight:800;font-size:.95rem;color:var(--j-ink)}
.rhj-grid3{display:grid;grid-template-columns:1fr;gap:0 12px}
.rhj-radios{display:grid;gap:8px}
.rhj-radio{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--j-line);border-radius:8px;font-weight:600;font-size:.92rem;cursor:pointer;margin:0}
.rhj-radio input{width:auto;min-height:0;margin:0}
.rhj-radio:has(input:checked){border-color:var(--j-brand);background:#faf7fd}
.rhj-form__submit{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px}

/* dashboard */
.rhj-dash{max-width:820px;margin-inline:auto}
.rhj-dash__head{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:flex-start;padding-bottom:16px;border-bottom:2px solid var(--j-line)}
.rhj-dash__actions{display:flex;gap:8px;flex-wrap:wrap}
.rhj-myjobs{margin-top:22px}
.rhj-myjobs h3{font-size:1.15rem;margin-bottom:12px}
.rhj-myjobs__list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.rhj-myjob{border:1px solid var(--j-line);border-radius:var(--j-r);padding:14px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.rhj-myjob h4{font-size:1rem}
.rhj-myjob__meta{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 0;font-size:.82rem;opacity:.8}
.rhj-myjob__actions{display:flex;gap:8px;flex-wrap:wrap}
.rhj-status{font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;padding:3px 8px;border-radius:999px}
.rhj-status--live{background:var(--j-okbg);color:var(--j-ok)}
.rhj-status--pending{background:#fff6e5;color:#8a5300}
.rhj-status--closed,.rhj-status--expired{background:var(--j-errbg);color:var(--j-err)}
.rhj-disclose{margin-top:24px;border:1px solid var(--j-line);border-radius:var(--j-r);background:var(--j-tint)}
.rhj-disclose>summary{cursor:pointer;padding:16px;font-weight:800;min-height:54px;display:flex;align-items:center}
.rhj-disclose .rhj-form{padding:0 16px 18px}

/* cta */
.rhj-cta{margin-top:32px;padding:24px;background:#faf7fd;border:1px solid #e6dcf2;border-radius:var(--j-r);text-align:center}
.rhj-cta h2{font-size:1.25rem}
.rhj-cta p{margin:8px 0 16px;font-size:.95rem}

/* single job */
.rhj-single{max-width:800px;margin-inline:auto}
.rhj-single__back{font-weight:700;font-size:.9rem;margin-bottom:14px}
.rhj-single__head{padding-bottom:18px;border-bottom:2px solid var(--j-line);margin-bottom:20px}
.rhj-single__title{font-size:1.65rem;font-weight:900;line-height:1.2}
.rhj-single__co{margin:8px 0 0;font-size:1.05rem;font-weight:700;color:var(--j-brand)}
.rhj-single__facts{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:8px}
.rhj-single__facts li{display:flex;gap:10px;font-size:.92rem}
.rhj-single__facts strong{min-width:88px;opacity:.65;font-weight:700}
.rhj-single__body h2{font-size:1.2rem;margin:22px 0 10px}
.rhj-apply{margin-top:26px;padding:20px;background:var(--j-tint);border-radius:var(--j-r)}
.rhj-apply h2{font-size:1.15rem;margin-bottom:12px}
.rhj-single__maplink{margin-top:20px;font-size:.9rem;font-weight:700}

@media (min-width:640px){
 .rhj-search__row{grid-template-columns:2fr 1.4fr 1fr auto;align-items:end}
 .rhj-search__row--filters{grid-template-columns:repeat(3,1fr) auto}
 .rhj-grid3{grid-template-columns:2fr 1fr 1fr}
 .rhj-single__facts{grid-template-columns:1fr 1fr}
 .rhj-list{grid-template-columns:1fr 1fr}
 .rhj-search__go{min-height:50px}
}
@media (min-width:1024px){
 .rhj-split{grid-template-columns:minmax(320px,400px) 1fr;align-items:start}
 .rhj-split__list{order:1;max-height:72vh;overflow-y:auto;padding-right:6px}
 .rhj-split__map{order:2;position:sticky;top:20px}
 .rhj-map{height:72vh}
 .rhj-list{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:reduce){.rhj *{transition:none!important}}
