@charset "utf-8";
@font-face{
font-family:"Shippori Mincho B1"; font-style:normal; font-weight:400;
font-display:swap; src:url(fonts/shippori-400.woff2) format("woff2");
}
:root{
--bg:#FFFFFF; --bg-sub:#FAF8F5; --accent-bg:#F5EFE2; --bg-ink:#1C1C1C;
--ink:#1C1C1C; --ink-mute:#6B6B6B; --ink-invert:#FFFFFF;
--rule:#E4E0D9; --rule-strong:#C9C2B6;
--accent:#BE8E35; --accent-ink:#7E5F27; --accent-fill:#1C1C1C;
--support:#FAF8F5;
--alert:#A8332B; --alert-bg:#FBF5F2; --line-brand:#06C755;
--pad:clamp(16px,5.1vw,24px);
--sec:80px; --sec-lg:96px;
--cta-h:64px; --hd-h:56px; --fb-h:0px;
--h1:clamp(26px,7.4vw,40px);
--h2:clamp(21px,6.0vw,30px);
--h3:clamp(17px,4.6vw,20px);
--body:clamp(16px,4.2vw,17px);
--sm:15px; --xs:12px;
--num:clamp(30px,9.2vw,44px);
--r-sm:2px; --r-sheet:12px;
--e-ui:.2s ease;
--e-reveal:1s cubic-bezier(.5,0,0,1);
--serif:"Shippori Mincho B1","Yu Mincho","游明朝","Hiragino Mincho ProN",serif;
--sans:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
--mono:"Inter","Helvetica Neue",var(--sans);
}
@media (min-width:960px){ :root{ --sec:120px; --sec-lg:160px; } }
*,*::before,*::after{ box-sizing:border-box; }
html{
-webkit-text-size-adjust:100%; scroll-behavior:smooth;
scroll-padding-top:calc(var(--hd-h) + var(--fb-h) + 12px); line-break:strict; overflow-wrap:break-word; word-break:normal;
}
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
margin:0; background:var(--bg); color:var(--ink);
font-family:var(--sans); font-size:var(--body); font-weight:400;
letter-spacing:.02em; line-height:1.8;
overflow-x:clip;                     /* hidden は position:sticky を壊す */
padding-bottom:calc(var(--cta-h) + env(safe-area-inset-bottom));
}
img,svg,video{ max-width:100%; height:auto; display:block; }
img{ background:var(--bg-sub); }
a{ color:inherit; text-underline-offset:.25em; }
button{ font:inherit; color:inherit; }
:where(h1,h2,h3,h4,p,ul,ol,figure,dl){ margin:0; }
ul,ol{ padding:0; list-style:none; }
:where(h1,h2,.lead,.serif){
font-family:var(--serif); font-weight:400;
font-feature-settings:"palt" 1; font-kerning:normal;
text-wrap:balance;
}
@supports (word-break:auto-phrase){ h1:lang(ja),h2:lang(ja),.serif:lang(ja){ word-break:auto-phrase; } }
h1{ font-size:var(--h1); line-height:1.35; letter-spacing:.06em; }
h2{ font-size:var(--h2); line-height:1.4;  letter-spacing:.06em; }
h3{ font-family:var(--sans); font-weight:700; font-size:var(--h3); line-height:1.45; letter-spacing:.03em; }
p{ text-wrap:pretty; }
.lead{ font-size:clamp(15px,4vw,17px); line-height:1.8; letter-spacing:.08em; }
:focus-visible{ outline:2px solid var(--accent-ink); outline-offset:2px; }
::selection{ background:var(--accent-bg); }
.wrap{ max-width:1280px; margin-inline:auto; padding-inline:var(--pad); }
.wrap-read{ max-width:920px; margin-inline:auto; padding-inline:var(--pad); }
.sec{ padding-block:var(--sec); }
.sec-sm{ padding-block:48px; }
.vh{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.h-block{ margin-bottom:32px; }
.h-block .kicker{ display:block; font-size:var(--xs); letter-spacing:.14em; color:var(--accent-ink); font-weight:700; margin-bottom:10px; }
.h-block .note{ margin-top:12px; color:var(--ink-mute); font-size:var(--sm); }
.hd{
position:sticky; top:0; z-index:40; background:var(--bg);
border-bottom:1px solid var(--rule); transition:transform var(--e-ui);
}
.hd[data-hide="1"]{ transform:translateY(-100%); }
body[data-hd="hidden"] .filterbar{ top:0; }
.hd-in{ display:flex; align-items:center; gap:6px; min-height:56px; min-width:0; }
@media (min-width:520px){ .hd-in{ gap:12px; } }
.logo{ display:inline-flex; align-items:center; min-height:44px;
font-family:var(--serif); font-size:clamp(13px,4.2vw,19px); letter-spacing:.04em; text-decoration:none;
white-space:nowrap; flex:0 0 auto; }
.logo b{ font-weight:400; }
.logo .lt{ display:none; font-family:var(--mono); font-size:12px; letter-spacing:.22em; color:var(--accent-ink); margin-top:2px; }
@media (min-width:600px){ .logo .lt{ display:block; } }
.hd-sp{ flex:1; min-width:0; }
.hd-btn{
display:inline-flex; align-items:center; justify-content:center; gap:4px; white-space:nowrap;
min-height:48px; min-width:48px; padding:0 6px; background:none; border:0; flex:0 0 auto;
font-size:var(--xs); letter-spacing:0; cursor:pointer; text-decoration:none;
}
.hd-btn .ic{ width:22px; height:22px; fill:none; stroke:var(--ink); stroke-width:1.6; stroke-linecap:round; }
.hd-btn[aria-label="キープした求人"] .ic{ fill:none; }
.badge-gold{ background:var(--accent-bg); color:var(--accent-ink); border-color:var(--accent); }
.keep-badge{
display:inline-block; min-width:18px; padding:0 5px; margin-left:1px;
background:var(--ink); color:#fff; border-radius:9px;
font-family:var(--mono); font-size:10px; line-height:18px; text-align:center;
}
.fv{ position:relative; background:var(--bg-ink); }
.fv-img{ width:100%; aspect-ratio:3/4; object-fit:cover; opacity:.92; }
@media (min-width:960px){ .fv-img{ aspect-ratio:16/9; } }
.fv-veil{
position:absolute; inset:0;
background:
linear-gradient(to bottom, hsl(0 0% 0% / .55) 0%, hsl(0 0% 0% / .15) 34%, hsl(0 0% 0% / .30) 62%, hsl(0 0% 0% / .78) 100%);
}
.fv-body{
position:absolute; inset:auto 0 0 0; padding:0 var(--pad) 40px;
color:#fff; max-width:1280px; margin-inline:auto;
}
.fv-eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:.18em; font-weight:500; color:#E8D9BC;
display:inline-block; padding:4px 10px; background:hsl(0 0% 0% / .62); border-radius:2px; }
.fv h1{ margin-top:14px; font-size:clamp(27px,7.6vw,46px); line-height:1.45; letter-spacing:.08em; text-shadow:0 1px 24px hsl(0 0% 0% / .5); }
.fv .sub{ margin-top:14px; font-size:var(--sm); letter-spacing:.06em; color:#EDE9E2; }
.searchcard{
position:relative; margin:-32px auto 0; max-width:720px;
background:var(--bg); border:1px solid var(--rule); padding:24px var(--pad) 20px;
}
.searchcard h2{ font-size:17px; letter-spacing:.08em; margin-bottom:16px; }
.sc-row{ display:grid; gap:10px; grid-template-columns:1fr; }
@media (min-width:600px){ .sc-row{ grid-template-columns:1fr 1fr 1fr; } }
.sc-field{ position:relative; }
.sc-field label{ display:block; font-size:var(--xs); color:var(--ink-mute); margin-bottom:4px; letter-spacing:.06em; }
select,input[type=text],input[type=tel],input[type=email],textarea{
width:100%; min-height:48px; padding:10px 12px; font-size:16px;  /* 16px 未満は iOS が強制ズーム */
font-family:inherit; color:var(--ink); background:var(--bg);
border:1px solid var(--rule-strong); border-radius:var(--r-sm); appearance:none;
}
select{ background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
background-position:calc(100% - 18px) 22px,calc(100% - 13px) 22px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }
textarea{ min-height:120px; line-height:1.7; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap; overflow-wrap:normal; letter-spacing:.02em;
width:100%; min-height:56px; padding:0 20px; border-radius:var(--r-sm);
font-weight:700; letter-spacing:.06em; text-decoration:none; cursor:pointer; border:1px solid transparent; }
.btn-primary{ background:var(--accent-fill); color:#fff; }
.btn-ghost{ background:none; color:var(--accent-ink); border-color:var(--accent); border-radius:0; min-height:48px; letter-spacing:.10em; font-weight:400; }
.btn-line{ background:#fff; color:var(--ink); border-color:var(--line-brand); }
.btn-line svg{ fill:var(--line-brand); width:20px; height:20px; }
.btn-sm{ min-height:44px; width:auto; font-size:var(--sm); padding:0 16px; }
@media (hover:hover){
.btn-primary:hover{ filter:brightness(.88); }
.btn-ghost:hover{ background:var(--accent-ink); color:#fff; border-color:var(--accent-ink); }
a:hover .card-name{ text-decoration:underline; }
}
.stats{ display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--accent); }
.stats div{ padding:16px 6px; text-align:center; border-left:1px solid var(--accent); }
.stats div:first-child{ border-left:0; }
.stats dt{ font-size:12px; color:var(--ink-mute); letter-spacing:.06em; }
.stats dd{ margin:2px 0 0; font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:600;
font-size:clamp(22px,6.4vw,30px); line-height:1.1; letter-spacing:0; }
.stats dd small{ font-size:.5em; font-weight:400; margin-left:2px; letter-spacing:.04em; }
.tiles{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule); border:1px solid var(--rule); }
@media (min-width:600px){ .tiles{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:960px){ .tiles{ grid-template-columns:repeat(4,1fr); } }
.tile{ position:relative; display:block; background:var(--bg-ink); text-decoration:none; color:#fff; }
.tile img{ width:100%; aspect-ratio:1/1; object-fit:cover; opacity:.62; transition:opacity var(--e-ui),transform var(--e-ui); }
@media (hover:hover){ .tile:hover img{ opacity:.75; transform:scale(1.02); } }
.tile-t{ position:absolute; inset:auto 0 0 0; padding:12px 10px; display:flex; align-items:baseline; gap:6px; flex-wrap:nowrap;
background:linear-gradient(to top,hsl(0 0% 0% / .72),transparent); }
.tile-t b{ font-family:var(--serif); font-weight:400; font-size:clamp(14px,4.2vw,17px); letter-spacing:.02em;
white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.tile-t span{ font-family:var(--mono); font-size:var(--xs); font-variant-numeric:tabular-nums; color:#E8D9BC; }
.typegrid{ display:grid; gap:32px; }
@media (min-width:600px){ .typegrid{ grid-template-columns:1fr 1fr; } }
@media (min-width:960px){ .typegrid{ grid-template-columns:repeat(4,1fr); } }
.typegroup h3{ font-family:var(--mono); font-size:var(--xs); letter-spacing:.18em; color:var(--accent-ink); padding-bottom:8px; border-bottom:1px solid var(--rule); }
.typegroup li a{ display:flex; justify-content:space-between; align-items:baseline; gap:12px;
min-height:48px; padding:6px 0; text-decoration:none; border-bottom:1px solid var(--rule); }
.typegroup li a b{ font-weight:400; }
.typegroup li a span{ font-family:var(--mono); font-size:var(--sm); color:var(--ink-mute); font-variant-numeric:tabular-nums; }
.cards{ border-top:1px solid var(--rule); }
#lk-list{ scroll-margin-top:calc(var(--hd-h) + var(--fb-h) + 28px); min-height:100svh; }
@media (min-width:960px){
.cards{ display:grid; grid-template-columns:1fr 1fr; column-gap:48px; }
.cards > article{ display:flex; flex-direction:column; }
.cards > article > .card{ flex:1; }
}
.card{ display:block; padding:20px 0 24px; border-bottom:1px solid var(--rule); text-decoration:none; color:inherit; }
.card-badges{ display:flex; gap:6px; margin-bottom:10px; flex-wrap:wrap; }
.badge{ font-size:12px; font-weight:700; letter-spacing:.06em; padding:3px 8px; border-radius:var(--r-sm); background:var(--ink); color:#fff; }
.badge-alert{ background:var(--alert); }
.badge-soft{ background:var(--accent-bg); color:var(--accent-ink); }
.card-img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.card-meta{ margin-top:12px; font-size:var(--xs); color:var(--ink-mute); letter-spacing:.06em; }
.card-meta a{ display:inline-block; padding:6px 0; }  /* WCAG 2.5.8: 24x24 最小 */
.card-name{ font-family:var(--serif); font-weight:400; font-size:20px; line-height:1.5; letter-spacing:.04em; margin-top:2px; }
.card-access{ margin-top:6px; font-size:var(--sm); color:var(--ink-mute); }
.numpanel{ display:grid; grid-template-columns:1fr 1fr; margin-top:14px; border:1px solid var(--accent); }
.numpanel > div{ padding:10px 12px; border-left:1px solid var(--accent); }
.numpanel > div:first-child{ border-left:0; }
.numpanel .full{ grid-column:1/-1; border-left:0; border-top:1px solid var(--accent); background:var(--accent-bg); }
.numpanel dt{ font-size:12px; color:var(--ink-mute); letter-spacing:.06em; }
.numpanel dd{ margin:0; font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:600;
font-size:clamp(19px,5.4vw,24px); line-height:1.2; letter-spacing:0; }
.numpanel .full dd{ font-size:clamp(17px,4.6vw,20px); color:var(--accent-ink); }
.numpanel dd small{ font-size:.6em; font-weight:400; letter-spacing:.02em; }
.taglist{ display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.tag{ font-size:var(--xs); letter-spacing:.04em; padding:3px 8px; border:1px solid var(--rule-strong); border-radius:var(--r-sm); color:var(--ink-mute); }
.tag-more{ border-style:dashed; }
.card-catch{ margin-top:10px; font-size:var(--sm); line-height:1.7; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card-foot{ display:flex; gap:8px; margin-top:14px; }
.card-foot .btn{ width:auto; flex:1; }
.keepbtn{ display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:48px; flex:0 0 auto; width:52px;
border:1px solid var(--rule-strong); border-radius:var(--r-sm); background:none; cursor:pointer; }
.keepbtn svg{ width:20px; height:20px; fill:none; stroke:var(--ink-mute); stroke-width:1.5; }
.keepbtn[aria-pressed="true"] svg{ fill:var(--alert); stroke:var(--alert); }
.filterbar{ position:sticky; top:var(--hd-h); z-index:30; transition:top var(--e-ui); background:var(--bg); border-bottom:1px solid var(--rule); padding:10px 0; }
.fb-in{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.fb-chips{ display:flex; gap:6px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none;
order:2; width:100%; flex:0 0 100%;
mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); }
.fb-chips:empty{ display:none; }
@media (min-width:900px){
.fb-in{ flex-wrap:nowrap; }
.fb-chips{ order:0; width:auto; flex:1; }
}
.fb-chips::-webkit-scrollbar{ display:none; }
.chip{ position:relative; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; min-height:44px; padding:0 12px;
border:1px solid var(--rule-strong); border-radius:var(--r-sm); font-size:var(--xs); background:none; cursor:pointer;
max-width:100%; }
.taglist .chip{ white-space:normal; text-align:left; padding-top:8px; padding-bottom:8px; }
.chip[data-on="1"]{ border-color:var(--accent); background:var(--accent-bg); color:var(--accent-ink); }
.chip .x{ font-size:14px; line-height:1; }
dialog.sheet{ width:100%; max-width:600px; margin:auto auto 0; padding:0; border:0;
border-radius:var(--r-sheet) var(--r-sheet) 0 0; background:var(--bg);
box-shadow:0 -1px 0 var(--rule),0 -8px 24px hsl(35 20% 12% / .08); }
dialog.sheet::backdrop{ background:hsl(0 0% 0% / .45); }
.sheet-hd{ position:sticky; top:0; background:var(--bg); border-bottom:1px solid var(--rule);
display:flex; align-items:center; min-height:56px; padding:0 var(--pad); }
.sheet-bd{ padding:16px var(--pad) 96px; max-height:70svh; overflow:auto; }
.sheet-ft{ position:sticky; bottom:0; background:var(--bg); border-top:1px solid var(--rule);
padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom)); }
.opt{ display:flex; align-items:center; gap:10px; min-height:48px; border-bottom:1px solid var(--rule); cursor:pointer; }
.opt input{ width:20px; height:20px; accent-color:var(--accent-ink); flex:0 0 auto; }
.opt .n{ margin-left:auto; font-family:var(--mono); font-size:var(--sm); color:var(--ink-mute); font-variant-numeric:tabular-nums; }
.opt[data-zero="1"]{ color:#B4B0A9; cursor:not-allowed; }
.optgroup{ margin-bottom:24px; }
.optgroup > h3{ font-size:var(--sm); letter-spacing:.08em; color:var(--accent-ink); padding-bottom:6px; border-bottom:1px solid var(--accent); }
.cta{
position:fixed; inset:auto 0 0 0; z-index:35; display:flex; gap:8px; align-items:center;
padding:8px var(--pad) calc(8px + env(safe-area-inset-bottom));
background:var(--bg); box-shadow:0 -1px 0 var(--rule),0 -8px 24px hsl(35 20% 12% / .08);
transform:translateY(110%); transition:transform .28s cubic-bezier(.5,0,0,1);
}
.cta[data-on="1"]{ transform:none; }
.cta .btn{ min-height:48px; }
.cta-note{ display:block; font-size:12px; color:var(--ink-mute); letter-spacing:.02em; text-align:center; margin-top:2px; }
.crumb{ display:flex; gap:6px; align-items:center; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none;
padding:12px 0; font-size:var(--xs); color:var(--ink-mute); white-space:nowrap; }
.crumb::-webkit-scrollbar{ display:none; }
.crumb a{ text-decoration:none; display:inline-flex; align-items:center; justify-content:center;
min-height:44px; min-width:44px; }
.crumb .sep{ opacity:.5; }
@media (min-width:960px){ .gal figure{ flex:0 0 46%; } }
.dl-table{ border-top:1px solid var(--rule); }
.dl-table > div{ display:grid; grid-template-columns:104px 1fr; gap:12px; padding:12px 0; border-bottom:1px solid var(--rule); align-items:baseline; }
@media (min-width:600px){ .dl-table > div{ grid-template-columns:180px 1fr; } }
.dl-table dt{ font-size:var(--sm); color:var(--ink-mute); letter-spacing:.04em; }
.dl-table dd{ margin:0; font-size:var(--sm); line-height:1.75; }
.dl-table dd a{ display:inline-block; padding:8px 0; }
.qa{ border-top:1px solid var(--rule); }
.qa > div{ padding:20px 0; border-bottom:1px solid var(--rule); }
.qa h3{ font-family:var(--serif); font-weight:400; font-size:17px; letter-spacing:.06em; line-height:1.6; }
.qa h3::before{ content:"Q"; font-family:var(--mono); font-size:12px; color:var(--accent-ink); margin-right:8px; letter-spacing:.1em; }
.qa p{ margin-top:8px; font-size:var(--sm); color:#3A3A3A; }
@media (min-width:600px){ .feat{ grid-template-columns:repeat(3,1fr); } }
.h-route{ margin-top:32px; }
.h-route h3{ font-size:15px; }
.zero{ padding:48px 0; }
.zero h1{ font-size:var(--h2); }
.zero .drop{ display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:56px;
border-bottom:1px solid var(--rule); font-size:var(--sm); }
.zero .drop b{ font-family:var(--mono); font-weight:600; color:var(--accent-ink); font-variant-numeric:tabular-nums; }
.ft{ background:var(--bg-sub); border-top:1px solid var(--rule); padding:var(--sec) 0 40px; margin-top:var(--sec); }
.ft-cols{ display:grid; gap:32px; }
@media (min-width:600px){ .ft-cols{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px){ .ft-cols{ grid-template-columns:repeat(4,1fr); } }
.ft h3{ font-size:var(--xs); letter-spacing:.14em; color:var(--accent-ink); padding-bottom:8px; border-bottom:1px solid var(--rule); }
.ft li a{ display:block; min-height:44px; padding:10px 0; font-size:var(--sm); text-decoration:none; color:var(--ink-mute); }
.ft-legal{ margin-top:48px; padding-top:24px; border-top:1px solid var(--rule); font-size:var(--xs); color:var(--ink-mute); }
.ft-legal p{ margin-top:6px; }
.demobar{ background:var(--accent-bg); color:var(--accent-ink); font-size:var(--xs); letter-spacing:.04em;
text-align:center; padding:7px var(--pad); line-height:1.6; }
.pager{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-top:32px; }
.pager a,.pager span{ min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center;
border:1px solid var(--rule-strong); border-radius:var(--r-sm); text-decoration:none; font-family:var(--mono); font-size:var(--sm); }
.pager [aria-current]{ background:var(--ink); color:#fff; border-color:var(--ink); }
@supports (animation-timeline:view()){
@media (prefers-reduced-motion:no-preference){
@keyframes rise{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
.rise{ animation:rise var(--e-reveal) both; animation-timeline:view(); animation-range:entry 0% entry 42%; }
}
}
.card-skel{ height:392px; border-bottom:1px solid var(--rule); background:
linear-gradient(var(--bg-sub),var(--bg-sub)) top/100% 240px no-repeat; }
@media (min-width:960px){ .card-skel{ height:420px; } }
.zero h2{ font-size:var(--h2); }
.skip{ position:absolute; left:-9999px; top:0; z-index:80; background:var(--ink); color:#fff;
padding:12px 16px; text-decoration:none; }
.skip:focus{ left:0; }
.hd-cta{ display:inline-flex; align-items:center; min-height:44px; padding:0 10px; margin-left:2px;
background:var(--accent-fill); color:#fff; border-radius:var(--r-sm); flex:0 0 auto;
font-size:var(--xs); font-weight:700; letter-spacing:0; text-decoration:none; white-space:nowrap; }
@media (min-width:520px){ .hd-cta{ padding:0 14px; margin-left:4px; letter-spacing:.04em; } }
@media (max-width:400px){
.hd-in{ gap:2px; }
.hd-btn{ min-width:44px; padding:0 3px; }
.hd-cta{ padding:0 8px; margin-left:0; }
}
@media (max-width:360px){
.hd .wrap{ padding-inline:12px; }
.hd-btn{ padding:0 1px; }
.hd-cta{ padding:0 7px; }
}
.sortsel{ flex:0 0 auto; width:auto; min-height:44px; font-size:16px; padding:0 30px 0 10px; }
@media (min-width:600px){ .sortsel{ font-size:var(--sm); } }
.fv-facts{ display:flex; gap:16px; margin-top:14px; flex-wrap:wrap; }
@media (max-height:700px){ .fv-facts{ display:none; } }
.fv-facts li{ display:flex; align-items:baseline; gap:4px; }
.fv-facts b{ font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:600;
font-size:clamp(20px,5.6vw,26px); line-height:1; }
.fv-facts span{ font-size:var(--xs); color:#EDE9E2; letter-spacing:.04em; }
.btn-line-fill{ background:var(--accent-fill); color:#fff; }
.btn .ic{ width:20px; height:20px; fill:currentColor; flex:0 0 auto; }
fieldset.optgroup{ border:0; padding:0; margin:0 0 24px; }
fieldset.optgroup legend{ display:block; width:100%; padding:0 0 6px;
font-size:var(--sm); letter-spacing:.08em; color:var(--accent-ink); border-bottom:1px solid var(--accent); }
.placeholder{ margin-top:8px; padding:16px; border:1px dashed var(--rule-strong);
border-radius:var(--r-sm); font-size:var(--sm); color:var(--ink-mute); line-height:1.7; max-width:420px; }
.lk-err{ margin:16px auto; padding:16px; border:1px solid var(--alert); border-radius:var(--r-sm);
display:flex; gap:12px; align-items:center; flex-wrap:wrap; font-size:var(--sm); }
.pricetbl{ width:100%; border-collapse:collapse; margin-top:12px; font-size:var(--sm); }
.pricetbl th, .pricetbl td{ text-align:left; vertical-align:top; padding:11px 0; border-bottom:1px solid var(--rule); }
.pricetbl th{ font-weight:400; color:var(--ink-mute); padding-right:16px; width:46%; }
.pricetbl td{ font-variant-numeric:tabular-nums; }
.pricetbl td span{ display:block; }
.pricetbl td span + span{ margin-top:4px; }
.pricetbl .grp th{ color:var(--accent-ink); letter-spacing:.06em; padding-top:20px; width:auto;
border-bottom:1px solid var(--accent); }
@media (min-width:600px){ .pricetbl th{ width:38%; } }
.lazybox{ margin-top:20px; border:1px solid var(--rule); border-radius:var(--r-sm); }
.lazybox > summary{ min-height:48px; display:flex; align-items:center; gap:8px; padding:0 14px;
font-size:var(--sm); cursor:pointer; list-style:none; }
.lazybox > summary::-webkit-details-marker{ display:none; }
.lazybox > summary::before{ content:"＋"; font-family:var(--mono); color:var(--accent-ink); }
.lazybox[open] > summary::before{ content:"−"; }
.lazybox-in{ aspect-ratio:4/3; max-height:60vh; border-top:1px solid var(--rule); background:var(--bg-sub); }
.lazybox-in.ratio-16x9{ aspect-ratio:16/9; }
.lazybox-in iframe{ width:100%; height:100%; border:0; display:block; }
.sub{ margin-top:20px; font-size:var(--sm); letter-spacing:.06em; color:var(--ink-mute); }
.nearlist{ margin-top:8px; border-top:1px solid var(--rule); }
.nearlist a{ display:flex; align-items:baseline; justify-content:space-between; gap:12px;
min-height:56px; padding:12px 0; border-bottom:1px solid var(--rule); text-decoration:none; }
.nearlist .nm{ font-size:var(--sm); }
.nearlist .mt{ flex:0 0 auto; font-size:var(--xs); color:var(--ink-mute); font-variant-numeric:tabular-nums; }
.dl-table .v{ display:block; }
.dl-table .v + .v{ margin-top:4px; }
.dl-table .note-sm{ display:block; margin-top:8px; font-size:var(--xs); color:var(--ink-mute); line-height:1.75; }
.dl-table .grp dt{ color:var(--accent-ink); letter-spacing:.06em; }
.dl-table .grp{ border-bottom:1px solid var(--accent); }
.extlink{ margin-top:16px; }
.extlink a{ display:inline-flex; align-items:center; gap:8px; min-height:44px;
font-size:var(--sm); color:var(--accent-ink); text-underline-offset:.25em; }
.extlink .ic{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; flex:0 0 auto; }
@media (min-width:960px){
.sec-sm > p,
.sec-sm > .read,
.dl-table dd p,
.dl-table dd .v,
.nearlist + p,
.galnote{ max-width:44em; }
}
.numpanel .basis{ display:block; margin-top:6px; font-size:var(--xs); line-height:1.7; color:var(--ink-mute); font-weight:400; }
.read{ font-size:var(--sm); line-height:1.9; margin-top:10px; }
.read + .read{ margin-top:12px; }
@media (min-width:1080px){ .read{ max-width:40em; } }
.read a, .sec-sm li a, .sec-sm p a, .sec-sm dd > a{ position:relative; }
.read a::after, .sec-sm li a::after, .sec-sm p a::after, .sec-sm dd > a::after{
content:""; position:absolute; inset:-6px -2px; }
.sec-sm dd > a{ display:inline-flex; align-items:center; min-height:44px; }