:root{--brand:#ad1737;--deep:#79192e;--ink:#242833;--muted:#626b77;--line:#e1e4e9;--wash:#f6f7f9;--soft:#fff0f2}*{box-sizing:border-box}body{margin:0;background:var(--wash);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;font-size:15px;line-height:1.75}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button,.button{cursor:pointer}a{color:var(--brand);text-underline-offset:3px}button,.button{border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:9px 15px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:43px}button:hover,.button:hover{border-color:var(--brand);color:var(--brand)}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--brand);border-color:var(--brand);color:#fff}.primary:hover{background:var(--deep);color:white}.quiet{background:transparent}.small{font-size:12px;padding:5px 10px;min-height:32px}.wrap{max-width:1180px;margin:auto;padding:0 24px}.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:84px}.brand{font-size:30px;color:var(--brand);font-weight:900;letter-spacing:.04em;text-decoration:none}.brand small{font-size:11px;display:block;color:var(--muted);letter-spacing:.03em;line-height:1}.header-actions{display:flex;align-items:center;gap:12px;font-size:13px}.intro{background:#fff;border-bottom:1px solid var(--line);padding:34px 0 30px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--brand);margin:0 0 8px}h1{font-size:30px;line-height:1.5;letter-spacing:.02em;margin:0 0 8px}h2{font-size:21px;margin:0 0 16px;line-height:1.5}h3{font-size:18px;line-height:1.6;margin:0 0 10px}.muted{color:var(--muted)}.lead{margin:0;color:var(--muted)}.layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px;padding-top:28px;padding-bottom:64px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px}.filters{align-self:start}.filters h2{font-size:17px}.field{display:block;margin-bottom:15px}.field>span,.field>label{display:block;font-size:13px;font-weight:700;margin-bottom:5px}input,select,textarea{width:100%;border:1px solid #bbc2cd;border-radius:6px;padding:10px;background:#fff;color:var(--ink);min-height:44px}textarea{min-height:110px;resize:vertical}input[type=checkbox]{width:17px;min-height:17px;accent-color:var(--brand)}:focus-visible{outline:3px solid #e590a3;outline-offset:3px}.check{display:flex;align-items:center;gap:8px;font-size:13px;margin:9px 0}.checks{display:flex;flex-wrap:wrap;gap:3px 18px}.full{width:100%}.filter-line{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.result-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.result-bar h2{margin:0}.result-bar select{width:auto}.chip{display:inline-block;font-size:11px;background:var(--wash);border-radius:4px;padding:3px 9px;color:#495262;margin:0 5px 5px 0}.chip.brand-chip{background:var(--soft);color:var(--brand)}.job{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:16px;overflow:hidden}.job-top{padding:23px;display:grid;grid-template-columns:minmax(0,1fr) 158px;gap:20px}.job-top.no-photo{grid-template-columns:1fr}.job h3 a{color:var(--ink);text-decoration:none}.job h3 a:hover{color:var(--brand);text-decoration:underline}.store{color:var(--muted);font-size:13px;margin:0 0 6px}.job-photo{width:158px;height:120px;object-fit:cover;border-radius:7px;background:var(--wash)}.pay{color:var(--brand);font-size:20px;font-weight:800;margin:8px 0}.facts{display:grid;grid-template-columns:3.8em 1fr;gap:5px 12px;font-size:13px;margin:12px 0}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.job-bottom{border-top:1px solid var(--line);padding:12px 23px;background:#fcfcfd;display:flex;align-items:center;justify-content:space-between;gap:12px}.job-bottom small{color:var(--muted);font-size:11px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.empty{text-align:center;padding:48px 20px;border:1px dashed #cbd0d9;border-radius:10px;background:white}.empty h3{margin-bottom:8px}.error{border:1px solid #e8a6b5;background:#fff1f3;padding:14px;border-radius:7px;color:#8a1831}.success{background:#eaf7ef;border:1px solid #b3ddc1;border-radius:7px;padding:14px;color:#215f3a}.notice{background:#f7f8fb;border-radius:7px;padding:14px;font-size:13px}.notice p{margin:4px 0}.footer{padding:30px 0;background:#fff;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.footer .wrap{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.footer a{margin-right:15px}.modal{border:0;border-radius:12px;max-width:830px;width:calc(100% - 24px);max-height:92dvh;padding:0;color:var(--ink)}.modal::backdrop{background:#14202a99}.modal-head{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 22px;background:#fff;border-bottom:1px solid var(--line)}.modal-body{padding:24px;overflow-wrap:anywhere}.detail-image{width:100%;max-height:320px;object-fit:cover;border-radius:8px}.detail-section{border-top:1px solid var(--line);padding:20px 0 0;margin-top:20px}.detail-section h3{font-size:16px}.detail-table{margin:0}.detail-table>div{display:grid;grid-template-columns:135px 1fr;border-bottom:1px solid var(--line)}.detail-table dt{font-size:13px;background:var(--wash);padding:12px}.detail-table dd{font-size:14px;padding:12px;margin:0;white-space:pre-wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.span2{grid-column:1/-1}.required{font-size:10px;color:var(--brand);font-weight:500;margin-left:5px}.admin{background:white}.admin .wrap{max-width:1100px;padding:18px}.admin header{padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line)}.admin h1{font-size:22px}.tabs{display:flex;gap:8px;margin:14px 0}.tabs [aria-selected=true]{background:var(--soft);border-color:var(--brand);color:var(--brand)}.admin-item{border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:12px}.editor-title{border-bottom:1px solid var(--line);padding-bottom:10px;margin:20px 0 18px}.preview-photo{max-width:240px;max-height:150px;object-fit:cover;display:block;margin:8px 0}.sticky-actions{position:sticky;bottom:0;background:#fffef9f5;border-top:1px solid var(--line);padding:12px 0;display:flex;gap:8px;flex-wrap:wrap;z-index:4}.pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin:24px 0}.sr-only{position:absolute;left:-10000px}.mobile-filter{display:none}.statusline{margin:10px 0}.footnote{font-size:12px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:760px){.wrap{padding:0 16px}.header-inner{min-height:72px;gap:8px}.brand{font-size:26px}.header-actions{gap:6px}.header-actions .button{font-size:11px;padding:7px 9px}.intro{padding:26px 0}h1{font-size:24px}.layout{display:block;padding-top:18px}.filters{margin-bottom:20px}.filters[hidden]{display:none}.mobile-filter{display:flex}.job-top{padding:17px;gap:12px;grid-template-columns:minmax(0,1fr) 90px}.job-photo{width:90px;height:90px}.job h3{font-size:16px}.pay{font-size:18px}.job-bottom{padding:12px 17px}.job-bottom small{max-width:100px}.modal-body{padding:18px}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.detail-table>div{grid-template-columns:100px 1fr}.result-bar h2{font-size:18px}.admin .wrap{padding:14px}.admin h1{font-size:20px}.header-actions .favorite-label{display:none}}@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .15s,border-color .15s}}

@media(max-width:760px){.mobile-filter{width:100%;justify-content:space-between;padding:14px 18px;margin:0 0 16px;border-radius:12px;border-color:#e3ccd1;background:#fff;color:var(--brand);font-size:14px;box-shadow:0 3px 12px #ad173708}.mobile-filter span:last-child{font-size:22px;line-height:1}.filters{margin-top:0}}
@media(max-width:760px){html:not(.filters-ready) #filters{display:none}}

.kk-icon{width:19px;height:19px;flex:none;vertical-align:middle;pointer-events:none}.kk-bottom-nav{display:none}button[aria-pressed=true]{color:var(--brand);border-color:#e5b9c3;background:var(--soft)}button[aria-pressed=true] .kk-icon{fill:currentColor;stroke:currentColor}.filter-label{display:inline-flex;align-items:center;gap:9px}.line-contact{background:#067d3e;color:#fff;border-color:#067d3e}.line-contact:hover{background:#056332;color:#fff}.site-header{position:sticky;top:0;z-index:20;background:#fff}.result-bar h2{scroll-margin-top:120px}button,.button{border-radius:11px}.job{border-radius:16px}.chip{border-radius:7px}.job-bottom{gap:8px}.job-bottom .row{flex-wrap:wrap}
@media(max-width:760px){body{padding-bottom:calc(82px + env(safe-area-inset-bottom))}.site-header{padding-top:calc(env(safe-area-inset-top,0px) + 7px);box-shadow:0 2px 12px #24283305}.header-inner{min-height:68px}.header-actions #keepsBtn{display:none}.header-actions .button{white-space:nowrap}.kk-bottom-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:7px 10px calc(7px + env(safe-area-inset-bottom));z-index:30;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 20px #24283308}.kk-bottom-nav button{border:0;background:transparent;display:flex;flex-direction:column;gap:3px;padding:5px 2px;color:var(--muted);font-size:10px;min-height:52px;border-radius:13px;line-height:1.5}.kk-bottom-nav .kk-icon{width:23px;height:23px}.kk-bottom-nav button.active{background:var(--soft);color:var(--brand)}.kk-bottom-nav button.active[data-mobile-view=keeps] .kk-icon{fill:currentColor}.kk-bottom-nav b{font-size:10px}.modal{max-height:calc(100dvh - 24px);z-index:60}.mobile-filter{scroll-margin-top:110px}.job-bottom .small{min-height:40px}.footer .wrap>div{display:flex;flex-wrap:wrap;gap:8px 12px}}

/* Persistent shortcut inside the job details dialog. */
#jobDialog .modal-title-actions{display:flex;align-items:center;white-space:nowrap;min-width:0}#jobDialog .modal-head>.row{flex-wrap:nowrap;margin-left:auto;flex-shrink:0}#jobDialog #jumpToApply{white-space:nowrap;min-height:40px}#jobDialog #applySection h3:focus{outline:none}
@media(max-width:480px){#jobDialog .modal-head{padding:10px 12px;gap:6px}#jobDialog .modal-title-actions{gap:6px;font-size:12px}#jobDialog .modal-head>.row{gap:6px}#jobDialog .modal-head .small{font-size:11px;padding:6px 8px;gap:4px;white-space:nowrap;min-height:40px}#jobDialog .modal-head .kk-icon{width:16px;height:16px}}

/* Keep content within the viewport and stop the page behind the dialog moving. */
html{max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y}
.jobs-page,.jobs-page #jobDialog{touch-action:pan-x pan-y}
.jobs-page{max-width:100%;overflow-wrap:anywhere}
.jobs-page .wrap,.jobs-page .job,.jobs-page .job-top>div{min-width:0;max-width:100%}
#jobDialog{box-sizing:border-box;width:calc(100% - 24px);max-width:min(830px,calc(100% - 24px));overflow:hidden}
#jobDialog[open]{display:flex;flex-direction:column;height:92vh}
#jobDialog .modal-head{position:relative;top:auto;flex-shrink:0}
#jobDialog #detail{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
#jobDialog .modal-head,#jobDialog .modal-body{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#jobDialog img,#jobDialog input,#jobDialog textarea,#jobDialog select{max-width:100%}
#jobDialog .detail-table>div{grid-template-columns:135px minmax(0,1fr)}
#jobDialog .detail-table dt,#jobDialog .detail-table dd{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.jobs-page input,.jobs-page select,.jobs-page textarea,.jobs-page .result-bar select{font-size:16px}#jobDialog .detail-table>div{grid-template-columns:100px minmax(0,1fr)}}

/* Only the detail body scrolls. Its header stays outside the moving surface,
   so native edge bounce cannot move or repaint a sticky header. */
@supports(height:100svh){
 #jobDialog[open]{height:92svh;max-height:calc(100svh - 24px)}
 @media(max-width:760px){#jobDialog[open]{height:calc(100svh - 24px)}}
}

/* Jobs first, with compact persistent search controls. */
.jobs-page{--kk-header-height:126px;--kk-bottom-clearance:0px}
.jobs-page .site-header{isolation:isolate}
.jobs-page .header-inner{min-height:70px}
.jobs-page .layout{display:block;padding-top:18px}
.jobs-page .search-toolbar{display:flex;align-items:center;gap:12px;padding-top:0;padding-bottom:11px;min-height:49px}
.jobs-page .search-toggle{flex:none;min-height:38px;padding:6px 11px;font-size:12px;color:var(--brand);border-color:#ead3d9;background:#fff;border-radius:10px;gap:12px}
.jobs-page .filter-sign{font-size:19px;line-height:1;font-weight:400}
.jobs-page .search-toggle.is-open{background:var(--soft)}
.jobs-page .selected-filters{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:thin;white-space:nowrap;padding:3px 0;flex:1}
.jobs-page .selected-filters .chip{font-size:11px;margin:0;flex:none;padding:3px 8px}
.jobs-page .filter-placeholder{font-size:11px;color:var(--muted)}
.jobs-page .filters{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:min(1132px,calc(100% - 32px));max-height:calc(100dvh - var(--kk-header-height) - var(--kk-bottom-clearance) - 12px);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:18px;border-radius:0 0 16px 16px;box-shadow:0 14px 30px #2428331c;border-top:0;scrollbar-gutter:stable}
.jobs-page .filter-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}
.jobs-page .filter-panel-heading h2{font-size:15px;margin:0}
.jobs-page #searchForm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px;align-items:start}
.jobs-page #searchForm .filter-line{border:0;margin:0;padding:0}
.jobs-page #searchForm fieldset{grid-column:1/-1}
.jobs-page #searchTags{display:flex;flex-wrap:wrap;gap:0 18px}
.jobs-page #searchForm>.full{margin-top:12px!important}
.jobs-page .result-view-actions{gap:7px;margin-bottom:10px}
.jobs-page .result-view-actions .small{font-size:11px;min-height:32px}
.jobs-page .result-bar{margin-bottom:12px}
.jobs-page #resultTitle{font-size:20px;line-height:1.5;margin:0;scroll-margin-top:calc(var(--kk-header-height) + 16px)}
.jobs-page .result-bar select{font-size:12px;min-height:36px;padding:6px 8px}
.jobs-page .results-section{min-width:0}
/* Carry the white footer background through the reserved bottom-nav space,
   including the short loading/empty state; keep the job area light grey. */
html.jobs-root,.jobs-page{background:#fff}
.jobs-page #jobsMain{max-width:none;background:var(--wash)}
.jobs-page .results-section{width:100%;max-width:1132px;margin-inline:auto}
.line-application{margin-top:16px}
.line-message-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 8px}
.line-application details{font-size:12px;color:var(--muted)}
.line-application summary{cursor:pointer}
.line-message{font-size:13px;line-height:1.65;min-height:180px;margin-top:8px}
@media(max-width:760px){
 .jobs-page{--kk-bottom-clearance:calc(82px + env(safe-area-inset-bottom,0px))}
 .jobs-page .header-inner{min-height:60px}
 .jobs-page .brand{font-size:25px}
 .jobs-page .brand small{font-size:10px}
 .jobs-page .search-toolbar{gap:9px;padding-bottom:10px;min-height:48px}
 .jobs-page .search-toggle{min-height:38px;padding:6px 9px;font-size:11px;gap:10px}
 .jobs-page .search-toggle .kk-icon{width:16px;height:16px}
 .jobs-page .layout{padding-top:14px}
 .jobs-page .filters{width:calc(100% - 20px);padding:16px}
 .jobs-page #searchForm{grid-template-columns:1fr;gap:0}
 .jobs-page #searchTags{display:block}
 .jobs-page #searchForm .field{margin-bottom:13px}
 .jobs-page #resultTitle{font-size:18px}
 .jobs-page .result-bar{gap:7px}
}
@media(prefers-reduced-motion:no-preference){.jobs-page .filters:not([hidden]){animation:kk-filter-reveal .16s ease-out}@keyframes kk-filter-reveal{from{opacity:0;translate:0 -5px}to{opacity:1;translate:0 0}}}

/* iOS browser chrome changes the live safe-area insets while scrolling.
   Keep document and navigation dimensions constant throughout that animation.
   Standalone/PWA mode retains its existing safe-area layout. */
@supports(-webkit-touch-callout:none){
 @media(max-width:760px) and (display-mode:browser){
  .jobs-page{--kk-browser-bottom:env(safe-area-max-inset-bottom,34px);--kk-bottom-clearance:calc(82px + var(--kk-browser-bottom));padding-bottom:var(--kk-bottom-clearance)}
  .jobs-page .site-header{padding-top:7px}
  .jobs-page .kk-bottom-nav{padding-bottom:calc(7px + var(--kk-browser-bottom))}
 }
}

.apply-choice-description{margin:18px 0 5px;font-size:14px;font-weight:700;line-height:1.8}.apply-choice-hint{margin:0 0 12px}.apply-choices{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}.apply-choices button{--apply-color:#ad1737;background:var(--apply-color);border:1px solid var(--apply-color);color:#fff;font-size:13px;min-height:46px;padding:9px 12px;gap:5px}.apply-choices [data-apply-choice=line]{--apply-color:#087c3d}.apply-choices [data-apply-choice=email]{--apply-color:#245db0}.apply-choices [data-apply-choice=phone]{--apply-color:#855511}.apply-choices [data-apply-choice=url]{--apply-color:#6550a0}.apply-choices button:hover{background:var(--apply-color);color:#fff;filter:brightness(.92)}.apply-choices button[aria-pressed=true]{background:var(--apply-color);border-color:var(--apply-color);color:#fff;outline:2px solid var(--apply-color);outline-offset:3px}.apply-choices .apply-choice-check{font-size:12px;visibility:hidden}.apply-choices [aria-pressed=true] .apply-choice-check{visibility:visible}.apply-choices button:focus-visible{outline:3px solid #242833;outline-offset:4px}#applyMethodContent:not([hidden]){border-top:1px solid var(--line);padding-top:2px}#applyMethodContent[data-method=email] .primary{background:#245db0;border-color:#245db0}#applyMethodContent[data-method=phone] .primary{background:#855511;border-color:#855511}#applyMethodContent[data-method=url] .primary{background:#6550a0;border-color:#6550a0}
